Masalah:
auth_socket
modul perlu diinstal dan diaktifkan secara manual di root
pengguna jika Anda menulis lebih dari 5.7 perubahan dengan mengimpor MySQL 5.5
lama Anda database dan tabel pengguna.
Solusi:
Untuk pengguna kami ingin tetap menggunakan mysql_native_password
, defaultnya. Untuk root
, kami ingin menggunakan auth_socket
.
install plugin auth_socket soname 'auth_socket.so';
use mysql; update user set plugin='mysql_native_password';
update mysql.user set plugin = 'auth_socket' where User='root';
flush privileges;
Jika Anda melakukannya dengan urutan yang salah (tambahkan root
auth_socket
kolom sebelum menginstal plugin), maka Anda tidak akan dapat memuat mysql karena plugin tidak akan melakukan otentikasi. Untuk memulai dan menjalankan mysql dalam mode aman gunakan ini:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Perbaikan ini dilakukan saat mengimpor database lengkap dan tabel pengguna dari MySQL 5.5
ke MySQL 5.7
, bermigrasi dari Ubuntu 14.04
ke Ubuntu 16.04
.
Alat:
Lihat Plugin:show plugins \g
Tampilkan auth_socket pada pengguna root:select auth_socket from mysql.user where user='root';