- 云服務器(ECS),如:阿里云、華為云、騰訊云等。
- IDC服務器。
1. 遠程登錄 Windows 服務器,安裝好 MySQL 數據庫服務。
? ? ?My SQL Server 下載:MySQL :: Download MySQL Community Server
2. 安裝好后,進入到 MySQL 安裝目錄下 bin 文件夾(如:C:\Program Files\MySQL\MySQL Server 8.0\bin),輸入以下 命令來測試是否安裝成功。
mysql -h localhost -u root -p123456
# -h:表示后跟 MySQL 服務器名
# -u:表示后跟 MySQL 登錄用戶名
# -p:表示后跟 MySQL 登錄密碼
# 注:-h和-u參數后面可以有空格或沒有空格都可以;-p參數與密碼值之間則不能有空格,否則回車后會顯示輸入密碼提示。
3. MySQL 默認情況下,只允許 localhost 連接。若需要外部 IP 連接到 MySQL,確保 MySQL 數據庫里"user"表中有一個允許從遠程IP地址連接的用戶。
????其中,“user”表中 host 列表示該用戶可以訪問主機情況,默認是 localhost(表示本地訪問)。若要允許遠程訪問,則將 host 值改為“%”即可。
- 對預設管理員用戶 root 授權遠程IP訪問權限。
mysql> use mysql; # use命令指定使用的數據庫。 MySQL數據庫用戶都放在 mysql 數據庫下的“user”表中。
mysql> select user,host from user; # 查詢 user 表中已存在的用戶數據,可以看到 root 用戶的 host 為 localhsot
+------------------+-----------+
| user | host |
+------------------+-----------+| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
mysql> update user set host='%' where user='root'; # 將 root 用戶的"host"值更新為"%"
mysql> flush privileges; # 將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存里
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION; # 為 root 用戶進行授權,任意主機以用戶 root 和密碼連接到 mysql 服務器
mysql> flush privileges;# grant語法: grant 權限名(所有的權限用all) on 庫名(*全部).表名(*全部) to ‘要授權的用戶名’@’%’(%表示所有的IP,可以只是一個IP) identified by “密碼”;
- 創建允許遠程IP訪問權限的用戶。
mysql> use mysql;
mysql> CREATE USER 'user'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
4. 完成上述處理后,目前還是不能遠程訪問 MySQL 數據庫。還需要在云服務器(ECS)上設定防火墻訪問規則。
打開阿里云服務器(ECS)>> 安全組 >> 訪問規則 下的“入方向”,增加 MySQL 端口(3306)允許訪問的授權,如下截圖:
5.? 若 MySQL 服務器在配置文件(通常是my.cnf或my.ini)指定特殊IP地址訪問設定(如:bind-address = 192.168.0.4),如下:
[mysqld]
bind-address = 192.168.0.4
? ??則需要將 bind-address 配置項更改為 0.0.0.0,允許MySQL監聽所有IP地址。
mysql -h 127.0.0.1 -u root -p123456
? ??注:MySQL 在默認情況下是沒有指定 bind-addrerss 配置信息,若沒有可以在 [mysqld] 下手動添加。
6.? 完成上述設定后,在外部可以使用 MySQL 客戶端管理工具(如:Navicat)通過遠程 IP 地址來訪問 MySQL 數據庫。
