一、環境搭建
在搭建環境之前,我們需要確認一下兩個問題:
1. MySQL服務是否開啟了遠程訪問
默認情況下,MySQL只允許本機訪問,需要在 MySQL 配置文件 “my.cnf” 中修改如下:
[mysqld]
bind-address = 0.0.0.0
2. 是否設置了防火牆規則,允許埠通過
因為 MySQL 默認埠是 3306,需要在伺服器的防火牆中添加規則,比如我們可以使用以下命令添加規則:
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
二、用戶授權
在允許 MySQL 遠程訪問之前,我們需要先為遠程訪問用戶授權。
首先登錄 MySQL,執行以下命令:
mysql -u root -p
然後執行以下 SQL 語句,創建一個新的用戶(以 user1 為例)並授權訪問指定資料庫:
CREATE USER 'user1'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'user1'@'%';
FLUSH PRIVILEGES;
上述命令創建了一個用戶 ‘user1’,允許他從任意 IP 地址訪問資料庫 ‘database_name’。
三、使用命令行連接遠程 MySQL
在本地機器上使用命令行連接遠程 MySQL 非常簡單,執行以下命令即可:
mysql -u user1 -h your_remote_mysql_host -p
其中 “user1″ 是之前創建的用戶,”your_remote_mysql_host” 是遠程 MySQL 主機的 IP 地址或域名,如果 MySQL 服務已經開啟了默認埠(3306),就不需要再指定 “-P” 參數了。
四、使用 Python 連接遠程 MySQL
Python 是一種廣泛使用的編程語言,下面介紹如何使用 Python 代碼連接遠程 MySQL。
首先,我們需要安裝 “pymysql” 庫,可以使用以下命令進行安裝:
pip install pymysql
然後,下面的代碼展示了如何使用 Python 連接遠程 MySQL:
import pymysql
# 連接遠程 MySQL
conn = pymysql.connect(
host='your_remote_mysql_host',
port=3306,
user='user1',
password='password',
db='database_name',
charset='utf8mb4')
# 創建游標
cursor = conn.cursor()
# 查詢數據
sql = "SELECT * FROM table_name"
cursor.execute(sql)
result = cursor.fetchall()
# 列印結果
print(result)
# 關閉游標和連接
cursor.close()
conn.close()
上述代碼中,”your_remote_mysql_host” 是遠程 MySQL 主機的 IP 地址或域名,”user1″ 和 “password” 分別是之前創建的用戶和密碼,”database_name” 是指定的資料庫名。在這個示例中,我們查詢了數據表 “table_name” 的所有數據,並將結果列印出來。
五、使用 PHP 連接遠程 MySQL
PHP 是一種流行的伺服器端編程語言,在連接遠程 MySQL 時可以使用 PHP 的 PDO(PHP Data Objects)擴展。
下面是一個簡單的 PHP 代碼示例:
<?php
// 連接遠程 MySQL
$dsn = 'mysql:host=your_remote_mysql_host;dbname=database_name;charset=utf8mb4';
$username = 'user1';
$password = 'password';
$dbh = new PDO($dsn, $username, $password);
// 查詢數據
$stmt = $dbh->prepare("SELECT * FROM table_name");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 列印結果
print_r($result);
// 關閉連接
$dbh = null;
?>
在上述代碼中,”your_remote_mysql_host” 是遠程 MySQL 主機的 IP 地址或域名,”user1″ 和 “password” 分別是之前創建的用戶和密碼,”database_name” 是指定的資料庫名。在這個示例中,我們查詢了數據表 “table_name” 的所有數據,並將結果列印出來。
六、總結
本文介紹了如何搭建 Linux MySQL 遠程訪問環境、為遠程訪問用戶授權、以及如何使用命令行、Python 和 PHP 連接遠程 MySQL 資料庫。
原創文章,作者:VTFOW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332060.html