Další informace o chybě MySQL/MariaDB „Chyba při navazování připojení k databázi“ nebo „Nelze se připojit k databázovému serveru“ a jak tuto chybu opravit.
Pokud se MySQL zastaví, skripty a webové stránky se nebudou moci připojit. Na serveru Linux můžete zjistit, zda běží MySQL, pomocí příkazu:
Vrátí se seznam běžících procesů, které mají v názvu "mysql". Seznam bude obsahovat příkaz, který jste právě spustili. Pokud je spuštěna MySQL, bude také zahrnovat proces MySQL.
Pokud MySQL/MariaDB neběží, uvidíte pouze svůj příkaz grep.
Spusťte MySQL/MariaDB příkazem:
CentOS 7 (MariaDB): systemctl start mariadbUbuntu a Debian (MySQL): service mysql start nebo /etc/init.d/mysqld startUjistěte se, že používáte správné uživatelské jméno a heslo pro uživatele MySQL. Ty se liší od vašich přihlašovacích údajů IONOS. Požadované uživatelské jméno a heslo se nastaví při vytváření databáze MySQL.
Budete také muset nastavit správný název hostitele.
Jakmile víte, že MySQL/MariaDB běží, dalším krokem je připojení z příkazového řádku pomocí příkazu:
Měli byste být vyzváni k zadání hesla uživatele root MySQL. Ve výchozím nastavení je heslo pro uživatele root MySQL stejné jako původní heslo uživatele root pro váš server.
Poznámka
Pokud změníte heslo pro uživatele root serveru, nezmění se tím heslo pro uživatele root MySQL.
Po zadání hesla byste se měli ocitnout v klientovi MySQL/MariaDB, který by měl vypadat nějak takto:
Vítejte v monitoru MariaDB. Příkazy končí na ; nebo \g.Vaše ID připojení MariaDB je 4172Verze serveru: 5.5.44-MariaDB MariaDB ServerCopyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab a další. Zadejte 'help;' nebo '\h' pro pomoc. Zadejte '\c' pro vymazání aktuálního vstupního příkazu.MariaDB [(none)]>Pokud máte potíže s navázáním připojení MySQL s jiným uživatelským jménem a heslem, proveďte tento test podruhé a nahraďte root příkazem jiné uživatelské jméno.
Pokud se místo přihlášení ke klientovi zobrazí tato chyba:
CHYBA 1045 (28000): Přístup odepřen pro uživatele 'root'@'localhost' (s použitím hesla: YES)Nezadáváte správné heslo pro uživatelské jméno. Ověřte správnost pravopisu uživatelského jména i hesla. Všimněte si, že v uživatelském jménu se rozlišují velká a malá písmena - Root není totéž co root.
Prodávejte na svém stávajícím webu nebo blogu
Vyplatí se zkontrolovat, zda používáte správný pravopis a velká písmena pro uživatelské jméno. Chcete-li vypsat všechny uživatele MySQL/MariaDB, přihlaste se ke klientovi příkazového řádku jako root pomocí příkazu:
Další seznam všech uživatelů MySQL a jejich hostitelů pomocí příkazu:
vyberte hostitele, uživatele z mysql.user;To vám ukáže uživatelské jméno přesně tak, jak bylo vytvořeno, a také umístění (hostitel), ze kterého se smí připojit.
Poznámka
Při používání tohoto příkazu buďte opatrní, zejména při resetování hesla uživatele root MySQL.
Chcete-li resetovat heslo uživatele MySQL/MariaDB, přihlaste se ke klientovi příkazového řádku jako root pomocí příkazu:
Poté resetujte heslo uživatele příkazem:
update mysql.user set password = MD5('(new_password)') where user = "jdoe";Nahraďte nové_heslo novým heslem a jdoe uživatelským jménem.
Pokud jste si jisti, že uživatelské jméno a heslo jsou správné, problém může být v tom, že uživatel nemá správná oprávnění (udělování) pro danou databázi.
Chcete-li zkontrolovat oprávnění (udělení) uživatele, přihlaste se ke klientovi příkazového řádku jako uživatel root pomocí příkazu:
Dále zobrazte uživatelská oprávnění pomocí příkazu:
zobrazit granty pro 'jdoe'@'localhost';Nahraďte jdoe uživatelským jménem. V případě potřeby změňte localhost na název hostitele.
Měli byste získat seznam oprávnění, která má uživatel pro příslušnou databázi. Mělo by to vypadat nějak takto:
+-------------------------------------------------- -------------------------------------------------- ---------------------+| GRANT VYUŽITÍ NA *.* NA 'jdoe'@'localhost' IDENTIFIKOVANÉ HESLEM '*CD2BAEA88178935C438649F12126752DB1B24D7B' || UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA `example_database`.* TOMU 'jdoe'@'localhost'|+-------------------------------- -------------------------------------------------- --------------------------------------+Všimněte si, že tento uživatel má všechna oprávnění na databázi s názvem example_database.
Pokud uživateli nebyla udělena oprávnění k žádné databázi, uvidíte pouze něco takového:
+------------------------------------------------- -------------------------------------------------- ----------+| Granty pro jdoe@localhost |+------------------------------------------- -------------------------------------------------- -----------------+| GRANT POUŽITÍ NA *.* NA 'jdoe'@'localhost' IDENTIFIKOVANÉ HESLEM '*00E247AC5F9AF26AE0194B41E1E769DEE1429A29' |+------------------------- -------------------------------------------------- --------------------------------+1 řádek v sadě (0,00 s)Upozorňujeme, že tento uživatel má pouze Oprávnění USAGE pro "." a nemá oprávnění pro žádné databáze.
Pomocí jednoduchého skriptu otestujte, zda vaše databáze připojení přijme. Vytvořte soubor s názvem database-connection-test.php s následujícím obsahem:
Nahraďte slovo heslo heslem uživatele root MySQL.
Umístěte tento soubor do svého webového adresáře a poté jej navštivte v prohlížeči. Pokud se můžete připojit pomocí uživatelského jména a hesla root MySQL, pak víte, že vaše databáze přijímá připojení.
Pokud máte potíže s navázáním připojení k MySQL s jiným uživatelským jménem a heslem, proveďte tento test podruhé a nahraďte root jiným uživatelským jménem a heslem heslem.
Poznámka
Po dokončení testů tento soubor smažte.
Pokud je skript hostován na stejném serveru jako databáze MySQL (např. váš cloudový server Linux), název hostitele je ve výchozím nastavení localhost.
Chcete-li znovu zkontrolovat název hostitele MySQL, přihlaste se ke klientovi příkazového řádku jako root pomocí příkazu:
Dále zobrazte název hostitele pomocí příkazu:
ZOBRAZIT PROMĚNNÉ WHERE Název_proměnné = 'název hostitele';Pokud váš skript přistupuje ke vzdálené databázi, název hostitele bude URL této databáze.
PREV: Apache ukazuje, že to funguje, co je špatně s mým virtuálním hostitelem ...
NEXT: Nastavení webu a virtuálních hostitelů Apache v Ubuntu - Orangeable