Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)
问题现象描述
在Ubuntu Server 16.04上安装MySQL之后设置了远程访问,但是无法远程访问MySQL数据库,提示error:10061
错误。
解决方案
1. 确认MySQL已启动并监听正确的端口
使用以下命令检查MySQL服务是否已启动并监听正确的端口:
sudo systemctl status mysql
如果MySQL服务已启动,则输出信息中应该会显示running状态。如果MySQL服务未启动,使用以下命令启动MySQL服务:
sudo systemctl start mysql
同时,确认MySQL是否已经开始监听正确的端口(默认情况下是3306)。可以使用以下命令查看当前监听的端口:
sudo netstat -anp | grep 3306
如果端口处于监听状态,则输出信息中应该会显示tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
的字样。
2. 修改MySQL的配置文件以允许远程访问
- 打开MySQL的配置文件my.cnf。该文件通常位于
/etc/mysql/
目录下,使用以下命令打开该文件:
sudo vi /etc/mysql/my.cnf
-
将
bind-address = 127.0.0.1
改为bind-address = 0.0.0.0
,表示MySQL允许从任何IP地址访问。 -
保存文件并退出。
3. 确认防火墙规则已正确设置
如果Ubuntu Server上启用了防火墙,则需要确认已正确设置防火墙规则以允许MySQL流量通过。可以使用以下命令查看当前iptables规则:
sudo iptables -L
即可随时检查防火墙规则是否允许MySQL流量通过。如果规则不允许MySQL流量通过,则需要添加相应的规则。例如:
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
4. 重启MySQL服务
最后,重启MySQL服务以使更改生效。使用以下命令重启MySQL服务:
sudo systemctl restart mysql
示例说明
示例1: 修改MySQL的配置文件以允许远程访问
使用sudo vi /etc/mysql/my.cnf
打开MySQL的配置文件my.cnf,修改bind-address
配置项的值,然后保存并退出。
bind-address = 0.0.0.0
示例2: 确认防火墙规则已设置
使用sudo iptables -L
查看当前iptables规则,确认是否已添加规则以允许MySQL流量通过。
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql /* Allow MySQL Traffic */
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061) - Python技术站