Saya baru saja menginstal MySQL 5.5 dan setelah menginstal saya diminta untuk mengatur kata sandi root dengan menjalankan dua perintah:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h linux-opxd password 'new-password'
atau
/usr/bin/mysql_secure_installation
Saya menjalankan perintah pertama - OK. Saya menjalankan perintah kedua kali ini dengan kesalahan:
kesalahan: 'Akses ditolak untuk' root '@' localhost 'pengguna (menggunakan kata sandi: NO)'
Saya menjalankan kembali yang pertama (untuk memeriksa) - kesalahan seperti di atas.
Jadi, saya mengeksekusi mysql_secure_installation
. Semuanya berjalan baik-baik saja dan kata sandi yang diakui. Jadi saya menjalankan dua perintah pertama lagi - dan kesalahan lagi.
Sebagai cek lain:
mysql --user=root
Kesalahan yang sama seperti di atas.
Saya mencoba mengatur ulang kata sandi dengan otentikasi mysql, juga saya mencoba /usr/bin/mysql_upgrade -u root -p
- masih kesalahan saat mencoba meluncurkan konsol mysql sebagai root.
Jadi akhirnya saya mematikan autentikasi, terhubung ke konsol dan menjalankan ini:
SELECT user();
Output - root@
. Jika saya terhubung seperti ini:
mysql --user='root@localhost'
Saya akan mendapatkan root@localhost@
.
Jadi untuk saat ini tampaknya itu bukan masalah dengan hak istimewa, atau kurangnya kata sandi atau hal seperti ini, tetapi tidak mengenali pengguna yang diberikan pada baris perintah - mysql menambahkan @
di akhir dan ini tampaknya menjadi masalah (setidaknya untuk mataku).
Pertanyaannya adalah: bagaimana cara membuat MySQL mengenali pengguna yang diberikan?