要开启mysql远程连接需修改配置文件绑定地址为0.0.0.0并重启服务;创建或修改用户权限允许远程ip访问;确保服务器及云平台防火墙开放3306端口。1. 修改mysqld.cnf中的bind-address为0.0.0.0并重启mysql。2. 创建新用户或修改现有用户权限,使用’your_user’@’%’授权远程访问。3. 使用ufw或firewall-cmd放行3306端口,并在云平台设置安全组规则。4. 使用数据库工具测试连接并排查配置问题。
安装完 MySQL 后,默认是不允许远程连接的,只能本地访问。如果你希望通过其他机器访问这台服务器上的 MySQL 数据库,就需要进行一些配置来开启远程连接权限。
1. 修改 MySQL 配置文件(可选)
MySQL 默认绑定在 127.0.0.1 上,这意味着它只接受本地连接。要允许远程访问,可以修改配置文件中的绑定地址。
- 找到 MySQL 的配置文件,通常是 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf
- 搜索 bind-address 这一行
- 将其值从 127.0.0.1 改为 0.0.0.0,表示监听所有 IP 地址
注意:有些系统默认没有设置 bind-address,此时可以跳过这一步,或者确认没有限制监听地址。
改完后重启 MySQL:
sudo systemctl restart mysql
2. 创建或修改用户权限
MySQL 的用户权限管理很细致,需要确保你使用的账号有远程连接权限。
添加新用户并授权远程访问
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
说明:
- ‘your_user’@’%’ 表示这个用户可以从任何 IP 登录
- 如果只想允许特定 IP,把 % 替换成对应 IP,比如 ‘your_user’@’192.168.1.100’
- *.* 表示所有数据库和表,你可以根据需要指定具体数据库
修改已有用户的权限
如果已经有用户但不能远程登录,可以用下面语句修改权限:
GRANT ALL PRIVILEGES ON *.* TO 'existing_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
3. 确保防火墙放行 MySQL 端口
即使 MySQL 设置正确,如果服务器防火墙没开放 3306 端口,也无法远程连接。
ubuntu / debian 使用 ufw:
sudo ufw allow 3306/tcp sudo ufw reload
centos / RHEL 使用 firewall-cmd:
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
4. 测试远程连接是否成功
使用任意数据库工具(如 navicat、DBeaver 或命令行)尝试连接,注意填写正确的:
- 主机 IP(不是 localhost)
- 用户名
- 密码
- 端口号(默认 3306)
如果提示连接超时,检查:
- 是否绑定了 0.0.0.0
- 防火墙是否放行端口
- 安全组是否放行端口
- 用户是否有远程访问权限
基本上就这些步骤。不复杂,但每一步都容易忽略细节,特别是权限和防火墙部分。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END