EverKB

Knowledge Base Ever

Løs problemet ERROR 1698 (28000): Access denied for user 'root'@'localhost'

2019-12-18 13:21:50

tag: MySQL,MariaDB,mysql_native_password,caching_sha2_password, Adgang nægtet for bruger 'root' @ 'localhost'

I lang tid har MySQL understøttet forskellige godkendelsesplugins. Den originale metode til godkendelse af adgangskode er at finde hashværdien af ​​adgangskoden med en bestemt algoritme og gemme den i mysql.user-tabellen, men dette er ikke den eneste godkendelsesmetode.

Når du logger på serveren med den rigtige bruger og adgangskode og er blevet autoriseret korrekt, beder MySQL-tjenesten også om, at tjenesten afvises. Du kan overveje, at dette kan være forårsaget af forskellige metoder til godkendelse af adgangskode.

1. Unix Socket-tilladelse giver brugerne mulighed for at logge på mysql med et lokalt brugernavn og adgangskode. Fordelen med denne autorisationsmetode er, at der ikke er behov for at opretholde autorisationsadgangskoden separat. Dette er muligt, fordi Unix Socket indbygget tilstand bruges.
2. PAM-autorisations plug-in tillader installation, såsom LDAP og andre back-end-systemer at godkende, denne metode er velegnet til integration i organisationens eksisterende system.
3. Den seneste version af MySQL8 bruger cache_sha2_password til at autorisere, hvilket teoretisk er mere sikkert. Denne opdatering vil naturligvis være bedre, men på bekostning af opgradering af klientdriveren, ellers bliver du nødt til at skifte tilbage til den gamle, men kompatible licensmetode.
Her er løsningen: log ind på mysql fra kommandolinjen
sudo mysql -u root -p
Forskellige kommandoer kan nu indtastes. Konverter den aktuelle database til mysql.
USE mysql;
Kør følgende kommando for at opdatere autorisationsplugin. Og opdater straks autorisationen for at gøre den effektiv.
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;
Genstart mysql
service mysql restart
Hvis du logger ind på mysql fra shell-kommandolinjen, skal du bruge indstillingen --default-authentic til at specificere autorisationsgodkendelsesmetoden. Undertiden kan du ikke logge på, fordi standard godkendelsesverifikationsmetoden er forkert.
shell> mysql --default-auth=mysql_native_password ...

tag

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