在Ubuntu系统中安装MySQL并配置远程访问的完整步骤如下:
1. 安装MySQL
更新系统包
sudo apt update
sudo apt upgrade -y
安装MySQL服务器
sudo apt install mysql-server -y
启动并启用MySQL服务
sudo systemctl start mysql
sudo systemctl enable mysql
运行安全配置向导
sudo mysql_secure_installation
按照提示设置root密码、移除匿名用户、禁止root远程登录等安全选项。
2. 登录MySQL并创建用户
登录MySQL
sudo mysql -u root -p
创建新用户(推荐)
-- 创建新用户(替换username和password)
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_strong_password';
-- 授予所有权限(生产环境建议使用更精细的权限控制)
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
或修改root用户允许远程访问
-- 修改root用户允许远程连接
UPDATE mysql.user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
3. 配置MySQL允许远程连接
编辑MySQL配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
修改bind-address配置
找到以下行:
# bind-address = 127.0.0.1
修改为:
bind-address = 0.0.0.0
或者注释掉该行:
# bind-address = 127.0.0.1
保存并退出,然后重启MySQL服务
sudo systemctl restart mysql
4. 配置防火墙
检查防火墙状态
sudo ufw status
允许MySQL端口(默认3306)
sudo ufw allow 3306/tcp
# 或者指定来源IP
sudo ufw allow from your_client_ip to any port 3306
重新加载防火墙
sudo ufw reload
5. 验证远程连接
在本地测试
mysql -u your_username -p -h 127.0.0.1
从远程客户端测试
mysql -u your_username -p -h your_server_ip
6. 常用管理命令
检查MySQL服务状态
sudo systemctl status mysql
查看监听端口
sudo netstat -tlnp | grep mysql
# 或
sudo ss -tlnp | grep mysql
查看用户权限
SELECT user, host FROM mysql.user;
SHOW GRANTS FOR 'your_username'@'%';
7. 安全建议
使用更精细的权限控制
-- 只授予必要权限
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'username'@'%';
-- 限制特定IP访问
CREATE USER 'username'@'specific_ip' IDENTIFIED BY 'password';
配置SSL连接
-- 检查SSL状态
SHOW VARIABLES LIKE '%ssl%';
定期备份
# 备份数据库
mysqldump -u username -p database_name > backup.sql
# 恢复数据库
mysql -u username -p database_name < backup.sql
故障排除
如果无法连接
-
检查MySQL错误日志:
sudo tail -f /var/log/mysql/error.log -
检查网络连接:
telnet your_server_ip 3306 -
确认MySQL正在监听正确地址:
sudo netstat -tlnp | grep 3306
通过以上步骤,你就可以成功在Ubuntu上安装MySQL并配置远程访问了。记得根据实际需求调整安全设置。
PHPWP博客