前置條件:
1、在阿里雲服務器de系統是win service 2012。
2、服務器里自己安裝了my sql 5.7
3、本地也安裝了my sql 5.7
需求:想通過本地的mysql連接上遠程的服務器的mysql,這樣自己在本地操作數據庫比在服務器里數據庫要好。
步驟:
一、增加允許遠程連接 MySQL 用戶 並授權。
在你安裝路徑下的bin文件夾里進行命令行的設置。
1、首先以 root 帳戶登陸 MySQL
在服務器中打開命令行(shift+右鍵)
打開數據庫管理員權限
mysql -uroot -p 123
我去,對應的是123是對應到數據庫名。
果斷改為
mysql -uroot -p
輸入mysql的密碼。

2、查看用戶的權限
mysql> select host,user from user; (查看用戶的權限情況)

3、創建遠程登錄用戶並授權
進入到服務器的命令行里
輸入
use mysql
在輸入
grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的語句表示將 discuz 數據庫的所有權限授權給 ted 這個用戶,允許 ted 用戶在 123.123.123.123 這個 IP 進行遠程登陸,並設置 ted 用戶的密碼為 123456 。
注意:
(1)all PRIVILEGES 表示賦予所有的權限給指定用戶,這里也可以替換為賦予某一具體的權限,例如:select,insert,update,delete,create,drop 等,具體權限間用“,”半角逗號分隔。
(2)discuz.* 表示上面的權限是針對於哪個表的,discuz 指的是數據庫,后面的 * 表示對於所有的表,由此可以推理出:對於全部數據庫的全部表授權為“*.*”,對於某一數據庫的全部表授權為“數據庫名.*”,對於某一數據庫的某一表授 權為“數據庫名.表名”。
(3)ted 表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。
(4)123.123.123.123 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設置為“%”即可。
(5)123456 為用戶的密碼。
我最終使用的是把整個數據庫的權限都ok,全部數據庫的全部表,給root用戶授權。沒有設定遠程連接IP地址。

4、執行更新權限(刷新權限)
flush privileges;

5、再一次查看數據庫用戶權限
mysql> select host,user from user; (再次查看用戶的權限情況)

二、打開服務器上的防火牆阻止 3306 端口,可以公網訪問。
MySQL 默認的端口是 3306 ,需要確定防火牆沒有阻止 3306 端口,否則遠程是無法通過 3306 端口連接到 MySQL 的。
如果您在安裝 MySQL 時指定了其他端口,請在防火牆中開啟您指定的 MySQL 使用的端口號。
找到防火牆的允許的應用,打開數據庫的公用和專用。

三、在本地建立服務器數據庫連接
1、點擊這個

2、數據里填上連接的名字,服務器IP,以及連接數據庫的名字和密碼

3、點擊configure server mangement

如果報這個錯誤,說明是服務器的3306端口與沒有打開。
下面圖連接成功

選擇SSH login。。。。

輸入服務器的公網IP和端口(我也不知道是啥端口我寫的是本地跑的項目的本地接口)

一路next就ok。
