GNU/Linux >> Znalost Linux >  >> Cent OS

Jak opravit:mysqlnd se nemůže připojit k MySQL 4.1+ pomocí staré nezabezpečené autentizace

Po upgradu serveru PHP z PHP 5.3.3 na PHP 5.6.x při práci se serverem MySQL 5.1.x na obyčejném 64bitovém boxu CentOS 6.x se u několika nových webových aplikací objevila tato chyba připojení mysqlnd: mysqlnd nelze připojte se k MySQL 4.1+ pomocí staré nezabezpečené autentizace

Toto byla úplná a přesná chyba:

mysqlnd se nemůže připojit k MySQL 4.1+ pomocí starého nezabezpečeného ověřování. Pro resetování hesla použijte prosím administrační nástroj pomocí příkazu SET PASSWORD =PASSWORD(‘vaše_existující_heslo‘). Tím se do mysql.user uloží nová a bezpečnější hodnota hash. Pokud je tento uživatel používán v jiných skriptech spouštěných PHP 5.2 nebo staršími, možná budete muset odstranit příznak old-passwords z vašeho souboru my.cnf

To se děje proto, že nový php klient mysqlnd odmítá pracovat se starými hesly z MySQL. Takže i když máte old_passwords=1, nebude to fungovat pro tyto nové webové aplikace, které vyžadují silnější zabezpečení heslem.

Jak mohu opravit chybu, že se mysqlnd nemůže připojit k MySQL 4.1+ pomocí staré nezabezpečené autentizace?

Tuto chybu lze snadno opravit, pokud budete postupovat podle následujících kroků:

Upravit hlavní konfigurační soubor MYSQL:

nano -w /etc/my.cnf

Změna:

old_passwords=1

do

old_passwords=0

Použít změny:

service mysqld restart

Připojte se ke konzoli MySQL jako root:

mysql -u root -p

Nyní resetujte uživatelské heslo, abyste mohli používat nový hash:

SET PASSWORD FOR 'mysqluser'@'localhost'=PASSWORD('passwordhere');
flush privileges;

Nahraďte „mysqluser“ a „passwordhere“ svým skutečným uživatelským jménem a heslem.

Nyní se vraťte do /etc/my.cnf a vraťte dříve provedené změny, nastavte:

old_password=1

Chcete-li použít změny, restartujte MySQL:

service mysqld restart

Vše hotovo, nyní by váš uživatel měl používat silnější hash hesla MySQL.
To lze ověřit z konzole MySQL pomocí tohoto příkazu:

mysql> SELECT user, Length(Password) FROM mysql.user;
+------------------+------------------+
| user | Length(Password) |
+------------------+------------------+
| root | 16 |
| forum_user | 16 |
| user2 | 41 |
| lorex | 41 |
| m3user | 16 |

Pokud vidíte „41“, pak daný uživatel používá nový hash a „16“ znamená, že používá starý hash.

Vše hotovo, v tuto chvíli se vaše chyba mysqlnd nemůže připojit k MySQL 4.1+ pomocí staré nezabezpečené autentizace by měla být opravena a měli byste být schopni normálně pracovat se svými webovými aplikacemi.

Jak opravit:mysqlnd se nemůže připojit k MySQL 4.1+ pomocí staré nezabezpečené autentizace byla naposledy upravena:7. února 2017 Esteban Borges
Cent OS
  1. Jak nastavit nastavení MySQL Master-Slave pomocí uzlů CentOS 7?

  2. Jak vytvořit databázi v MySQL pomocí příkazového řádku

  3. Jak zálohovat a obnovit databázi MySQL pomocí příkazového řádku

  1. Jak se vzdáleně připojit k MySQL

  2. Jak připojit vzdálený hostitel pomocí příkazu ssh

  3. Jak vytvořit databázi MySQL pomocí cPanel API

  1. Jak zkontrolovat verzi MySQL v Linuxu

  2. Jak se připojit k serveru pomocí funkce BMC Remote Console

  3. Jak se připojit k MySQL pomocí PHP