Giả sử vào một ngày đẹp trời, bạn quên mất root passwd của mysql trên Linux. Bạn sẽ làm gì đây ?
Version mysql mình đang dùng: 5.5.24
Bạn có hai cách để xử lý:
Cách thứ nhất khởi động mysql bằng mysql_safe.
Cách thứ hai, khởi động mysql bằng mysqld nhưng kèm theo tham số --skip-grant-tables.
Mình sẽ trình bày từng cách một. Với cả hai cách, bạn đều phải tắt mysql service đi:
sudo service mysql stop
hoặc một cách thô bạo hơn, bạn có thể kill mysql service
sudo kill -9 /var/run/mysqld/mysqld.pid
Khi mysql của bạn đang hoạt động, nó sẽ tự động sinh ra một file mysqld.pid chứa pid của mysql process. Bạn có thể tìm thấy pid của mysql trong file này hoặc tìm qua netstat
sudo netstat -apn | grep 3306Trong cách thứ nhất. Bạn cần chuẩn bị một script file có nội dung như sau:
UPDATE mysql.user SET Password=PASSWORD('abc') WHERE User='root';
FLUSH PRIVILEGES;
sudo mysql_safe --init-file=<absolute-path-to-script-file>/mysql-init --log-error=<absolute-path-to-log-error-file>/error_mysql_log
Một file error_mysql_log.err sẽ được sinh ra khi bạn chạy câu lệnh trên.
(*) Rất có thể khi bạn thực hiện câu lệnh mysqld_safe, bạn sẽ gặp lỗi
[ERROR] /usr/sbin/mysqld: File '<absolute-path-to-script-file>/mysql-init' not found (Errcode: 13)
sudo vi /etc/apparmor.d/usr.sbin.mysqld
Bạn bổ sung thêm dòng này vào file trên:
<absolute-path-to-script-file>/mysql-init r
Sau đó, bạn reload lại apparmor:
sudo /etc/init.d/apparmor reload
Sau khi khởi động mysql service bằng mysql_safe. Bạn thực hiện truy cập vào mysql service với mật khẩu mới cho root account.
mysql -u root -p
Trong cách thứ hai. Bạn có thể thực hiện việc reset nhanh chóng hơn.
Sử dụng tham số --skip-grant-tables để cho phép khởi động mysql service mà không cần qua các bước xác thực khi truy cập.
sudo mysqld --skip-grant-tables
Sau đó bạn truy cập vào mysql service mà không cần password. Password không cần nhập.
mysql -u root -p
Sau khi truy cập thành công, bạn sử dụng các command tương tự trong đoạn script mysql-init trong cách một để reset password của root.
Không có nhận xét nào:
Đăng nhận xét