Saya sedang mengerjakan Xubuntu 15.04. Saya sudah menginstal MariaDB-Server pada berbagai sistem dan selalu dimintai kata sandi root selama instalasi. Namun, kali ini, saya tidak ingat dimintai kata sandi. Ketika saya mencoba masuk tanpa kata sandi (atau kata sandi kosong), saya mendapatkan Access denied for user 'root'@'localhost'
kesalahan. Saya mencoba mencopot paket sepenuhnya
sudo apt-get remove mariadb-server
sudo apt-get purge mariadb-server
Ketika saya menginstal ulang, saya masih belum mendapatkan kata sandi root.
Saya mencoba mysqld --skip-grant-tables
pendekatan dari
mysql cara memperbaiki Access ditolak untuk pengguna 'root' @ 'localhost' . Saya dapat memodifikasi kata sandi untuk pengguna root di database mysql - setidaknya nilai perubahan hash - tapi saya masih tidak bisa masuk dengan kata sandi baru setelah restart server mysql. Saya tetap mengalami masalah yang sama.
Debian-sys-Maint pengguna tidak ada. Jadi, saya tidak bisa menggunakannya untuk memperbaiki apa pun.
Ada ide apa lagi yang bisa saya coba?
Jawaban:
Anda perlu mengatur ulang kata sandi. jadi untuk itu
sumber
plugin: auth_socket
diaktifkan, secara default. Dengan kata lain, tidak perlu menggunakan--skip-grant-tables
seperti yang diperlukan di versi MySQL sebelumnya. (Juga, secara teknis, ukuran ini bukan "mengatur ulang kata sandi"; ini menonaktifkan plugin.)Gagasan dengan pengaturan baru adalah Anda tidak boleh menggunakan kata sandi sama sekali. Lihat UNIX_SOCKET Authentication Plugin untuk detailnya.
Apa yang sangat relevan adalah isi dari /usr/share/doc/mariadb-server-10.0/README.Debian.gz di Ubuntu 16.04:
Jadi, jika Anda menonaktifkan plug-in untuk root dan mengatur kata sandi, tugas cron harian akan terputus karena menganggapnya akan login sebagai root tanpa kata sandi, tetapi dengan plug-in.
Kemudian dikatakan:
Jadi sepertinya kata sandi seharusnya tidak lagi digunakan oleh aplikasi.
sumber
"So if you disable that plug-in for root and set a password, the daily cron job will break as it's assuming it will log in as root without a password..."
Implikasi yang tidak jelas dari UNIX_SOCKET Authentication Plugin sedang diaktifkan (yang sekarang menjadi default) adalah kemampuan seseorang untuk mengautentikasi sebagai pengguna basis data root dengan kata sandi dinonaktifkan. Tidak ada tempat di mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin adalah batasan yang disebutkan ini. Dengan demikian, tidak mungkin untuk login sebagai root misalnya melalui SSH.Saya memecahkan masalah berikut jawaban dari posting ini:
Tidak dapat mengatur ulang kata sandi root MySQL (MariaDB)
Kita harus mengubah bidang plugin mysql.user untuk semua root menjadi string kosong.
sumber
Saya melakukannya dengan menjalankan perintah ini, tepat setelah instalasi:
Pada langkah pertama, kata sandi kosong, jadi cukup tekan Enter.
sumber
Saya memiliki masalah yang sama pada pi raapberry dengan peregangan. Solusi saya adalah membuat pengguna baru dengan semua hak istimewa dengan melakukan hal berikut:
Sekarang saya bisa masuk dan kami pengguna "admin" sebagai superuser.
Saya harap ini akan membantu seseorang.
sumber
Cukup gunakan
sudo mysql -u root
- itu sajaDetail: Versi yang lebih baru mengautentikasi ke mysql menggunakan otentikasi sistem. Jadi jika Anda bisa sudo ke OS, itu mengasumsikan Anda db root juga. Anda dapat mengkonfirmasi ini dengan mengeluarkan
sudo mysql -u root -e "USE mysql; SELECT User, Host, plugin FROM mysql.user;"
. Anda akan melihat sesuatu seperti ini (mungkin denganauth_socket
di distro lain)sumber