PHP kullanarak uzaktan MySQL sunucusuna bağlanma

3 Cevap php

Ben aşağıdaki kodu kullanarak virtualhost benim yerel makineden uzaktaki bir MySQL sunucusuna bağlanmak için çalışıyorum:

$conn = mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error());
        mysql_select_db($dbname, $conn) or die(mysql_error());

Benim sorunum ben hata alıyorum, yerel bağlanamıyor olmamdır:

'Xxx.xxx.xxx.xxx' MySQL sunucusuna bağlanamıyor (10060)

Ben sunucuya aynı PHP dosya upload bu durum böyle değil. Ben hiç bir sorun ile veritabanını sorgulamak mümkün duyuyorum.

Ben de komut satırı üzerinden bağlanamıyorum, ama benim IP yanlışlıkla yasaklı olma şansını dışladı hangi cPanel erişebilirsiniz.

Benim yerel sunucu PHP 5.2.9, uzak sunucu 5.2.12 çalışıyor

3 Cevap

  • sunucunun güvenlik duvarı set-up gerekir port 3306 incomming bağlantıları etkinleştirmek için
  • (Ayrıntılar için manual bakınız) % (herhangi bir ana) bağlanmak için izin MySQL bir kullanıcı olması gerekir

Mevcut sorun ilk biridir, ama şu bunu çözmek sonra muhtemelen ikinci bir alırsınız.

I just solved this kind of a problem. What I've learned is:

  1. Eğer my.cnf düzenleyebilir ve [mysqld] altındaki bind-address = your.mysql.server.address ayarlamak gerekir
  2. skip-networking alan açıklama
  3. restart mysqld
  4. Çalışıyorsa kontrol

    mysql -u root -h your.mysql.server.address –p 
    
  5. etki alanı olarak% ile bir kullanıcı (usr ya da bir şey) oluşturmak ve söz konusu veritabanına onu erişim izni.

    mysql> CREATE USER 'usr'@'%' IDENTIFIED BY 'some_pass';
    mysql> GRANT ALL PRIVILEGES ON testDb.* TO 'monty'@'%' WITH GRANT OPTION;
    
  6. port 3306 açık güvenlik duvarı (Eğer eithe reveryone için port açmak için emin olun. iptables kullanmak, ya da sıkı securety iseniz, o zaman sadece istemci adresini izin verebilir)

  7. güvenlik duvarı / iptables yeniden

Şimdi mysql sunucu istemci sunucu php komut dosyası oluşturmak bağlamak gerekir.

Bu PHP, ne yapmak zorunda kullanma uzaktan MySQL Server bağlamak çok kolaydır:

  1. Uzak sunucuya bir MySQL kullanıcı oluşturun.

  2. Kullanıcıya Tam ayrıcalık verin.

  3. PHP kodu kullanarak Server bağlayın (Örnek Aşağıda Verilen)

$link = mysql_connect('your_my_sql_servername or IP Address', 'new_user_which_u_created', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

echo 'Connected successfully';

mysql_select_db('sandsbtob',$link) or die ("could not open db".mysql_error());
// we connect to localhost at port 3306