EverKB

Knowledge Base Ever

Vyřešte problém ERROR 1698 (28000): Access denied for user 'root'@'localhost'

2019-12-18 13:21:50

Štítek: MySQL,MariaDB,mysql_native_password,caching_sha2_password, Přístup byl odepřen uživateli root '@' localhost '

MySQL dlouhodobě podporuje různé autentizační pluginy. Původní metoda autorizace hesla je najít hašovací hodnotu hesla se specifickým algoritmem a uložit ji do tabulky mysql.user, ale není to jediná metoda autentizace.

Když se přihlásíte na server pomocí správného uživatele a hesla a jste byli správně autorizováni, služba MySQL také vyzve, aby byla služba odmítnuta, což může být způsobeno různými způsoby autorizace hesla.

1. Autorizace Unix Socket umožňuje uživatelům přihlásit se do mysql pomocí lokálního uživatelského jména a hesla. Výhodou této metody autorizace je, že není třeba udržovat autorizační heslo samostatně. To je možné, protože se používá nativní režim Unix Socket.
2. PAM autorizační plug-in umožňuje instalaci, jako je LDAP a další back-end systémy k autorizaci, tato metoda je vhodná pro integraci do stávajícího systému organizace.
3. Nejnovější verze MySQL8 používá k autorizaci cache_sha2_password, což je teoreticky bezpečnější. Tato aktualizace bude samozřejmě lepší, ale za cenu aktualizace ovladače klienta, jinak budete muset přepnout zpět na starou, ale kompatibilní metodu licencování.
Zde je řešení: Přihlaste se k mysql z příkazového řádku
sudo mysql -u root -p
Nyní lze zadat různé příkazy. Převést aktuální databázi na mysql.
USE mysql;
Spusťte následující příkaz k aktualizaci autorizačního pluginu. A okamžitě aktualizujte oprávnění, aby bylo účinné.
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;
Restartujte mysql
service mysql restart
Pokud se přihlásíte do mysql z příkazového řádku shellu, použijte volbu --default-auth k určení metody ověřování autorizace. Někdy se nemůžete přihlásit, protože výchozí metoda ověření autorizace je nesprávná.
shell> mysql --default-auth=mysql_native_password ...

Štítek

CentOS7 CentOS PHP Linux Python3 Python MySQL MariaDB YUM JavaScript CSS Redis MySQL8 caching_sha2_password HTML mysql_native_password PHP7 horiz-align node.js ShadowsocksR vertical-align CURLFille exec mb_substr PyCharm SUBDATE BarManager IntelliJIDEA PEAR SOCKS5 Proxy Server WebStorm date add find remi Tag Chrome jQuery PHP5.5 src Apache du hide nginx Shadowsocks-Python V2Ray cURL eth0 MariaDB10.4 PostgreSQL sub folder availability Install MongoDB pdo_sqlsrv SOCKS5 Web Server date File Upload mssql-tools register_shutdown_function Symfony JetBrain php-fpm sqlsrv Zend Framework ADDDATE DevExpress height network interface Shadowsocks-Libev unixODBC-devel error_get_last Port 80 string Aura INDENTIFIED BY password policy requirements SOCKS Web Development data Fedora Media Writer msodbcsql Redis5 SVN jemalloc SQLAlchemy absolute Deepin FuelPHP mysqlclient Shadowsocks toggle convert margin PHPUnit Framework ss5.passwd at-symbol Error Control Operator IIS password SOCKET vps daemon process Fatal Errors MongoDB4 sudoers center Phalcon SQL Server 2017 WiFi .htaccess DATE_SUB frequency conflict set_error_handler TestCase Compiling PHP PHPUnit ss5.conf apr Elasticsearch7.3 HTTP particles.js Slim Vincent Garreau daemon Failed to build these modules: _uuid MongoDB Sudo ip command pg_bha.conf SQL Server width DATE_ADD Frameworks MySQL-python scrollbar Tcp BBR Compiling Apache libpython3.7m.so.1.0 PHPStorm ss5-3.8.9 Apache2.4 Elasticsearch NodeJs show VIM CURLOPT_POSTFIELDS Failed to build these modules: _ctypes Minimal ISO substr Bluetooth INTERVAL PECL SQL Date Funcitons Wi-Fi date sub font-size root Tag Cloud CodeIgniter Laravel ss5 apache httpd dual network interfaces