mysql 实现外部访问

默认状况下,出于安全考虑,mysql数据库屏蔽了远程访问功能。 然而在许多状况下,你需要在家或者从web程序去访问远端数据库服务器,这就相当麻烦了。

No.1 :  第一道关卡

1.编辑mysql的配置文件:sudo vi /etc/mysql/my.cnf 。   // ubuntu下面的

2. 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问 

3. 设置bind-address = 210.183.7.75,替代210.183.7.75 为你的服务器地址,即电脑IP  // 外网或者局域网可访问的,可以ping一下试试。 这边默认的是127.0.0.1或者localhost 。这边其实可以给出本电脑内部网段,比如10.33.42.29,这样,ping不同该网段的,都连接不了~

No.2:第二道关卡

   所有用户都能外链:   // root 远程用户登录用户名   pass 远程登录的密码,%是指所有用户,也可以指定段:192.168.%(这边是百分号,不是星号),表示ip前两节是这样的都可以,或者说局域网都可以

  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;    

   指定 只有172.138.1.102链接的话 - - 

  GRANT ALL PRIVILEGES ON *.* TO 'root'@'182.118.1.102' IDENTIFIED BY 'pass' WITH GRANT OPTION;  //182.118.1.102是家里面的ip地址,或者局域网的ip地址

No.3

 flush privileges;  //这步很重要,别忘了

搞定!!!恭喜你~~~

补充:

对于第二步有另一种方法:

show databases;
use mysql;
show tables;
describe user;
select * from user;

  1. mysql -u root -pvmwaremysql>use mysql;  
  2. mysql>update user set host = '%' where user ='root';  
  3. mysql>flush privileges

解释比较简洁详细的:http://sech.iteye.com/blog/618858

 

posted @ 2012-11-23 14:15  zyliang  阅读(670)  评论(0编辑  收藏  举报