【原文链接】http://www.jb51.net/article/24508.htm
有时候需要远程连接mysql数据库,默认是不可以的,大家可以参考下面的方法,解决下。
第一中方法:比较详细以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程。
1、d:\MySQL\bin\>mysql -h localhost -u root
这样应该可以进入MySQL服务器
复制代码 代码如下:
MySQL>update user set host = '%' where user = 'root';
MySQL>select host, user from user;
2、MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION
予任何主机访问数据的权限
3、MySQL>FLUSH PRIVILEGES;
修改生效
4、MySQL>EXIT
退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!
第二种方法:
1、在控制台执行 mysql -u root -p mysql,系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台,这个命令的第一个mysql是执行命令,第二个mysql是系统数据名称,不一样的。
2、在mysql控制台执行 GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY ‘MyPassword' WITH GRANT OPTION;
然后执行FLUSH PRIVILEGES;
说明:在mysql控制台执行命令中的 ‘root'@'%' 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;'MyPassword'是给授权用户指定的登录数据库的密码(需要自行修改);另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,GRANT具体操作详情见:http://dev.mysql.com/doc/refman/5.1/en/grant.html
3、不放心的话可以在mysql控制台执行 select host, user from user; 检查一下用户表里的内容 ;或者是在其他主机上面执行mysql -h {远程主机IP} -uroot -p,然后输入上面的那个‘MyPassword'(注意需要跟上面输入的一致)。
第三种方法:
mysql
show databases;
use mysql;
GRANT ALL PRIVILEGES ON *.* TO root@172.16.11.6 identified by 'root123';