允許遠端訪問 MySQL 需要修改 MySQL 配置文件,設置防火牆規則,以及創建具有遠程訪問權限的用戶。以下是具體步驟:
1. 修改 MySQL 配置文件
- 打開 MySQL 配置文件: MySQL 的配置文件通常位於
/etc/mysql/mysql.conf.d/mysqld.cnf
或/etc/mysql/my.cnf
。打開配置文件進行編輯:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- 允許所有 IP 地址連接: 找到
bind-address
設置,將其注釋掉或設置為0.0.0.0
,允許所有 IP 地址連接:
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
- 保存並退出文件: 按
Ctrl+O
保存文件,然後按Ctrl+X
退出 nano 編輯器。 - 重啟 MySQL 服務:
sudo systemctl restart mysql
2. 設置防火牆規則
確保你的防火牆允許 MySQL 默認端口 3306 的流量:
- 使用 UFW(Uncomplicated Firewall):
sudo ufw allow 3306
- 重新加載防火牆配置:
sudo ufw reload
3. 創建具有遠程訪問權限的 MySQL 用戶
- 連接到 MySQL: 使用 root 用戶登錄 MySQL:
sudo mysql -u root -p
- 創建新用戶並授予訪問權限: 假設要創建一個名為
remote_user
的用戶,密碼為password
,並允許從任何主機訪問:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果只允許特定 IP 地址訪問(例如 192.168.1.100
),可以這樣設置:
CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- 退出 MySQL:
EXIT;
4. 測試遠程連接
嘗試從遠程計算機連接到 MySQL 服務器,以確保配置正確:
mysql -u remote_user -p -h <server-ip-address>
替換 <server-ip-address>
為你的 MySQL 服務器的 IP 地址。輸入密碼後,你應該能夠連接到 MySQL。