在阿里云轻量应用服务器(Lightweight Application Server)上配置 MySQL 服务,通常有两种主流方式:直接安装官方 MySQL 或 使用宝塔面板(推荐新手)。考虑到轻量服务器的资源限制和易用性,以下提供两种方案的详细步骤。
方案一:直接使用命令行安装(适合熟悉 Linux 的用户)
这种方式原生、干净,不依赖第三方面板,适合需要精细控制环境的场景。
1. 更新软件源并安装
登录到 Ubuntu 服务器后,首先执行系统更新:
sudo apt update
sudo apt upgrade -y
安装 MySQL 服务端(默认会安装最新版,如 MySQL 8.0):
sudo apt install mysql-server -y
2. 安全初始化
安装完成后,运行安全脚本设置 root 密码等基础安全项:
sudo mysql_secure_installation
按提示操作:
- 输入
Y启用验证插件(Validate Password Component)。 - 设置 root 密码(建议复杂一点)。
- 移除匿名用户(Yes)。
- 禁止 root 远程登录(Yes)。
- 删除测试数据库(Yes)。
- 重载权限表(Yes)。
注意:如果是较新的 Ubuntu 版本,MySQL 可能默认使用
auth_socket认证,导致无法直接用密码登录。如果遇到此问题,需修改配置文件或使用sudo mysql进入后重置用户权限。
3. 配置远程访问(允许外部连接)
默认情况下,MySQL 只允许本地连接。若要允许其他设备连接(例如从你的电脑管理数据库),需执行以下步骤:
-
编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf -
找到
bind-address = 127.0.0.1,将其改为0.0.0.0或直接注释掉该行:# bind-address = 127.0.0.1 -
保存退出(Ctrl+O, Enter, Ctrl+X)。
-
重启 MySQL 服务:
sudo systemctl restart mysql -
创建允许远程连接的账号(以 root 为例,生产环境建议新建专用账号):
sudo mysql -u root -p进入 SQL 界面后执行:
-- 允许 root 从任意 IP 连接(仅用于测试,生产环境请替换具体 IP) ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的强密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的强密码'; FLUSH PRIVILEGES; EXIT;
4. 配置阿里云防火墙
这是最关键的一步。即使 MySQL 配置好了,如果阿里云控制台没放行端口,依然无法连接。
- 登录 阿里云控制台。
- 进入 轻量应用服务器 页面,点击你的实例。
- 点击右侧的 防火墙 标签页。
- 添加规则:
- 协议:TCP
- 端口:
3306 - 授权对象:
0.0.0.0/0(允许所有 IP,生产环境建议指定你自己的公网 IP) - 策略:允许
方案二:使用宝塔面板(适合新手/图形化管理)
如果你希望有可视化的管理界面,且不想手动处理复杂的配置,可以使用宝塔面板(Baota Panel)。
1. 安装宝塔面板
在终端执行以下命令(一键安装脚本):
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
安装过程中会显示面板的登录地址、用户名和密码,请务必记录下来。
2. 登录与安装 MySQL
- 在浏览器访问上述地址,输入账号密码登录。
- 在左侧菜单选择 软件商店。
- 搜索 MySQL,选择对应版本(推荐 8.0),点击 安装。
- 等待安装完成,并在“网站”或“数据库”菜单中查看已创建的数据库。
3. 配置远程访问
宝塔面板会自动处理大部分配置,但为了安全,仍需确认:
- 在宝塔后台点击 数据库 -> MySQL -> 设置。
- 确保勾选了 允许远程连接(部分版本需手动开启)。
- 同样需要在 阿里云控制台 的防火墙中放行
3306端口(参考方案一的步骤 4)。
常见问题排查
-
连接被拒绝 (Connection Refused)
- 检查阿里云防火墙是否放行了 3306 端口。
- 检查 MySQL 是否监听
0.0.0.0而非127.0.0.1。 - 尝试在服务器内部使用
mysql -u root -p测试本地连接是否正常。
-
权限不足 (Access Denied)
- 检查你使用的账号是否拥有
GRANT权限。 - 确保 MySQL 用户配置中
host字段是%而不是localhost。
- 检查你使用的账号是否拥有
-
内存溢出 (OOM)
- 轻量服务器通常内存较小(如 1GB 或 2GB)。如果启动 MySQL 失败,可能是内存不足。
- 解决方法:调整 MySQL 配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf,减小innodb_buffer_pool_size(例如设置为物理内存的 25%-50%)。
总结建议
- 生产环境:建议使用方案一(原生安装),配合阿里云的安全组策略,并创建专用的低权限数据库账号,避免使用 root 远程连接。
- 开发/学习环境:推荐使用方案二(宝塔面板),效率更高,便于后续管理 Nginx、PHP 等其他组件。
无论哪种方式,记得在阿里云控制台配置防火墙规则,这是最容易被忽略的步骤。
CLOUD技术笔记