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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM