你可以通過云服務器輕松連接 MySQL Linux 或 MariaDB Linux,靈活運行應用程序。只要擁有合適的訪問權限和配置,成功連接MySQL Linux就變得快捷且簡單。
要求
運行Linux(任何發行版)的云服務器。
安裝并激活了LAMP協議棧(Apache、MySQL/MariaDB和PHP)。
如果你使用防火墻,必須允許訪問MySQL/MariaDB服務器上的端口3306。
如何連接MySQL Linux
數據庫通常連接到Linux云服務器,以靈活且大規模地運行應用程序。這種設置允許多個服務或網絡應用訪問相同的數據,而無需單獨的本地安裝。云服務器還簡化了數據庫管理、備份和安全更新。在本教程中,我們將向您展示如何在Linux服務器上搭建MySQL或MariaDB數據庫,并用PHP腳本連接。
步驟1:創建樣本數據庫
在本教程中,我們將使用測試數據庫。要創建一個,首先登錄:
mysql -u root -p
用以下命令創建測試數據庫:
CREATE DATABASE phptest;
現在切換到測試數據庫:
USE phptest;
在這里創建一個簡單的示例表。在我們的例子中,我們選擇一個存放員工的表格:
CREATE TABLE employees (id INT, name VARCHAR(40));
現在再加兩名員工:
INSERT INTO employees VALUES (1, "Alice");
INSERT INTO employees VALUES (2, "Bob");
為了驗證記錄是否正確創建,您可以使用以下SQL查詢:
SELECT * FROM employees;
輸出應該是這樣的:
+------+-------+
| id | name |
+------+-------+
| 1 | Alice |
| 2 | Bob |
+------+-------+
2 rows in set (0,002 sec)
步驟2:創建MySQL/MariaDB用戶
為了在保護數據庫免受未授權連接的同時啟用認證訪問,現在你需要創建一個 MySQL/MariaDB 用戶。為此,請再次使用MySQL/MariaDB客戶端登錄數據庫服務器:
mysql -u root -p
以下命令創建用戶并授予他們我們第一步創建數據庫的權限:
CREATE USER [Username]@[Location] IDENTIFIED BY [Password];
GRANT ALL PRIVILEGES ON [DatabaseName].* TO [Username]@[Location];
FLUSH PRIVILEGES;
替換上述命令中的占位符:
[DatabaseName]用你們數據庫的名字。
[Username]用你想為數據庫創建的用戶名。
[Location]其中 PHP 腳本的位置。如果 PHP 腳本和 MySQL 數據庫在同一臺服務器上,請使用 。否則,使用 PHP 腳本所在服務器的 IP 地址。localhost
[Password]為用戶設置安全密碼。
例如,要創建一個名為phpuser的用戶,密碼為Ig86N3tUa9,他位于與MySQL數據庫同一服務器上,并且可以訪問phptest數據庫,命令應為:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;
要創建第二個名為phpuser2的用戶,該用戶從擁有該IP地址的服務器連接,請使用以下命令:192.168.0.1
CREATE USER 'phpuser2'@'192.168.0.1' IDENTIFIED BY 'Rq53yur62I';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser2'@'192.168.0.1';
FLUSH PRIVILEGES;
步驟3:創建PHP腳本
為了驗證你的PHP應用能否連接到Linux服務器上的數據庫,你可以創建一個小型測試腳本。該腳本連接測試數據庫,從表中獲取數據,并在瀏覽器中顯示。這可以讓你確認用戶、密碼和主機配置正確,數據庫是否可訪問。
首先,創建測試腳本:
sudo nano /var/www/html/phpconnect.php
接下來,將以下內容插入文件中:
Welcome to the PHP Connect Test
$dbname = [DatabaseName];
$dbuser = [Username];
$dbpass = [Password];
$dbhost = [Location];
// Create connection
$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$connect) {
die("Connection failed: " . mysqli_connect_error());
}
// Fetch data
$result = mysqli_query($connect, "SELECT id, name FROM employees");
while ($row = mysqli_fetch_assoc($result)) {
echo "ID: {$row['id']} Name: {$row['name']}
";
}
mysqli_close($connect);
?>
HTML
用對應的數據替換 、 、 和。
例如,如果你想測試腳本與數據庫在同一服務器上的本地連接,可以使用:UsernamePasswordLocationHostname
$dbuser = 'phpuser';
$dbpass = 'Ig86N3tUa9';
$dbhost = 'localhost';
為了驗證與腳本的遠程連接,當腳本位于與數據庫不同的服務器時,給變量賦予以下數值:
$dbuser = 'phpuser2';
$dbpass = 'Rq53yur62I';
$dbhost = '192.168.0.2';
如何排查遠程MySQL/MariaDB連接的問題
如果你的PHP應用或其他腳本無法連接到MySQL Linux,或者無法從另一臺服務器連接到MariaDB Linux,可能會導致各種問題。以下解決方案可能有助于解決問題:
解決方案1:檢查用戶和權限
如果你在嘗試連接MySQL Linux或連接另一臺服務器的MariaDB Linux時遇到問題,首先檢查以下幾點:
你用的是正確的MySQL/MariaDB用戶名和密碼嗎?
這個用戶設置的位置是正確的嗎?
默認情況下,MySQL/MariaDB 允許用戶僅從創建時指定的主機登錄。例如,如果你的用戶是這樣創建的:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;
那么登錄只能在數據庫運行的同一服務器上工作()。在不同服務器上的腳本必須為遠程IP地址或(所有主機)設置用戶。localhost%
解決方案2:命令行連接測試
在檢查PHP腳本之前,你應該直接通過MySQL CLI測試連接。在腳本運行的服務器上,使用:
mysql -u [username] -h [host server IP address] -p
例如,使用用戶名 phpuser2 連接到位于 192.168.0.2 的數據庫,命令為:
mysql -u phpuser2 -h 192.168.0.2 -p
如果連接正常,這個命令會讓你登錄到遠程服務器上的 MySQL/MariaDB 客戶端。
解決方案三:防火墻
確保所有相關的防火墻規則都已更新,允許數據庫服務器的3306端口使用TCP/UDP流量。請記住,所有云服務器都受Cloud Panel默認防火墻策略的約束。
審核編輯 黃宇
-
數據庫
+關注
關注
7文章
4019瀏覽量
68329 -
PHP
+關注
關注
0文章
462瀏覽量
28621 -
MySQL
+關注
關注
1文章
905瀏覽量
29516
發布評論請先 登錄
恒訊科技解析:如何安裝MySQL并創建數據庫
Node-RED+Modbus_slave:JSON數據采集與阿里云服務器上傳
服務器遠程連接超時以及拒絕連接的真實緣由和解決辦法
恒訊科技解析:如何在日本服務器上安裝和配置數據庫(如MySQL)?
華納云香港服務器數據庫索引優化策略
SSH 遠程連接內網 Linux 服務器
數據庫數據恢復—服務器異常斷電導致Oracle數據庫故障的數據恢復案例
企業級MySQL數據庫管理指南
遠程訪問內網MySQL數據庫?這個方案更簡單
PLC數據中臺對接到MySQL數據庫并對接到生產看板
如何用PHP將MySQL/MariaDB數據庫連接到Linux云服務器
評論