目前的項目開發完了一部分,本地測試正常,但是放到伺服器上就不行了。
本地環境:
xampp-3.2.2(php-5.6.15, apache-2.4.17)
伺服器環境:
php-5.3.3
、
nginx-1.0.15
、
php-fpm
我嘗試了3種串連mysql
的方法,在本地無一失敗,在伺服器無一成功。。
PDO
方法
代碼:
$dsn = "mysql:dbname=$db;port=$this->dbPort;host=$this->dbHost;charset=$charset";try { $this->conn = new PDO($dsn, $this->dbUser, $this->dbPasswd); return $this->conn;} catch (PDOException $e) { $this->DealError($e); return false;}
因為伺服器的php
版本太舊,無法使用PDO
訪問自訂的連接埠,於是放棄。
mysql
方法和mysqli
方法
代碼:
//mysql$this->conn = mysql_connect($this->dbHost.":".$this->dbPort, $this->dbUser, $this->dbPasword);//mysqli$this->conn=@mysqli_connect($this->dbHost, $this->dbUser, $this->dbPasswd, $this->dbName. $this->dbPort);
這個兩個方法都會會提示如下錯誤:
Can't connect to MySQL server on 'cins.swpu.edu.cn' (13)
很明顯並沒有去串連伺服器的自訂連接埠,但調用時確實指定了自訂連接埠,不知道這是什麼原因
回複內容:
目前的項目開發完了一部分,本地測試正常,但是放到伺服器上就不行了。
本地環境:xampp-3.2.2(php-5.6.15, apache-2.4.17)
伺服器環境:php-5.3.3
、nginx-1.0.15
、php-fpm
我嘗試了3種串連mysql
的方法,在本地無一失敗,在伺服器無一成功。。
PDO
方法
代碼:
$dsn = "mysql:dbname=$db;port=$this->dbPort;host=$this->dbHost;charset=$charset";try { $this->conn = new PDO($dsn, $this->dbUser, $this->dbPasswd); return $this->conn;} catch (PDOException $e) { $this->DealError($e); return false;}
因為伺服器的php
版本太舊,無法使用PDO
訪問自訂的連接埠,於是放棄。
mysql
方法和mysqli
方法
代碼:
//mysql$this->conn = mysql_connect($this->dbHost.":".$this->dbPort, $this->dbUser, $this->dbPasword);//mysqli$this->conn=@mysqli_connect($this->dbHost, $this->dbUser, $this->dbPasswd, $this->dbName. $this->dbPort);
這個兩個方法都會會提示如下錯誤:
Can't connect to MySQL server on 'cins.swpu.edu.cn' (13)
很明顯並沒有去串連伺服器的自訂連接埠,但調用時確實指定了自訂連接埠,不知道這是什麼原因
伺服器的mysql開啟遠端存取先。
建議還是先使用mysqlworkbench測試一下,確定ok,再上服務端程式。
1、確定是否許可權是有的,根據網上尋找的資訊:mysql 13 的錯誤是提示有寫入權限的問題
2、mysql 是否自訂的連接埠上進行監聽
3、mysql伺服器是否配置了可以遠端連線
根據題主描述,很像mysql沒有開啟外連,
telnet cins.swpu.edu.cn 連接埠號碼,試一下看看什麼反饋。或者你直接在伺服器上查看mysql user表你的使用者資訊。