当前位置: > Ubuntu >

mysql数据库远程连接授权

时间:2016-05-20 21:42来源:linux.it.net.cn 作者:IT

1. 本地进入mysql数据库

	mysql -uroot -p123456
(ps:root是用户名, 123456是密码)



2. mysql远程连接授权




 
  1. USE mysql;  
  2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;  
  3. FLUSH PRIVILEGES;  



(ps:GRANT ALL PRIVILEGES表示授权所有权限, 上面*.*中第一个*是授权可以访问的数据库名称, root是用户名, %表示请允许任意IP地址, 即任意主机可访问)



3. 测试是否可远程连接mysql数据库

mysql -h172.16.10.13 -uroot -p123456


如果连接mysql数据库时出现以下信息:
(1045, "Access denied for user 'root'@'192.168.2.47' (using password: YES)")
由需要对mysql进行远程授权, 如下操作:

 
  1. SELECT user,host,password FROM mysql.user;  


 
  1. mysql> SELECT user,host,password FROM mysql.user;  
  2. +------+-----------+-------------------------------------------+  
  3. | user | host | password |  
  4. +------+-----------+-------------------------------------------+  
  5. | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |  
  6. | root | % | |  
  7. +------+-----------+-------------------------------------------+  
  8. 2 rows in set (0.00 sec)  
  9.   
  10. mysql>  
可以看到非localhost或127.0.0.1的机器远程访问mysql数据库里,密码是空的, 这里我们可以不用输入密码直接访问mysql,。至于为什么会出现以上错误信息, 是因为我们的用非空密码进行访问, 而他远程访问时是不需要密码的, 所以导致出现以上信息。 如果需要设置密码,假设我们将密码设置为123456, 则只需要执行以下命令:

grant all on *.* to 'root'@'%' identified by '123456';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' WITH GRANT OPTION;  

 
  1. mysql> SELECT user,host,password FROM mysql.user;  
  2. +------+-----------+-------------------------------------------+  
  3. | user | host | password |  
  4. +------+-----------+-------------------------------------------+  
  5. | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |  
  6. | root | % | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |  
  7. +------+-----------+-------------------------------------------+  
  8. 2 rows in set (0.00 sec)  
  9.   
  10. mysql>   
其中上面的host:%表示任意IP, 即任意ip远程访问mysql数据库, 其用户名为:root, 密码为123456。测试下, 结果成功访问。
 
或, 允许ip为192.168.2.200远程访问mysql数据库, 用户名/密码为root/123456:


mysql> grant all on *.* to root@192.168.2.200 identified by '123456';  

 
 
 
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容