簡體   English   中英

無法從php連接mysql數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM