解决MySQL只能通过localhost访问不能通过IP访问的问题

大数据学习路线图

【问题】
(1)远程访问MySQL经常会碰到下面的问题:
Can’t connect to MySQL server on (111 “Connection refused”)
(2)只能使用 localhost或者127.0.0.1来访问MySQL,使用其他IP地址或者主机名被拒绝访问。

【解决方案】
MySQL默认是没有开启这个权限的(只允许使用 localhost或者127.0.0.1来访问),接下来我们通过命令行的方式实现手动开启该权限。
1.找到自己MySQL数据库配置文件的位置,编辑

cd /etc/mysql/mysql.conf.d
vim mysqld.cnf

将 bind_address 127.0.0.1 这一行注释掉(也就是在这行开头加上#)

2.执行登录数据库命令

mysql -u root -p

3.会出现一行要你输入密码,输入正确密码进入MySQL交互式执行环境
···shell
mysql>
···
4.执行下面的命令:

mysql> GRANT ALL PRIVILEGES ON  *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

任意ip地址连接的用户名为root,密码为123456的用户赋予所有的权限。其中的"%"为任意的ip地址,如果想设为特定的值也可以设定为特定的值(以通配符%的内容增加主机/IP地址,也可以直接增加IP地址)。

5.执行完上述命令后用下面的命令刷新权限:

mysql> FLUSH PRIVILEGES;

执行该命令不用重启就可以把权限更改更新到内存中。

6.重新启动MySQL数据库服务,命令如下:

service mysql restart

这时,就可以使用任意IP地址或者主机名来访问MySQL数据库了。