当前位置:首页 > Mysql教程 > 列表

解决mysql不能远程连接数据库方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-13 15:14:54 浏览: 评论:0 

一般的mysql是不建义开启远程访问权限的,这样相对来说安全一些,不过今天我来为需要远程访问权限朋友介绍一下.

1、登陆mysql数据库   

mysql -u root -p

查看user表,代码如下:

  1. mysql> use mysql; 
  2. Database changed 
  3. mysql> select host,user,password from user
  4. +--------------+------+-------------------------------------------+ 
  5. | host         | user | password                                  | 
  6. +--------------+------+-------------------------------------------+ 
  7. | localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | 
  8. | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |  --phpfensi.com 
  9. +--------------+------+-------------------------------------------+ 
  10. rows in set (0.00 sec) 

可以看到在user表中已创建的root用户,host字段表示登录的主机,其值可以用IP,也可用主机名.

(1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2、实现远程连接(授权法)

将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。   

update user set host = ’%’ where user = ’root’;

将权限改为ALL PRIVILEGES,代码如下:

  1. mysql> use mysql; 
  2. Database changed 
  3. mysql> grant all privileges  on *.* to root@'%' identified by "root"
  4. Query OK, 0 rows affected (0.00 sec) 
  5.  
  6. mysql> select host,user,password from user
  7. +--------------+------+-------------------------------------------+ 
  8. | host         | user | password                                  | 
  9. +--------------+------+-------------------------------------------+ 
  10. | localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | 
  11. | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | 
  12. | %            | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | 
  13. +--------------+------+-------------------------------------------+ 
  14. rows in set (0.00 sec) 

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3、实现远程连接(改表法),代码如下:

  1. use mysql; 
  2.  
  3. update user set host = '%' where user = 'root'

这样在远端就可以通过root用户访问Mysql.

另一种方法:mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问,我的mysql环境是ubuntu+mysql5.

1.修改/etc/mysql/my.conf,修改bind-address,指定为本机实际ip地址,你的my.con修改完大概是如下的样子,代码如下:

  1. [mysqld]  
  2.  
  3.  
  4.   
  5. # * basic settings  
  6. #  
  7. default-character-set=utf8  
  8. default-storage-engine=innodb  
  9. bind-address    = 192.168.1.107  
  10. user            = mysql  
  11. pid-file        = /var/run/mysqld/mysqld.pid  
  12. socket          = /var/run/mysqld/mysqld.sock  
  13. port            = 3306  
  14. basedir         = /usr  
  15. datadir         = /var/lib/mysql  
  16. tmpdir          = /tmp  
  17. language        = /usr/share/mysql/english  
  18. skip-external-locking 

2.用root登陆mysql执行如下命令,代码如下:

  1. grant all on sonardb.* to sonar@'%' identified by '123456';  
  2.  grant all on sonardb.* to sonar@localhost identified by '123456'

sonardb替换为你想访问的数据库名,sonar是你的想使用的用户名,123456替换为你的密码,这样就开启了远程访问功能.

上面的两种方法一种是直接用root用户在cmd模式下操作,一种是在配置文件里面操作,大同小义了吧.

Tags: mysql远程连接的 mysql远程权限

分享到: