Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách đặt lại mật khẩu gốc trong MySQL 8.0

Trong trường hợp không may quên hoặc mất mật khẩu gốc MySQL, bạn chắc chắn sẽ cần một cách để khôi phục nó bằng cách nào đó. Những gì chúng ta cần biết là mật khẩu được lưu trữ trong bảng người dùng. Điều này có nghĩa là chúng tôi cần tìm ra cách để bỏ qua xác thực MySQL, để chúng tôi có thể cập nhật bản ghi mật khẩu.

May mắn thay, có một cách dễ dàng để đạt được và hướng dẫn này sẽ hướng dẫn bạn quá trình khôi phục hoặc đặt lại mật khẩu gốc trong phiên bản MySQL 8.0.

Theo tài liệu MySQL, có hai cách để đặt lại mật khẩu MySQL gốc. Chúng tôi sẽ xem xét cả hai.

Đặt lại mật khẩu gốc của MySQL bằng –init-file

Một trong những cách để đặt lại mật khẩu gốc là tạo một tệp cục bộ và sau đó khởi động dịch vụ MySQL bằng --init-file như được hiển thị.

# vim /home/user/init-file.txt

Điều quan trọng là bạn phải đảm bảo rằng người dùng mysql có thể đọc được tệp đó. Trong tệp đó, hãy dán như sau:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Trong thay đổi ở trên “ new_password ”Với mật khẩu mà bạn muốn sử dụng.

Bây giờ hãy đảm bảo rằng dịch vụ MySQL đã dừng. Bạn có thể làm như sau:

# systemctl stop mysqld.service     # for distros using systemd 
# /etc/init.d/mysqld stop           # for distros using init

Sau đó chạy như sau:

# mysqld --user=mysql --init-file=/home/user/init-file.txt --console

Thao tác này sẽ khởi động dịch vụ MySQL và trong quá trình này, nó sẽ thực thi tệp init mà bạn đã tạo và do đó mật khẩu cho người dùng root sẽ được cập nhật. Đảm bảo xóa tệp khi mật khẩu đã được đặt lại.

Đảm bảo dừng máy chủ và khởi động bình thường sau đó.

# systemctl stop mysqld.service        # for distros using systemd 
# systemctl restart mysqld.service     # for distros using systemd 

# /etc/init.d/mysqld stop              # for distros using init
# /etc/init.d/mysqld restart           # for distros using init

Bây giờ bạn có thể kết nối với máy chủ MySQL dưới dạng root bằng mật khẩu mới.

# mysql -u root -p

Đặt lại mật khẩu gốc của MySQL bằng –skip-Grant-table

Tùy chọn thứ hai mà chúng tôi có là khởi động dịch vụ MySQL với --skip-grant-tables lựa chọn. Điều này kém an toàn hơn vì trong khi dịch vụ được khởi động theo cách đó, tất cả người dùng có thể kết nối mà không cần mật khẩu.

Nếu máy chủ được khởi động --skip-grant-tables , tùy chọn cho --skip-networking được tự động kích hoạt nên các kết nối từ xa sẽ không khả dụng.

Trước tiên, hãy đảm bảo rằng dịch vụ MySQL đã dừng.

# systemctl stop mysqld.service     # for distros using systemd 
# /etc/init.d/mysqld stop           # for distros using init

Sau đó, bắt đầu dịch vụ với tùy chọn sau.

# mysqld --skip-grant-tables --user=mysql &

Sau đó, bạn có thể kết nối với máy chủ mysql bằng cách chạy đơn giản.

# mysql

Vì quản lý tài khoản bị tắt khi dịch vụ được khởi động với --skip-grant-tables tùy chọn, chúng tôi sẽ phải tải lại các khoản tài trợ. Bằng cách đó, chúng tôi sẽ có thể thay đổi mật khẩu sau này:

# FLUSH PRIVILEGES;

Bây giờ bạn có thể chạy truy vấn sau để cập nhật mật khẩu. Đảm bảo thay đổi “new_password” bằng mật khẩu thực mà bạn muốn sử dụng.

# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

Bây giờ hãy dừng máy chủ MySQL và khởi động nó bình thường.

# systemctl stop mysqld.service        # for distros using systemd 
# systemctl restart mysqld.service     # for distros using systemd 

# /etc/init.d/mysqld stop              # for distros using init
# /etc/init.d/mysqld restart           # for distros using init

Bạn có thể kết nối với mật khẩu mới của mình.

# mysql -u root -p

Bạn cũng có thể muốn đọc các bài viết hữu ích sau liên quan đến MySQL này.

  1. Cách cài đặt MySQL 8 trong CentOS, RHEL và Fedora
  2. 15 Mẹo Tối ưu hóa và Điều chỉnh Hiệu suất MySQL Hữu ích
  3. 12 Thực tiễn Bảo mật MySQL dành cho Linux
  4. 4 Công cụ Dòng lệnh Hữu ích để Giám sát Hiệu suất MySQL
  5. Các lệnh quản trị cơ sở dữ liệu MySQL
Kết luận

Trong bài viết này, bạn đã học cách đặt lại mật khẩu gốc bị mất cho máy chủ MySQL 8.0. Tôi hy vọng quá trình này diễn ra dễ dàng.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Chọn mục nhập ngẫu nhiên, nhưng có trọng lượng đối với các mục nhập nhất định

  2. Lỗi nghiêm trọng:Gọi đến một truy vấn hàm thành viên () trên null

  3. Neo4j - Xóa mối quan hệ bằng Cypher

  4. Cách tìm kiếm từ phù hợp chính xác bằng MySql Query

  5. MySQL:Giao dịch so với Bảng khóa