Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat MySQL 1698 (Akses Ditolak) dan Bagaimana Saya Boleh Membetulkannya?
Mengendalikan Ralat 1698 Semasa Log Masuk MySQL
Pengguna mungkin menghadapi ERROR 1698 (28000): Akses ditolak untuk 'root'@ pengguna 'localhost' apabila cuba log masuk ke pangkalan data MySQL dengan pengguna root. Ralat ini sering ditemui pada sistem seperti Ubuntu, di mana MySQL menggunakan pemalam Unix auth_socket untuk pengesahan secara lalai.
Latar Belakang: Pemalam auth_socket bergantung pada kelayakan pengguna sistem untuk pengesahan. Dengan menanyakan jadual mysql.user, anda boleh mengesahkan bahawa pengguna root berdaftar dengan pemalam ini:
SELECT User, Host, plugin FROM mysql.user;
Penyelesaian Kemungkinan:
Pilihan 1 : Konfigurasikan Pengguna root untuk Menggunakan Pemalam mysql_native_password
Kaedah ini melibatkan penetapan pengguna root untuk menggunakan pemalam mysql_native_password yang lebih tradisional:
UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; sudo service mysql restart
Pilihan 2: Cipta Pengguna Pangkalan Data Baharu (Disyorkan)
Pendekatan alternatif ialah mencipta pengguna pangkalan data baharu menggunakan nama pengguna sistem anda. Ini menyediakan pilihan yang lebih terurus dan selamat:
CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD'; GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost'; UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER'; FLUSH PRIVILEGES; sudo service mysql restart
Perhatikan bahawa dengan Pilihan 2, anda akan menyambung ke MySQL menggunakan nama pengguna sistem anda:
mysql -u YOUR_SYSTEM_USER
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 1698 (Akses Ditolak) dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!