在服务器上新安装的MySQL无法被远程连接,需要以下几步来解决
0.查看端口开放情况
- 阿里云将3306端口安全组设置为0.0.0.0/0,对所有人开放
- 通过端口扫描工具确认是否可以连接:端口扫描工具
- 登陆服务器,使用
netstat -an | grep 3306
查看MySQL的运行情况以及监听情况,发现3306端口只在本地上被监听
root@iZbp12kno11kc9e34bktfaZ:/var/log/mysql# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
1.开放端口并重新启动
- 修改MySql配置文件,开放端口监听
vim /etc/mysql/mysql.conf.d/mysqld.cnf
...
# bind-address = 127.0.0.1 //注释掉这行
...
- 重新启动MySQl
service mysql restart
- 查看端口监听状态
netstat -an | grep 3306
tcp6 0 0 :::3306 :::* ISTEN
现在外部已经可以访问3306端口了,但是为了连接MySQL,还需要配置一个拥有远程连接权限的账户「默认的root为本地连接权限」
2.配置远程连接用户
// 创建用户
mysql> create user arong;
Query OK, 0 rows affected (0.00 sec)
// 为用户配置全部权限
mysql> grant all privileges on *.* to arong@'%' identified by '123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
// 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
以上完成之后就可以使用远程用户连接服务器MySQL了。