windows下用navicat遠程連接虛擬機Linux下MySQL數據庫

       今天想用navicat遠程鏈接虛擬機中的MySQL數據庫,一直連不上,在網上搜索了一下,發現緣由是MySQL對遠程用戶登錄的受權問題。這裏說一下個人解決方法。(本人小白)mysql

  首先,我用navicat去遠程連接我虛擬機中的MySQL,連接測試失敗。sql

  而後在虛擬機中查看網絡端口信息:數據庫

  #netstat -ntpl服務器

  

 

  以後查看了防火牆的狀態,發現3306端口的數據包都是丟棄狀態網絡

  #iptables -vnL測試

  

  

  這裏要清除防火牆中鏈中的規則spa

  #iptables -F3d

 

  在這以後,我又遠程連接了一下MySQL,出現瞭如下錯誤,查了一下,是由於MySQL沒有容許遠程登錄,因此要受權MySQL遠程登錄。blog

  

  

這裏先說一下MySQL登錄:

  格式: mysql -h主機地址 -u用戶名-p用戶密碼ip


    一、例1:鏈接到本機上的MYSQL
    找到mysql的安裝目錄,通常能夠直接鍵入命令mysql -uroot -p,回車後提示你輸密碼,輸入密碼,直接回車便可進入到MYSQL中了,MYSQL的提示符是:mysql>

    二、鏈接到遠程主機上的MySQL
    假設遠程主機的IP爲:10.0.0.1,用戶名爲root,密碼爲123。則鍵入如下命令:
    mysql -h10.0.0.1 -uroot -p123
   (注:p與123(密碼)之間最好不加空格,其它也同樣)

    三、退出MySQL命令
   exit (回車)

最後受權MySQL,容許遠程用戶登陸訪問MySQL

  手動增長能夠遠程訪問數據庫的用戶。

  方法1、本地登入mysql,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,將"localhost"改成"%"

  #mysql -u root -proot
  mysql>use mysql;
  mysql>update user set host = '%' where user = 'root';
  mysql>select host, user from user;


  方法2、直接受權(推薦)

  從任何主機上使用root用戶,密碼:youpassword(你的root密碼)鏈接到mysql服務器:
  # mysql -u root -proot
  mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

  操做完後切記執行如下命令刷新權限
    FLUSH PRIVILEGES

   這時再經過navicat遠程連接MySQL,連接測試,以下圖,成功。

  

相關文章
相關標籤/搜索