sql >> Databáze >  >> RDS >> Mysql

Proč se můj php kód nepřipojuje k mé vzdálené databázi MySql?

První věc, kterou bych zkontroloval (pokud jste tak neučinili), je, že se ve skutečnosti můžete připojit k databázi z počítače, na kterém běží váš PHP skript. Tím se vyloučí problém se sítí nebo firewallem.

První věcí by bylo pingnout na server. V příkazovém řádku systému DOS spusťte:

ping servername

Kde "servername" je stejný řetězec, který jste vložili do skriptu PHP výše. Pokud toto neodpoví řetězcem podobným níže uvedenému, konkrétně první slovo není "Odpovědět":

Reply from 192.168.239.132: bytes=32 time=101ms TTL=124

To znamená, že s největší pravděpodobností neexistuje žádná konektivita mezi počítačem, na kterém běží PHP skript, a mysql serverem. Poté bych zkontroloval, zda jsou server a počítač správně připojeny k síti, zda je server v provozu a zda ve vašem počítači nebo na serveru není firewall, na kterém běží PHP skript.

Nyní, pokud váš test výše ukazuje "Odpovědět" na ping, můžete vyzkoušet, zda se můžete připojit ke službě Mysql z vašeho php serveru. K tomu můžete použít Mysql workbench (http://dev.mysql.com/downloads/workbench/ ) a odtud vytvořte spojení s parametry databáze, které dáváte svému skriptu. Pokud se nemůžete připojit k pracovní ploše Mysql, možná budete muset zakázat bránu firewall na serveru Mysql, bránu firewall v počítači s PHP nebo povolit serveru Mysql, aby přijímal vzdálená připojení k databázi a uživatelské jméno, které používáte ve skriptu PHP ( některé distribuce server Mysql jsou nainstalovány tak, aby z důvodu bezpečnosti přijímaly pouze místní připojení).

Pokud je problém s oprávněním na serveru (uživatel se může připojit pouze lokálně, ale ne například ze vzdáleného počítače), můžete oprávnění povolit na serveru Mysql příkazem GRANT:http://dev.mysql.com/doc/refman/5.1/en/grant.html



  1. Příklady WEEK() – MySQL

  2. Jak povolit/zakázat přístup k datům na serveru SQL (příklad T-SQL)

  3. Jak psát složité dotazy v SQL

  4. PostgreSQL EXPLAIN – Jaké jsou náklady na dotaz?