转自: http://www.hongyanliren.com/89.html
使用mysql中,很多人都会遇到这样的问题:在vps服务器或者云服务器上安装了mysql后,使用其他工具在外网ip之下根本就连接不上mysql,到底是什么原因导致外网ip无法访问mysql数据库呢, mysql 的root账户,我在连接时通常用的是localhost或127.0.0.1。那么怎么设置才能让外网ip可以访问mysql数据库,解决方法如下:
1,修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看
“select host,user from user ;”
# mysql -h 127.0.0.1 -u root
# mysql>use mysql;
# mysql>update user set host = '%' where user ='root';
# mysql>select host, user from user;
# mysql>flush privileges;
# mysql>update user set host = '%' where user ='root';
# mysql>select host, user from user;
# mysql>flush privileges;
注意:最后一句很重要,目的是使修改生效.如果没有写,则还是不能进行远程连接.
2,授权用户,你想root使用密码从任何主机连接到mysql服务器
# mysql -h 127.0.0.1 -u root
# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION;
# flush privileges;
其中, root为用户名, admin123为你要设置的远程登录密码
如果你想允许用户root从ip为192.168.12.16的主机连接到mysql服务器
# GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.16' IDENTIFIED BY 'admin123' WITH GRANT OPTION;
# flush privileges;
其中, root为用户名, admin123为你要设置的远程登录密码