Vấn đề:
auth_socket
mô-đun cần được cài đặt và kích hoạt theo cách thủ công trên root
người dùng nếu bạn viết trên 5.7 thay đổi bằng cách nhập MySQL 5.5
cũ của bạn cơ sở dữ liệu và bảng người dùng.
Giải pháp:
Đối với người dùng, chúng tôi muốn vẫn sử dụng mysql_native_password
, mặc định. Đối với root
, chúng tôi muốn sử dụng 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;
Nếu bạn làm sai thứ tự (thêm root
của auth_socket
trước khi cài đặt plugin), thì bạn sẽ không thể tải mysql vì plugin sẽ không thực hiện xác thực. Để bắt đầu và chạy mysql ở chế độ an toàn, hãy sử dụng cái này:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Các bản sửa lỗi này được thực hiện khi nhập toàn bộ cơ sở dữ liệu và bảng người dùng từ MySQL 5.5
sang MySQL 5.7
, di chuyển từ Ubuntu 14.04
sang Ubuntu 16.04
.
Công cụ:
Xem Phần bổ sung:show plugins \g
Hiển thị auth_socket trên người dùng root:select auth_socket from mysql.user where user='root';