MySQL實現遠程登入的方法

來源:互聯網
上載者:User

原因分析:
  Host 'Local' is not allowed to connect to this MySQL server 典型的遠程許可權問題。
問題癥結:

  MySQL 沒有開放遠程登入的許可權。要看你的伺服器到底用的那種系統,linux或者是Windows,這個解決辦法不同,你可以上網搜尋一下,解決問題的資料很多。
解決辦法:
  開啟 MySQL 的遠程登陸帳號有兩大步:
1、確定伺服器上的防火牆沒有阻止 3306 連接埠。
  MySQL 預設的連接埠是 3306 ,需要確定防火牆沒有阻止 3306 連接埠,否則遠程是無法通過 3306 連接埠串連到 MySQL 的。
  如果您在安裝 MySQL 時指定了其他連接埠,請在防火牆中開啟您指定的 MySQL 使用的連接埠號碼。
  如果不知道怎樣設定您的伺服器上的防火牆,請向您的伺服器管理員諮詢。
2、增加允許遠端連線 MySQL 使用者並授權。
  1)首先以 root 帳戶登陸 MySQL
  在 Windows 主機中點擊開始菜單,運行,輸入“cmd”,進入控制台,MySQL 的 bin 目錄下,然後輸入下面的命令。
  在 Linux 主機中在命令提示行下輸入下面的命令。

複製代碼 代碼如下:> MySQL -uroot -p123456

123456 為 root 使用者的密碼。
2)建立遠程登陸使用者並授權

複製代碼 代碼如下:> grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';

  上面的語句表示將 discuz 資料庫的所有許可權授權給 ted 這個使用者,允許 ted 使用者在 123.123.123.123 這個 IP 進行遠程登陸,並設定 ted 使用者的密碼為 123456 。
下面逐一分析所有的參數:
  all PRIVILEGES 表示賦予所有的許可權給指定使用者,這裡也可以替換為賦予某一具體的許可權,例如:select,insert,update,delete,create,drop 等,具體許可權間用“,”半形逗號分隔。
  discuz.* 表示上面的許可權是針對於哪個表的,discuz 指的是資料庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為“*.*”,對於某一資料庫的全部表授權為“資料庫名.*”,對於某一資料庫的某一表授權為“資料庫名.表名”。
  ted 表示你要給哪個使用者授權,這個使用者可以是存在的使用者,也可以是不存在的使用者。
  123.123.123.123 表示允許遠端連線的 IP 位址,如果想不限制連結的 IP 則設定為“%”即可。
  123456 為使用者的密碼。
執行了上面的語句後,再執行下面的語句,方可立即生效。

複製代碼 代碼如下:> flush privileges;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.