EverKB

Knowledge Base Ever

แก้ไขปัญหา ERROR 1698 (28000): Access denied for user 'root'@'localhost'

2019-12-18 13:21:50

แท็ก: MySQL,MariaDB,mysql_native_password,caching_sha2_password, ปฏิเสธการเข้าถึงสำหรับผู้ใช้ 'root' @ 'localhost'

เป็นเวลานาน MySQL ได้สนับสนุนปลั๊กอินการรับรองความถูกต้องที่แตกต่างกัน วิธีการอนุญาตรหัสผ่านดั้งเดิมคือการหาค่าแฮชของรหัสผ่านด้วยอัลกอริทึมเฉพาะและเก็บไว้ในตาราง mysql.user แต่นี่ไม่ใช่วิธีการตรวจสอบสิทธิ์เท่านั้น

เมื่อคุณล็อกอินเข้าสู่เซิร์ฟเวอร์ด้วยชื่อผู้ใช้และรหัสผ่านที่ถูกต้องและได้รับอนุญาตอย่างถูกต้องบริการ MySQL จะแจ้งให้ทราบว่าบริการถูกปฏิเสธคุณสามารถพิจารณาได้ว่าสิ่งนี้อาจเกิดจากวิธีการอนุญาตรหัสผ่านที่แตกต่างกัน

1. การอนุญาต Unix Socket อนุญาตให้ผู้ใช้เข้าสู่ระบบ mysql ด้วยชื่อผู้ใช้และรหัสผ่านท้องถิ่นข้อดีของวิธีการอนุญาตนี้คือไม่จำเป็นต้องรักษารหัสผ่านการอนุญาตแยกต่างหาก สิ่งนี้เป็นไปได้เนื่องจากใช้โหมดเนทิฟซ็อกเก็ต Unix
2. ปลั๊กอินการอนุญาต PAM อนุญาตให้ติดตั้งเช่น LDAP และระบบแบ็คเอนด์อื่น ๆ เพื่ออนุญาตวิธีนี้เหมาะสำหรับการรวมเข้ากับระบบที่มีอยู่ขององค์กร
3. เวอร์ชันล่าสุดของ MySQL8 ใช้ cache_sha2_password เพื่ออนุญาตซึ่งในทางทฤษฎีมีความปลอดภัยมากกว่า แน่นอนว่าการอัปเดตนี้จะดีกว่า แต่จะต้องเสียค่าใช้จ่ายในการอัปเกรดไดรเวอร์ไคลเอ็นต์ไม่เช่นนั้นคุณจะต้องเปลี่ยนกลับไปใช้วิธีใช้สิทธิ์เก่า แต่ใช้งานร่วมกันได้
นี่คือวิธีการแก้ปัญหา: เข้าสู่ mysql จากบรรทัดคำสั่ง
sudo mysql -u root -p
สามารถป้อนคำสั่งต่าง ๆ ได้แล้ว แปลงฐานข้อมูลปัจจุบันเป็น mysql
USE mysql;
รันคำสั่งต่อไปนี้เพื่ออัพเดตปลั๊กอินการให้สิทธิ และอัปเดตการอนุญาตทันทีเพื่อให้มีประสิทธิภาพ
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;
รีสตาร์ท mysql
service mysql restart
หากคุณเข้าสู่ mysql จากบรรทัดคำสั่งเชลล์ให้ใช้ตัวเลือก --default-auth เพื่อระบุวิธีการตรวจสอบสิทธิ์ บางครั้งคุณไม่สามารถเข้าสู่ระบบได้เนื่องจากวิธีการตรวจสอบสิทธิ์เริ่มต้นไม่ถูกต้อง
shell> mysql --default-auth=mysql_native_password ...

แท็ก

CentOS7 CentOS PHP Linux Python3 Python MySQL MariaDB YUM JavaScript CSS Redis MySQL8 caching_sha2_password HTML mysql_native_password PHP7 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 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

บทความล่าสุด