開啟本地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)創建遠程登陸用戶並授權

 

CODE: 
  • > 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 為用戶的密碼。

執行了上面的語句后,再執行下面的語句,方可立即生效。

 

CODE: 
> 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 | |

| 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; (再次查看用戶的權限情況)

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

| host | user |

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

| % | mysql |

| % | root |

| localhost | |

| localhost | root |

| localhost | |

| localhost | mysql |

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

mysql>exit

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

 


免責聲明!

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



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