Tôi có một giải pháp!
Khi đặt lại mật khẩu gốc ở bước 2), cũng thay đổi plugin xác thực thành mysql_native_password
:
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Điều này cho phép tôi đăng nhập thành công!
Giải pháp toàn mã
1. chạy các lệnh bash
1. trước tiên, hãy chạy các lệnh bash này
sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
2. sau đó chạy lệnh mysql => copy paste cái này vào cli thủ công
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
3. chạy nhiều lệnh bash hơn
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p
4. Sự cố ổ cắm (từ nhận xét của bạn)
Khi bạn thấy một ổ cắm lỗi, một cộng đồng đưa ra 2 giải pháp khả thi:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(cảm ơn @Cerin)
Hoặc
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(cảm ơn @Peter Dvukhrechensky)
Đường mù và các lỗi cạnh có thể xảy ra
Sử dụng 127.0.0.1 thay vì localhost
mysql -uroot # "-hlocalhost" is default
Có thể dẫn đến "thiếu tệp" hoặc lỗi slt.
mysql -uroot -h127.0.0.1
Hoạt động tốt hơn.
Bỏ qua vấn đề ổ cắm
Tôi đã tìm nhiều cách để tạo mysqld.sock
tệp, thay đổi quyền truy cập hoặc liên kết biểu tượng nó. Rốt cuộc thì đó không phải là vấn đề.
Bỏ qua my.cnf
tệp
Vấn đề cũng không có ở đó. Nếu bạn không chắc chắn, điều này có thể giúp bạn .