MySQL设置允许用户远程登录

 

1. 
  //登录数据库
  mysql -u root -pvmwaremysql>use mysql; 
  //%为所有ip都可以远程访问
  mysql>update user set host = '%' where user = 'root';  
   //或直接添加一条语句也行     
   mysql>insert into user (host,user,password) values('192.168.0.51','root',password('123'));  
  //查看一下修改
   mysql>select host, user from user;    
   //推送设置到内存或重启服务器也行
  mysql>FLUSH PRIVILEGES 
 
  2.  
 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 
  如果是固定ip就这么写
 grant all privileges on *.* to 'root'@'192.168.0.49'identified by '123' with grant option;
//推送设置到内存或重启服务器也行
  mysql>FLUSH PRIVILEGES 
View Code

 

Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问 

在MySQL Server端: 

执行mysql 命令进入mysql 命令模式, 

1、新建用户远程连接mysql数据库
grant all on *.* to admin@'%' identified by '123456' with grant option; 
flush privileges;
允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
注意admin账户不一定要存在。

2、支持root用户允许远程连接mysql数据库
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
//**************/
mysql> use mysql;
mysql> selecthost,user from user;
mysql> update user set host = '%' where user = 'root';
执行完后可能提示error.再mysql> select host,user from user;查看下吧.
root对应的host成了%,表示可以任意IP地址登录了.
mysql> flushprivileges;
把缓存flush掉.在使用update语句修改用户记录后,需要FLUSH语句告诉服务器重载授权表.

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

执行命令: 
Sql代码 复制代码 收藏代码
mysql -h172.21.5.29 -uadmin -padmin   即可了   
//172.21.5.29就是MySQL Server的IP地址,admin admin就是刚才在 172.21.5.29上设置的远程访问帐户  
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;
View Code
posted @ 2017-11-20 20:43  bxzjzg  阅读(4356)  评论(0编辑  收藏  举报