Tidak dapat login ke MySQL sebagai root lagi?

8

Sepertinya saya tidak bisa masuk ke MySQL (sebenarnya MariaDB) sebagai pengguna root lagi di Ubuntu 15.04 (saya memutakhirkan dari 14.04 melalui 14.10)

Saya sudah mencoba mengatur ulang kata sandi.

Apa yang berfungsi, adalah sudo mysql- tetapi saya ingin login sebagai root dari pengguna lain yang menggunakan mysql -uroot -p. Ketika saya membuat pengguna baru dengan hak dan kata sandi penuh, itu berfungsi.

Apakah ada yang berubah?

Alex
sumber
ehm ... "tapi saya ingin login sebagai root" Bagi saya (!) tidak pernah ada alasan untuk ini. Anda dapat mengatur sistem untuk pengguna lain selain root dan melakukan hal yang sama dari pengguna itu jika Anda ingin ;-)
Rinzwind
@Rinzwind Banyak alasan untuk masuk sebagai root di database . Ini satu-satunya cara untuk mengelola pengguna, basis data, dll. Tidak ada mekanisme sudo internal.
Oli
@oli kami menggunakan pengguna lain untuk itu. yaitu. akses dengan "root" hanya mungkin ketika menggunakan "sudo su" untuk mengatur ulang mysql tetapi yang itu tidak memerlukan otentikasi apa pun.
Rinzwind

Jawaban:

6

Jadi, Anda telah beralih dari versi 5.5.44-1ubuntu0.14.04.1ke 10.0.20-0ubuntu0.15.04.1. Kedengarannya lebih menakutkan daripada itu, itulah yang mereka sebut 5.6 untuk beberapa alasan .

Tampaknya versi yang lebih baru dari MariaDB telah menambahkan plugin ke tabel pengguna untuk memaksa otentikasi melalui jalur tetap. Dalam hal ini, rootpengguna database dipaksa melalui satu unix_socketPlugin . Ini juga tampaknya dikenal auth_socketdi beberapa kalangan.

Pokoknya plugin ini membatasi hal-hal sehingga hanya rootpengguna sistem yang dapat login sebagai database root, tanpa kata sandi. Itu pilihan keamanan yang mereka buat.

Anda dapat mengembalikan ini dengan mengosongkan bidang plugin untuk rootpengguna :

shell$ sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;

Kata sandi yang ditentukan akan berfungsi setelah ini. Saya tidak yakin bagaimana ini disarankan.

Oli
sumber
Setelah ini, login via sudo mysql -u roottidak mungkin lagi. Itu artinya, /etc/mysql/debian.confharus juga disesuaikan.
Alex
4
Tidak bekerja untuk saya. Setelah ini saya bahkan tidak bisa login dengan 'sudo mysql -u root' lagi.
MrSmith42