簡體   English   中英

如何使用PHP從其他主機連接到MySQL數據庫

[英]How to connect to MySQL database from other host using PHP

我需要使用PHP連接到MySQL,但是數據庫在另一台主機上,我無法正確執行。

我正在使用此代碼。 錯誤在這一行:

$mysqli = new mysqli("hostex.lt","myInfo","pass","myInfoo");

“ hostex.lt”。 數據庫在hostex.lt中,phpMyAdmin:myadmin.hostex.lt我已經嘗試過,但它總是打印error:error:error:error:error:error:error:error:error:error:

此代碼在我使用localhost的其他項目中有效,因此這里是問題。

        for($i=1;$i<=10;$i++)
        {
    if ($stmt = $mysqli->prepare("INSERT into game (taskai, userName) VALUE (?,?) ")) {
    if (!$mysqli->set_charset("utf8")) {
        printf("Error loading character set utf8: %s\n", $mysqli->error);
    } else {
    //    printf(" ", $mysqli->character_set_name());
    }


    $stmt->bind_param('ss', $score, $name);
      // $stmt->bind_param("s", $username);

       $stmt->execute();

       if ($stmt->error != '') {
           echo ' error:'.$stmt->error;
       } else {
           echo 'success';
       }
       $stmt->close();
    } else {
       echo 'error:'.$mysqli->error;
    }
    }
    $mysqli->close();
    ?>

更新

我有這個錯誤:

錯誤

默認情況下,MySQL只允許從本地主機訪問,如果要從其他主機訪問它,則必須明確允許它。

登錄到PHPMyAdmin,轉到Privileges,添加用戶'myDbName'@'www.ftpDomainName.lt'(@后的主機部分很重要),並授予其對數據庫的訪問權限。

如果您無權訪問PHPMyAdmin中的“特權”部分,則必須聯系數據庫的托管人。

本質上 ,這不太可能是PHP問題,但很可能是數據庫服務器上的某些問題阻止了連接。

按此順序嘗試以下操作,在每個步驟之后運行代碼:

新的MySQL用戶

  • 通過PHPMyAdmin添加新的數據庫用戶。
  • 轉到特權,然后添加用戶。
  • 主機可以設置為'%'(通配符-允許所有服務器訪問。安全性較差,但以后可以加強)。
  • 填寫用戶名和密碼,然后將其用於PHP代碼。
  • 重試您的代碼。

數據庫服務器

在數據庫服務器上,請系統管理員編輯/etc/mysql/my.cnf(假設這是一台Linux計算機,其my.cnf存儲在此位置-系統管理員將知道如何查找正確的文件)。

  • 在行的開頭用#字符注釋掉“ bind-address = 127.0.0.1”和“ skip-networking”(如果存在)兩部分。
  • 保存文件
  • 重新啟動MySQL服務(服務mysql重新啟動)。
  • 重試您的代碼

防火牆功能

如果上述步驟不起作用,則很可能是防火牆阻止了該連接。

  • 在服務器上,允許端口3306接受傳入的連接
  • 如果存在共享的防火牆設備或雲托管合作伙伴(例如,AWS)具有防火牆,請允許端口3306
  • 重試您的代碼。

請注意,如果MySQL服務器的sysadmin不想打開防火牆上的端口或啟用與數據庫的外部連接,則您無能為力

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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