最近在学习数据库,想要实现MySQL的远程访问,但是在网上查了好多资料,只是把mysql数据库中的localhost修改,然后修改权限,但是改完之后还是会出现
ERROR (2003) (HY000): Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’ (111)
下面说一下我的全部设置流程。以下全部操作都在需要被远程访问的MYSQL服务器上进行。
PS:最好单独设一个管理员账号将其作为远程访问的账号,不然很可能造成无法在本地登录
1、转到/etc/mysql/mysql.conf.d文件夹下
cd /etc/mysql/mysql.conf.d
2、打开mysql.cnf文件
vim mysqld.cnf
3、按i对文件进行编辑,找到bind-address = 127.0.0.1 这一行
在其最前便加一个 # ,将其注释掉,然后保存退出。
4、通过service脚本重启mysql服务
service mysql restart
5、登录进MySQL执行下面的SQL语句,对root账户进行授权,允许任何IP地址的计算机都可以用root账户和密码(root)来访问MySQL服务器
grant all on *.* to root@'%' identified by 'root' with grant option;
如果出现 The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 报错,请先执行第六步刷新特权,然后再执行此命令。
6、刷新特权
flush privileges;
7、查看修改结果
使用 mysql
数据库
use mysql;
查看结果
select host, user from user;
8、此时就可以通过远程访问来访问次数据库了。在客户端登录数据库
mysql -h xxx.xxx.xxx.xxx -uroot -proot
就可以登录上了