[英]Unable to connect mysql database from php
<?php
$servername = "192.168.179.130";
$username = "root";
$password = "";
$dbname = "rawcdr";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
上面的代碼給出了警告警告:mysqli :: mysqli():(HY000 / 2002)連接嘗試失敗,因為一段時間后被連接方未正確響應,或者由於連接的主機未能響應而建立的連接失敗。 在第59行的C:\\ xampp \\ htdocs \\ new_table \\ index.php中。
主機是另一台服務器(CentOS 7),我已經檢查了它的可達能力。 我還通過以下方式在mysql服務器中提供了特殊特權:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.%' IDENTIFIED BY PASSWORD '';
還通過以下方式啟動了防火牆服務:
service firewalld start
通過以下命令檢查端口3306是否打開:
netstat -nlp | grep 3306
當然,首先要檢查的是遠程計算機上的防火牆沒有阻止對端口3306的訪問。
但:
默認情況下,MYSQL Server上的root
用戶帳戶已配置,因此只能從運行MySQL Server實例的計算機上使用該帳戶。 因此,默認情況下,您不能使用root
遠程訪問服務器。
這就是應該的。 畢竟是超級用戶帳戶。
例如
`root`@`localhost`
因此,您將必須在遠程MYSQL Server實例上創建一個新用戶,該用戶可以從任何危險的遠程主機或特定的遠程主機(您的PC的IP地址)進行連接。 還應該設置此新帳戶,以允許您以您要訪問的數據庫上的必需特權對其進行訪問。
CREATE USER 'ayax'@'192.168.1.200' IDENTIFIED BY 'new_password'
或者,如果它的5.7服務器不要忘記新密碼已過期
CREATE USER 'ayax'@'your-ip-address' IDENTIFIED BY 'new_password'
PASSWORD EXPIRE NEVER;
如果您的IP地址是由DHCP服務器分配的,並且可以每天更改,則這樣的更改會更靈活
CREATE USER 'ayax'@'192.168.1.%' IDENTIFIED BY 'new_password'
嘗試這個 :
$conn = mysqli_connect('192.168.179.130', 'my_user', 'my_password', 'my_db');
if (!$conn) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.