今天在用客户端工具远程连接mysql的时候,连接不上,以为是防火墙,关了防火墙后依然打不开,后开在网上查了下原来mysql基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。
1、登录到mysql中,为root进行远程访问的授权,执行下面的命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test1'@'%' IDENTIFIED BY '123456';
mysql> flush privileges;
"%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,换成相应的IP,如:
GRANT ALL PRIVILEGES ON *.* TO 'test1'@'192.168.0.25' IDENTIFIED BY '123456';
第二句 flush privileges表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
2、修改/etc/mysql/my.cnf,需要root用户权限。找到文件中的:
bind-address = 127.0.0.1
注释后保存。
3、重新启动MySQL服务器。执行下面的几条命令即可:
# service mysql restart