步骤 1:配置 MySQL 允许远程连接
1.1 修改 MySQL 配置文件
首先,你需要修改 MySQL 的配置文件(my.cnf
或 mysqld.cnf
),以允许 MySQL 监听所有网络接口,而不仅仅是本地主机。
打开 MySQL 的配置文件,通常在 /etc/mysql/my.cnf
或 /etc/mysql/mysql.conf.d/mysqld.cnf
,或者在 CentOS/RHEL 上可能位于 /etc/my.cnf
。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在文件中,找到以下行:
bind-address = 127.0.0.1
将其修改为:
bind-address = 0.0.0.0
或者,你可以注释掉这一行(在前面添加 #
)以让 MySQL 监听所有 IP 地址:
#bind-address = 127.0.0.1
保存文件并退出编辑器。
1.2 重启 MySQL 服务
修改配置文件后,需要重启 MySQL 服务使更改生效。
sudo systemctl restart mysql
或者:
sudo service mysql restart
步骤 2:配置 MySQL 用户权限
2.1 登录 MySQL
使用 root
用户或具有足够权限的用户登录 MySQL。
mysql -u root -p
2.2 授予远程访问权限
你需要为希望远程访问 MySQL 的用户授予权限。如果你想允许 root
用户从任何主机连接(虽然这不推荐),可以运行以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
%
是一个通配符,表示任何远程主机。'your_password'
是你为 root
用户设置的密码。
如果你只希望特定的 IP 地址或域名可以访问,例如 192.168.1.100
,可以使用以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
2.3 刷新权限
执行以下命令使更改生效:
FLUSH PRIVILEGES;
2.4 退出 MySQL
exit;
步骤 3:配置防火墙允许 MySQL 端口
确保防火墙允许 MySQL 通过默认端口(3306
)进行连接。
3.1 使用 ufw
(适用于 Ubuntu)
如果你使用的是 ufw
作为防火墙:
sudo ufw allow 3306 sudo ufw reload
3.2 使用 firewalld
(适用于 CentOS/RHEL)
如果你使用的是 firewalld
:
sudo firewall-cmd --permanent --add-service=mysql sudo firewall-cmd --reload
或者直接使用端口号:
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
步骤 4:测试远程连接
现在,你可以从远程主机尝试连接到 MySQL 服务器。例如,使用以下命令在另一台 Linux 主机上测试:
mysql -u root -p -h your_server_ip
your_server_ip
是你运行 MySQL 服务器的机器的 IP 地址。
注意事项
- 安全性:将
root
用户设置为可以远程访问并不安全。通常建议创建一个单独的用户并为其分配有限的权限。 - SSL 连接:为确保连接的安全性,建议使用 SSL 加密远程连接。
通过上述步骤,你可以在 Linux 上成功启用 MySQL 的远程连接。
标签:linux,sudo,--,mysql,ssh,MySQL,root,远程 From: https://blog.csdn.net/qq_27656927/article/details/141138246