Navicat 遠程鏈接 Mysql 2003 錯誤

Navicat 遠程鏈接 Mysql 2003 錯誤

navicat-for-mysql

這是換着花樣的折騰本身。mysql

剛開始時在 Windows 上裝個 PHPnow 玩 WordPress 等 PHP 程序就很知足了,後來呢,搞虛擬主機裝 Linux 系統,把折騰轉到虛擬主機上,如今依然是虛擬主機裝 Linux 系統,而後在 Windows 裏「遠程」訪問虛擬主機來折騰 WordPress,偶爾還想着搞個老機器獨立裝 Linux 系統連局域網,真正實現遠程,也不知道這樣折騰的意義何在,多是爲了知足本身僞裝有 VPS 的樣子吧。sql

之前一直用 PhpMyAdmin 管理 Mysql 數據庫,後來折騰虛擬主機後發現遠程用 Navicat 管理數據庫更方便,並且導入導出不會像 PhpMyAdmin 偶爾會出錯,還有一個和 Navicat 相似的程序,圖標是隻小海豚的 SQLyog 也不錯。數據庫

使用 Navicat 的時候遇到過幾回鏈接不上遠程數據庫的問題,每次解決完都沒有把方法記下來,致使重裝虛擬機後又獲得處找方法,因此,想到博客長草,恰好除草一下。spa

  1. 肯定遠程裝了 Mysql 這是廢話
  2. mysql -u root -p回車,輸入密碼回車,登陸
  3. 受權遠程用戶登陸
    • 對全部 root 用戶受權:
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用戶密碼' WITH GRANT OPTION;
    • 對指定 IP 的 root 用戶受權:
      GRANT ALL PRIVILEGES ON *.* TO root@'指定的IP地址' IDENTIFIED BY 'root用戶密碼' WITH GRANT OPTION;
    • 也能夠受權指定的表,這就不搞的那麼麻煩了,反正本地本身用。
  4. 重載受權表:FLUSH PRIVILEGES;
  5. exit 退出 Mysql

到這裏基本都沒問題,不過設置好後 Navicat 鏈接數據庫仍是會提示 2003 錯誤:2003——can't connect to mysql server on localhost(10061) 緣由是有一步我總是忘記,總是忘記,總是忘記(容易忘記的事情說 3 遍)。code

打開 /etc/mysql/mysql.cnf 在文件最底部添加:
bind-address= 0.0.0.0
或者是打開 /etc/mysql/mysql.conf.d/mysqld.cnf 找到文件裏的:
bind-address= 127.0.0.1 把它改爲 bind-address= 0.0.0.0
由於第一個有優先級,因此我是直接在 /etc/mysql/mysql.cnf 文件裏添加。server

這樣 Navicat 就能夠無礙的「遠程」訪問數據庫了,效果就是文章開頭的那個圖,改起來很直觀方便。get

2016.9.6更新博客

最後一步不知道什麼鬼,之前添加那句沒問題,此次又忽然不行,加了後重啓 mysql 服務報錯,只能經過 /etc/mysql/mysql.conf.d/mysqld.cnf 裏,在 bind-address= 127.0.0.1 這一句前加 # 將它註釋掉,就能夠了。虛擬機