Biarkan 2 baris berikut gagal jika pengguna ada dan blahblah
tidak masalah untuk saat ini:
create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';
Lakukan hibah Anda:
grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';
Ubah kata sandi menjadi sesuatu yang akan Anda ingat:
set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');
Lihat berapa banyak pengguna root yang Anda miliki. Pengguna sebenarnya adalah kombo pengguna/host. Kata sandi akan muncul dalam bentuk hash:
select user,host,password from mysql.user where user='root';
atau
select user,host,authentication_string from mysql.user where user='root';
Yang ke-2 di atas adalah untuk MySQL 5.7
Jika Anda mendapatkan lebih dari dua pengguna di atas, lepaskan yang lain seperti:
drop user 'root'@'%'; -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';
Masih punya 2 saja? Saya harap begitu. Gunakan stmts pilih di atas untuk memeriksa.
Jangan sambungkan aplikasi pengguna menggunakan root. root hanya untuk pemeliharaan. Tidak masalah apakah itu kode sisi server, atau jika admin menjalankannya. Kode yang tidak diamankan dan/atau disuntik dengan pernyataan berbahaya dapat dijalankan sebagai root. Jadi, itulah alasannya.