Jawaban:
Baca dan laksanakan bab tentang mengatur ulang kata sandi root di Manual Referensi MySQL.
Prosedur ini memulai daemon mysql tanpa izin yang memungkinkan Anda untuk terhubung tanpa memberikan kredensial. Dalam mode ini Anda dapat terhubung secara normal, dan mengatur ulang kata sandi dan hibah. Setelah itu jangan lupa untuk memulai mysql lagi dengan otorisasi yang tepat.
Jika ini adalah kotak Debian / Ubuntu, ada akun setara root khusus yang disebut debian-sys-Maint . Anda dapat membaca kata sandi di /etc/mysql/debian.cnf
Dengan menggunakan kata sandi itu, Anda dapat masuk ke mysql sebagai debian-sys-Maint menggunakan:
mysql --defaults-file=/etc/mysql/debian.cnf mysql
Setelah Anda masuk, lakukan hal berikut:
update user set password=password('<new password>') where user='root';
flush privileges;
quit;
root sekarang dapat diakses menggunakan kata sandi baru Anda:
mysql -uroot -p
Pengguna root saya tidak ada. Di
CREATE USER root@localhost;
saya mendapatkan
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
Solusinya adalah
mysqld_safe --skip-grant-tables &
mysql
INSERT INTO user (Host,User,Password) VALUES ('localhost', 'root', 'changethispassword');
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
Setelah itu saya menambahkan semua privs satu per satu dengan sedikit bantuan dari ini:
mysql mysql -e "SELECT * FROM user WHERE User='root'\G"|grep N
(dan yang ini bisa dan harus lebih otomatis)
Catatan: menemukan jumlah Y yang benar di dalam INSERT
adalah PITA.
Karena langkah-langkah pada Manual Referensi MySQL tidak begitu jelas, saya mencoba menjawab di sini dalam bahasa yang lebih mudah. (jawaban ini relevan untuk pengguna MacBook OSX):
my.cnf
,. (Bagi saya itu ditempatkan @ /Applications/XAMPP/xamppfiles/etc
. Anda hanya dapat mencari jika Anda tidak dapat menemukannya).my.cnf
file dalam editor teks apa pun. "skip-grant-tables"
(tanpa tanda kutip) di akhir [mysqld]
bagian dan simpan file. skip-grant-tables
opsi. Terminal
dan menjalankan mysql
perintah mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit