ayrı ip erişirken mysql_connect () localhost çalışıyor ama değil

4 Cevap php

Benim için bir lamba yığın kurulum almak benim Üniversitesi'nin Sistem Yöneticileri ile çalışıyorum. Ben üzerinde çalışıyorum ve bazı sorunlar yaşıyorum çeşitli internet sitelerinden bu sunucuya erişmek gerekir.

Yani bir şey tutmak için açıktır:

LAMP Sunucusu URL = http s :/ / mysqlserver.edu

Okul URL = http s :/ / schoolsite.edu

Ben LAMP Server mysql_connect () çalıştırdığınızda ince bağlar:

mysql_connect ('localhost', 'kullanıcı', 'şifre'); Works great!

Ben Okul URL mysql_connect () çalıştırdığınızda Ancak, ben bağlanamıyorum:

mysql_connect ('mysqlserver.edu', 'kullanıcı', 'şifre');

Warning: mysql_connect(): Unknown MySQL server host 'mysqlserver.edu' (1) in /home/content/x/x/x/xxx/html/testconnect.php on line 3 Unknown MySQL server host 'mysqlserver.edu' (1)

Dış sitelerde benim PHP komut vermek için ne yapmam Sistem Yöneticisi sormak gerekiyor MySQL sunucusuna erişmek?

SSL sorunları karmaşık mı?

Seni sağlamak mümkün olabilir herhangi bir fikir takdir.

4 Cevap

Bilinmeyen MySQL sunucu barındırma muhtemelen makine hostname mysqlserver.edu çözümlemek anlamına gelir, IP adresi üzerinden bağlantı denediniz mi?

Eğer adını çözümlemek emin olun sonra, üç daha fazla engelleri aşmak zorundayız:

  • diğerleri gibi güvenlik duvarları göstermiştir,
  • Uzak bağlantılara izin vardır ve MySQL sunucusu yapılandırma
  • uzaktan bağlanmak mümkün bir kullanıcı kurulum için vardır.

MySQL kullanıcı ondan erişim bilgisayara bağlıdır. 'Root @ localhost' root@192.168.0.156 'olarak aynı kök değildir. Yani senin erişmek için gidiyoruz bilgisayardan kullanıcı eklemek zorundayız. Yani php script sunulan bilgisayar '192 .168.156 diyelim MySQL sunucusuna user@192.168.0.156 'bir kullanıcı eklemek gerekir' ve veritabanına erişmek için bu kullanıcı için ayrıcalık ayarlamak unutmayın gerekli.

Umarım bu yardımcı olur

Bu bir kamu WAN üzerinden bir MySQL bağlantısı yapmak için nadirdir. Bir LAN hop veya iki almak için yaygın ama genellikle güvenlik nedenleriyle bir güvenlik duvarı geçemez. Bu port 3306 için gelen TCP bağlantısı güvenlik duvarı tarafından engellenmiş veya mysqlserver.edu olan yerel LAN üzerine geçidi ediliyor, bir.

Bunun için kurallı test:

$ telnet mysqlserver.edu 3306

Ben bu işe olmayacağını tahmin edebilirsiniz. (. "Work" o "Connected ..." bildiriyor ve bazı anlamsız çıkışlar anlamına gelir) birkaç seçenek var:

  • en azından yakın yerel veritabanı çalıştırmak veya. Bu MySQL sürece Yani, bu bir lamba yığın değil. :-) Bu, yaklaşık herkes ne olduğunu.
  • güvenlik duvarı üzerinden ve port 3306 almak için bir tür tünel / VPN çözümü kullanmak
  • güvenlik duvarında 3306 açmak. Muhtemelen bu işbirliğini almazsınız.

"Skip-name-gidermek" mı sizin my.cnf etkin seçeneği?