Điều gì xảy ra nếu bạn quên mật khẩu root MySQL của mình?
lựa chọn 1. Đặt lại mật khẩu root của MySQL bằng tùy chọn –init-file
Bước 1. Giết quá trình mysqld
#killall mysqld
Bước 2. Tạo một mysql-init mới [Tôi sẽ gọi nó là pass-reset. txt] tập tin
# vim /var/lib/mysql/pass-reset.txt
Bao gồm dòng dưới đây. [Nhớ thay đổi mật khẩu mặc định – your_new_pass]
Nếu bạn đang sử dụng MySQL 5. 7. 6 trở lên
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_pass';
Nếu bạn đang sử dụng MySQL 5. 7. 5 trở về trước
SET PASSWORD FOR 'root'@'localhost' = PASSWORD['your_new_pass'];
Lưu tệp và thoát
Bước 3. Bắt đầu quy trình mysqld_safe với tệp được tạo ở Bước 2 làm đầu vào
# mysqld_safe --init-file=/var/lib/mysql/pass-reset.txt Starting mysqld daemon with databases from /var/lib/mysql
Note: If the above command fails with the below error message: # Starting mysqld daemon with databases from /var/lib/mysql STOPPING server from pid file /var/run/mysqld/mysqld.pid 160524 16:42:16 mysqld ended [1]+ Done mysqld_safe --init-file=pass-reset.txt
Sol : Look out for the detailed error message in /var/log/mysqld: [ERROR] /usr/libexec/mysqld: File '/root/pass-reset.txt' not found [Errcode: 13] Lookout for the file permission, as MySQL should have enough privileges to read the file.
Không thể tìm thấy tệp thực thi mysqld_safe?
Chà, bạn làm tương tự với tệp thực thi
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_pass';0 như hình bên dưới________số 8_______
Nếu bạn không thể bắt đầu
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_pass';0 với tư cách người dùng root và gặp lỗi bên dưới, thì đây là cách khắc phục
# mysqld --init-file=/var/lib/mysql/pass-reset.txt [Server] /usr/sbin/mysqld starting as process 7430 [Server] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root! [Server] Aborting [Server] /usr/sbin/mysqld: Shutdown complete MySQL Community Server - GPL.
Để khắc phục lỗi trên, bạn cần chỉ định người dùng mà
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_pass';0 sẽ được bắt đầu
# mysqld --init-file=/var/lib/mysql/pass.txt --user=root
thận trọng
Nói chung, mysqld nên được chạy với tư cách người dùng 'mysql' chứ không phải người dùng 'root'. Sau khi đặt lại mật khẩu, bạn cần thoát quá trình này và khởi động MySQL bình thường
Bước 4. Chuyển đến một thiết bị đầu cuối khác và thử truy cập người dùng root MySQL bằng mật khẩu mới
# vim /var/lib/mysql/pass-reset.txt0
Bước 5. Nếu bạn có thể đăng nhập thành công bằng mật khẩu mới, thì bạn có thể hủy quy trình mysqld_safe đã bắt đầu ở bước 3
# vim /var/lib/mysql/pass-reset.txt1
Bước 6. Bắt đầu mysqld bình thường
# vim /var/lib/mysql/pass-reset.txt2
Bước 7. Đăng nhập vào tài khoản root của MySQL và kiểm tra xem mọi thứ có hoạt động như mong đợi không
Bước 8. Bước này rất quan trọng. Nhớ xóa file mật khẩu đã tạo ở bước 2
# vim /var/lib/mysql/pass-reset.txt3
Lựa chọn 2. Khôi phục/Đặt lại mật khẩu root MySQL bằng tùy chọn –skip-grant-tables
Bước 1. Dừng tất cả quá trình mysql
# vim /var/lib/mysql/pass-reset.txt4
Bước 2. Khởi động mysqld_safe daemon với tùy chọn –skip-grant-tables. Làm như vậy sẽ không nhắc nhập mật khẩu
nếu bạn đang làm điều này trong máy chủ trực tiếp của mình với người dùng trực tiếp thì xin chúc mừng bạn là nhà phát triển CHUYÊN NGHIỆP. 😂 😂 😂
Nếu bạn không có lựa chọn nào khác, hãy đảm bảo thay đổi nó vào đêm khuya hoặc khi không có nhiều lưu lượng truy cập trong máy chủ của bạn
BƯỚC 1
Điều đầu tiên chúng ta cần làm là đăng nhập vào máy chủ của bạn và dừng dịch vụ MySQL
nếu bạn đã đăng nhập với tư cách người dùng root thì hãy nhập mã này
/etc/init.d/mysql stop
# OR
service mysql stop
Trong trường hợp bạn không phải là người dùng root nhưng có đặc quyền là root, thì chỉ cần thêm
sudo /etc/init.d/mysql stop
# OR
sudo service mysql stop
6 vào đầu lệnhsudo /etc/init.d/mysql stop
# OR
sudo service mysql stop
Khi bạn chạy mã này, nó sẽ dừng các dịch vụ mysql của bạn và tạm thời không ai có thể kết nối với cơ sở dữ liệu của bạn
[Đảm bảo thông báo cho người đồng phát triển của bạn và các nhóm khác tham gia nếu không bạn sẽ nhận được Lỗi Vé mới 😂 ]
BƯỚC 2
Chúng ta cần khởi động mysql của mình ở chế độ an toàn. Lệnh mysqld_safe có nghĩa là gì?
mysqld_safe là cách được đề xuất để khởi động máy chủ mysqld trên Unix. mysqld_safe thêm một số tính năng an toàn như khởi động lại máy chủ khi xảy ra lỗi và ghi thông tin thời gian chạy vào nhật ký lỗi. Mô tả về ghi nhật ký lỗi được đưa ra sau trong phần này
Chạy mã này bên dưới, khi chạy mysqld_safe với
sudo /etc/init.d/mysql stop
# OR
sudo service mysql stop
7, nó cho phép mọi người kết nối mà không cần mật khẩu và có tất cả các đặc quyền. Cùng với dấu và "&" để chạy lệnh ở chế độ nềnmysqld_safe --skip-grant-tables &
#OR
sudo mysqld_safe --skip-grant-tables &
BƯỚC 3
Chúng ta gần như ngang nhau rồi, cứ tiếp tục đi
Đăng nhập vào mysql của chúng tôi bằng cách chạy lệnh này, bạn sẽ thấy màn hình chào mừng của màn hình mysql
mysql -u root
BƯỚC 4
Trong bước này, chúng tôi sẽ thay đổi mật khẩu của người dùng root mysql của bạn
Nhập mã này để sử dụng bảng mysql và nhấn enter
use mysql;
Sau đó, mã để thay đổi mật khẩu root của bạn là lệnh bên dưới. Đảm bảo thay đổi "EnterYourSuperCoolPasswordHere" trước khi chạy
Hãy lưu ý, chuỗi xác thực dành cho mysql 5. phiên bản 7 lên. trong trường hợp bạn có phiên bản mysql thấp hơn, bạn có thể sử dụng cột mật khẩu để thay thế
UPDATE mysql.user SET authentication_string=PASSWORD['**EnterYourSuperCoolPasswordHere**'], plugin='mysql_native_password' WHERE User='root';
Tải lại các bảng cấp để có hiệu lực bằng lệnh bên dưới
FLUSH PRIVILEGES;
Sau đó thoát khỏi cửa sổ lệnh mysql bằng cách sử dụng
quit;
BƯỚC 5
Khởi động máy chủ mysql của bạn
sudo /etc/init.d/mysql start
# OR
sudo service mysql start
Và đăng nhập vào mysql của bạn với tư cách người dùng root bằng mật khẩu mới của bạn
mysql -u root -p
Nếu mọi thứ hoạt động, thì bạn sẽ thấy một thông báo chào mừng trong màn hình lệnh của màn hình mysql
LỖI THÔNG THƯỜNG
1]. Truy cập bị từ chối;
DUNG DỊCH. Đăng nhập với quyền root mysql sau đó gõ lệnh này
sudo /etc/init.d/mysql stop
# OR
sudo service mysql stop
02]. Thư mục mysqld_safe ‘/var/run/mysqld’ cho tệp ổ cắm UNIX không tồn tại
DUNG DỊCH
sudo /etc/init.d/mysql stop
# OR
sudo service mysql stop
1Sau đó thử dừng hoặc bắt đầu lại mysql
3] LỖI 1524 [HY000]. Plugin 'auth_socket' không được tải. Về cơ bản, chúng tôi cần đặt plugin ủy quyền trở lại mysql_native_password
DUNG DỊCH. Đăng nhập với quyền root mysql sau đó gõ lệnh này
use mysql;
sudo /etc/init.d/mysql stop
# OR
sudo service mysql stop
3_______19_______4quit;
4] LỖI 1054 [42S22]. Cột 'mật khẩu' không xác định trong 'danh sách trường'
DUNG DỊCH
Điều đó có nghĩa là bạn đang sử dụng phiên bản mã thấp cho mysql 5. 6 bên dưới. cột mật khẩu đã bị xóa khỏi mysql 5. 7 ở trên, Như tôi đã đề cập trong hướng dẫn ở trên, bạn cần sử dụng authentication_string
thì đấy
Tôi hy vọng tôi giúp bạn giải quyết vấn đề của bạn. Hãy cho tôi biết trong trường hợp bạn gặp một lỗi khác
cảm ơn. 👊 👊 👊
Nổi bật tiếp theo
Khám phá các mẹo bảo mật của chúng tôi để đảm bảo an toàn cho máy chủ và quy trình. Khám phá các mẹo bảo mật của chúng tôi để đảm bảo an toàn cho máy chủ và quy trình
thì đấy
Tôi hy vọng bạn thích hướng dẫn của chúng tôi, Hãy cho tôi biết trong trường hợp bạn gặp phải bất kỳ lỗi nào, tôi rất muốn trả lời. Đừng quên đăng ký Kênh Youtube của tôi tại Let's Code Pare - Youtube Channel