天天看點

開啟本地MySql資料庫遠端連接配接

解決MySQL不允許從遠端通路的方法

開啟 MySQL 的遠端登陸帳号有兩大步:

1、确定伺服器上的防火牆沒有阻止 3306 端口。

MySQL 預設的端口是 3306 ,需要确定防火牆沒有阻止 3306 端口,否則遠端是無法通過 3306 端口連接配接到 MySQL 的。

如果您在安裝 MySQL 時指定了其他端口,請在防火牆中開啟您指定的 MySQL 使用的端口号。

如果不知道怎樣設定您的伺服器上的防火牆,請向您的伺服器管理者咨詢。

2、增加允許遠端連接配接 MySQL 使用者并授權。

1)首先以 root 帳戶登陸 MySQL

在 Windows 主機中點選開始菜單,運作,輸入“cmd”,進入控制台,MySQL 的 bin 目錄下,然後輸入下面的指令。

在 Linux 主機中在指令提示行下輸入下面的指令。

CODE: 

  • > 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;      

做網站,要經常更新資料庫,接觸的資料庫肯定都是mysql。有時候建站的時候因為資料庫和網站放在不同的IP,這個時候就需要用程式進行mysql的遠端連接配接,而mysql因為安全的因素,預設的時候使用者設定的是不能遠端連接配接,隻能本地連接配接,這個時候就需要自己去修改其中的設定。下面小編就介紹一下操作方法。

進入cmd指令模式。

mysql -h localhost-u mysql -p 

Enter password: ******

連接配接資料庫。

mysql> use mysql; (此DB存放MySQL的各種配置資訊)

Database changed

mysql> select host,user from user; (檢視使用者的權限情況)

+-------------+-------+

| host | user |

| localhost | |

| localhost | root |

| localhost | mysql |

6 rows in set (0.02 sec)

由此可以看出,隻能以localhost的主機方式通路。

mysql> Grant all privileges on *.* to 'root'@'%' identified by ‘password’with grant option;

(%表示是所有的外部機器,如果指定某一台機,就将%改為相應的機器名;‘root’則是指要使用的使用者名,裡面的password需要自己修改成root的密碼)

mysql> flush privileges; (運作為句才生效,或者重新開機MySQL)

Query OK, 0 rows affected (0.03 sec)

mysql> select host,user from user; (再次檢視使用者的權限情況)

| % | mysql |

| % | root |

mysql>exit

現在再試試:從遠端cmd那邊看能不能登入,能登入的話,一般用代碼也是可以連接配接的到的。

繼續閱讀