我在我的電腦上安裝了MysqlServer和Mysql Workbench。服務器運行良好(綠色)。 現(xiàn)在我有一個共享托管服務器,我想通過一個PHP腳本從我的電腦上的數(shù)據(jù)庫中獲取數(shù)據(jù)。目前還沒有數(shù)據(jù)庫或任何數(shù)據(jù),因為我只是想先建立兩個服務器之間的連接。我嘗試了很多次連接,但到目前為止都沒有成功。
→ 使用Workbench的選項文件,我在bind-address中放入了由托管服務器提供的IP地址。(即希望從我的電腦上的MysqlServer訪問的遠程服務器)。
→ 我還啟用了SSL連接,因為我的托管網(wǎng)站是基于SSL的。
→ 然后,在用戶和權限中,我將%放在root用戶上,以便root可以從另一個主機(不僅僅是localhost)連接到我的電腦上的MysqlServer。
→ 我已經(jīng)允許了Windows防火墻上端口3306的入站規(guī)則。
→ 我正在使用的基本代碼是一個基本的PDO PHP數(shù)據(jù)庫連接,其中$host是我的電腦的公共IP,$port是3306,$root是root,密碼是我在安裝MysqlServer時創(chuàng)建的密碼。
我正在使用的基本代碼是:
try { $dbh = new PDO("mysql:host=".$host.";port=".$port, $root, $root_password); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?>
→ 我遇到的錯誤是:SQLSTATE[HY000] [2002] 無法連接到MySQL服務器“我的電腦的公共IP地址”。
有人遇到過這種問題嗎?你能看到任何奇怪的東西可以幫助我嗎? 歡迎任何答案、建議、評論或問題。
有兩種連接數(shù)據(jù)庫的方式-
$connect = new PDO('mysql:host=localhost;port=3306;dbname=dbname','root',''); $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
或者
$connect = new mysqli("localhost","root","","dbname");