開啟 MySQL 的遠程登陸帳號需要注意下面3點:
1、確定服務器上的防火牆沒有阻止 3306 端口。
MySQL 默認的端口是 3306 ,需要確定防火牆沒有阻止 3306 端口,否則遠程是無法通過 3306 端口連接到 MySQL 的。
如果您在安裝 MySQL 時指定了其他端口,請在防火牆中開啟您指定的 MySQL 使用的端口號。
如果不知道怎樣設置您的服務器上的防火牆,請向您的服務器管理員咨詢。
2.確定安全狗等沒有攔截我們的備份服務器IP
如果你的服務器上有安裝安全狗等安全類軟件,請將我們的備份服務器IP 115.28.36.60以及其他的備份服務器IP添加到白名單中。
3、增加允許遠程連接 MySQL 用戶並授權。
1)登陸服務器端,進入命令行。
Windows 主機中是點擊開始菜單,運行,輸入“cmd”,進入命令行。
2)以數據庫管理員帳號進入mysql控制台。在命令行執行 mysql -u root -p 密碼,輸入完成後即可進入mysql控制台。
例如: MySQL -uroot -p123456
123456 為 root 用戶的密碼。
3)創建遠程登陸用戶並授權,在控制台繼續執行下面語句。
grant select,lock tables on demodb.* to demouser@'115.28.36.60′ identified by 'your password';
解釋:demodb=數據庫名;demouser=數據庫用戶名;your password=數據庫密碼
例如:
grant select,lock tables on discuz.* to ted@'115.28.36.60′ identified by '123456′;
4)執行了上面的語句後,再執行下面的語句,方可立即生效。
flush privileges;
小編解釋:
grant select,lock tables on discuz.* to ted@'115.28.36.60′ identified by '123456′;
上面的語句表示將 discuz 數據庫的select,locked權限授權給 ted 這個用戶,允許 ted 用戶在 115.28.36.60 這個 IP 進行遠程登陸,並設置 ted 用戶的密碼為 123456 。
discuz.* 表示上面的權限是針對於哪個表的,discuz 指的是數據庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部數據庫的全部表授權為“*.*”,對於某一數據庫的全部表授權為“數據庫名.*”,對於某一數據庫的某一表授 權為“數據庫名.表名”。
ted 表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。
115.28.36.60 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設置為“%”即可。
注意:
115.28.36.60是我們的一個備份服務器IP,主要用來測試我們的服務器是否能夠連接上你的數據庫。
這裡很多朋友會有疑問,這樣會不會不安全啊,其實不用擔心,因為首先,你只是授權允許我們的服務器連接你的數據庫,其次,我們的服務器也只具有select和lock權限,也就是查詢和鎖表的權限,所以完全不能更改你的數據庫。
不放心的話可以在mysql控制台執行 select host, user from user; 檢查一下用戶表裡的內容.因為開啟mysql遠程登錄的用戶都是存儲在mysql數據庫中的user表中。