如何设置mysql远程访问

 

Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问 
在MySQL Server端: 
执行mysql 命令进入mysql 命令模式, 

Sql代码 

mysql> use mysql;  
mysql> GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;  
  1. #这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户  和密码(admin)来访问这个MySQL Server   
  2. #必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆  

 

那么如何远程访问呢? 
在另一台MySQL 客户端(装有mysql程序包的pc ,windows或者是linux均可) 
执行命令: 

mysql -h172.21.5.29 -uadmin -padmin

//172.21.5.29就是MySQL Server的IP地址,admin admin就是刚才在 172.21.5.29上设置的远程访问帐户  


我发现一个问题, 如果上面的命令你执行完毕, 你在 本地就是localhost , 执行 : 

Sql代码  mysql -hlocalhost -uadmin -padmin   结果是失败的。 

原来 上面的 % 竟然不包括localhost 

所以你还必须加上这样的 命令  

mysql>GRANT ALL ON *.* TO admin@'localhost'  IDENTIFIED BY 'admin' WITH GRANT OPTION;
mysql>flush privileges;

 

最后我们还需要修改mysql的配置文件

sudo vim /etc/mysql/my. cnf

 

在旧版本中找到 skip-networking,把它注释掉就可以了 

#skip-networking

在新版本中:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
找到 :bind-address           = 127.0.0.1 这一行要注释掉
#bind-address           = 127.0.0.1
或者把允许访问的 ip 填上
#bind-address       = 192.168.1.122
然后重启 MySQL
$> sudo /etc/init.d/mysql restart

 

 
posted @ 2013-03-19 17:27  goldenstones  阅读(151)  评论(0)    收藏  举报