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