2014-03-26 54 views
0

我在遠程連接到我們的mysql服務器時出現問題。我們有兩臺運行Plesk 11.5的服務器,其中一臺是Linux(IP 99.99.99.99),另一臺是Windows R2 2008(IP 88.88.88.88)。啓用mySQL遠程連接端口3306 Plesk 11.5 CENTOS

注意:這些不是真正的IP地址,但爲了安全起見,我用上面的那些替換了它們。

我想從windows機器連接到linux機器上的mysql服務器。我使用的mysqli

Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on '99.99.99.99' (10060) in C:\Inetpub\vhosts\oldburywells.co.uk\httpdocs\setup\includes\db.php on line 12 
Failed to connect to MySQL: (2003) Can't connect to MySQL server on '99.99.99.99' (10060) 

/etc/my.cnf中的內容通過PHP腳本連接方法如下:

[mysqld] 
set-variable=local-infile=0 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
# Default to using old password format for compatibility with mysql 3.x 
# clients (those using the mysqlclient10 compatibility package). 
# Forced OLD_PASSWORD format is turned OFF by Plesk 
#old_passwords=1 
port=3306 
bind-address=99.99.99.99 
# skip-networking 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

在MySQL數據庫 - db表用於主機的記錄是這樣無視INSERT語句中,這對我來說,顯示選項的最簡單的方法:

INSERT INTO `db` (`Host`, `Db`, `User`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Execute_priv`) VALUES 
('%', 'designjazzsetup', 'designjazzsu', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); 

在user表中的用戶記錄是這樣的:

INSERT INTO `user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`) VALUES 
('%', 'designjazzsu', '*812A9EC8DA3040D2FBE1FDE5A71B25011F43A358', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0); 

的內容的/ etc/SYSCONFIG/iptables的:

# Generated by iptables-save v1.3.5 on Tue Mar 25 10:57:08 2014 
*filter 
:INPUT ACCEPT [789031949:87191570991] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [261535305:1869618743997] 
#-A INPUT -s 88.88.88.88 -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT 
COMMIT 
# Completed on Tue Mar 25 10:57:08 2014 

當我嘗試在端口3306超時遠程連接到MySQL的Linux服務器上(99.99.99.99),這種情況發生在Windows服務器(88.88.88.88),也來自我的本地辦公室PC。

在基於Windows Server我db.php中的內容包括(這是試圖連接到Linux的MySQL服務器)看起來像這樣:

<?php 
session_start(); 
$host = "99.99.99.99"; 
$user = "designjazzsu"; 
$password = "52dJ5rH6kL77hgd!"; 
$db = "designjazzsetup"; 

$mysqli = new mysqli($host, $user, $password, $db); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 
#echo $mysqli->host_info . "\n"; 

$mysqli = new mysqli("99.99.99.99", $user, $password, $db, 3306); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 

#echo $mysqli->host_info . "\n"; 
?> 

我花了過了一天這個並完全卡住。

我有一個需要在兩臺服務器之間共享的Linux服務器上的數據庫。

任何幫助將不勝感激球員。

並且謝謝。

親切的問候, 邁克爾

回答

0

不能在兩個地址進行綁定。 您可以綁定到0.0.0.0地址並在防火牆中制定規則。 實例和有用的鏈接:

unix-linux-mysqld-server-bind-to-more-than-one-ip-address

mysql-bind-to-more-than-one-ip-address

+0

所以我想使用mysql服務器上的Linux機器的本地連接,即網站在Linux機器託管的數據庫,但我也想遠程從Windows服務器連接到從Windows服務器上託管的網站訪問數據庫。此外,MySQL服務器的plesk中的防火牆說允許來自所有人。 –

+0

如果你想遠程連接,你必須註釋bind-address。另一種方式是不能連接遠程 - 僅限於定義的IP。 – IceManSpy

+0

我試過它沒有綁定地址以及它仍然無法正常工作。 –