Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?

Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?

Hướng dẫn này dành cho MySQL 5,7 dưới Centos 8

Gần đây tôi muốn thiết lập một môi trường phát triển Vagrant với máy chủ MySQL được xây dựng thành nó. Tôi đã tìm thấy một cách để cài đặt nó nhưng tôi thấy rằng có rất ít về cách đặt lại mật khẩu gốc MySQL.

Dưới đây tôi sẽ đặt tập lệnh đặt lại mà tôi đã sử dụng. Xin lưu ý rằng tập lệnh cũng sửa đổi quyền truy cập máy chủ của tài khoản gốc.note that the script also modifies the host access of the root account.

#!/bin/bash
sudo systemctl stop mysqld
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
sudo systemctl start mysqld
sudo mysql -u root -e "UPDATE mysql.user SET authentication_string = '', password_expired = 'N' WHERE User = 'root' AND (Host = 'localhost' OR Host = '%');"
sudo mysql -u root -e "FLUSH PRIVILEGES;"
sudo mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '';"
sudo systemctl stop mysqld
sudo systemctl unset-environment MYSQLD_OPTS
sudo systemctl start mysqld
sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '';"
sudo systemctl restart mysqld

Ý tưởng với cách tiếp cận này là vô hiệu hóa bảo mật của máy chủ MySQL và cho phép các lệnh được chạy mà không cần mật khẩu.

Lý do mà lệnh của Grant Grant được chạy trước lệnh của UNS-SENT-Môi trường là vì nó phải được chạy mà không có đặc quyền. Tuy nhiên, lệnh thay đổi trên mạng chính xác là ngược lại.

Điều rất quan trọng là đặt lại cờ trở lại vì nếu không máy chủ có thể truy cập mà không có thông tin đăng nhập.very important to reset the flag back because otherwise the server is accessible without any credentials.

Việc triển khai RESET Mật khẩu gốc MySQL được trình bày ở trên có thể được kiểm tra trong thiết lập Vagrant mà tôi đã tạo trong kho Github sau:

Trong một trường hợp đáng tiếc là quên hoặc mất mật khẩu gốc MySQL của bạn, 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 ta cần tìm ra cách bỏ qua xác thực MySQL, vì vậy chúng ta có thể cập nhật bản ghi mật khẩu.

May mắn thay, có một sự dễ dàng để đạt được và hướng dẫn này sẽ hướng dẫn bạn trong 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 mysql bằng cách sử dụng tệp

Một trong những cách để đặt lại mật khẩu gốc là tạo tệp cục bộ và sau đó khởi động dịch vụ MySQL bằng tùy chọn

# vim /home/user/init-file.txt
4 như được hiển thị.

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

Điều quan trọng là bạn đảm bảo rằng tệp có thể đọc được bởi người dùng MySQL. Trong tệp đó 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.new_password” with the password that you wish to use.

Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?
Tạo tệp với mật khẩu gốc MySQL mới

Bây giờ hãy chắc chắn rằng dịch vụ MySQL bị 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

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

Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?
Đặt lại mật khẩu gốc MySQL

Đả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 sẽ có thể kết nối với máy chủ MySQL dưới dạng gốc bằng cách sử dụng mật khẩu mới.

# mysql -u root -p
Kết nối với MySQL với mật khẩu gốc mới
Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?
Connect to MySQL with New Root Password

Đặt lại mật khẩu gốc MySQL bằng cách sử dụng bảng tài liệu

Tùy chọn thứ hai chúng tôi có là bắt đầu dịch vụ MySQL với tùy chọn

# vim /home/user/init-file.txt
5. Điều này kém an toàn vì trong khi dịch vụ được bắt đầu 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

# vim /home/user/init-file.txt
5, tùy chọn cho
# vim /home/user/init-file.txt
7 được tự động kích hoạt, do đó các kết nối từ xa sẽ không khả dụng.

Đầu tiên hãy chắc chắn rằng dịch vụ MySQL bị 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.

# mysql

Vì quản lý tài khoản bị vô hiệu hóa khi dịch vụ được bắt đầu với tùy chọn

# vim /home/user/init-file.txt
5, 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:

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

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 từ New_Password, với mật khẩu thực tế bạn muốn sử dụng.

# vim /home/user/init-file.txt
1Reset Mật khẩu gốc trong MySQL 8
Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?
Reset Root Password in MySQL 8

Bây giờ hãy dừng máy chủ MySQL và khởi động 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 sẽ có thể kết nối với mật khẩu mới của bạn.

# mysql -u root -p
Login to mysql với mật khẩu gốc mới
Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?
Login to MySQL with New Root Password

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

  1. Cách cài đặt MySQL 8 trong Centos, Rhel và Fedora
  2. 15 Mẹo điều chỉnh hiệu suất và tối ưu hóa MySQL hữu ích
  3. 12 Thực hành bảo mật MySQL cho Linux
  4. 4 Công cụ dòng lệnh hữu ích để theo dõi hiệu suất MySQL
  5. Các lệnh quản trị cơ sở dữ liệu MySQL
Sự kết luận

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

Nếu bạn đánh giá cao những gì chúng tôi làm ở đây trên tecmint, bạn nên xem xét:

Tecmint là trang web cộng đồng phát triển nhanh nhất và đáng tin cậy nhất cho bất kỳ loại bài viết, hướng dẫn và sách Linux nào trên web. Hàng triệu người ghé thăm Tecmint! Để tìm kiếm hoặc duyệt hàng ngàn bài báo được xuất bản có sẵn tự do cho tất cả.

Nếu bạn thích những gì bạn đang đọc, vui lòng xem xét việc mua cho chúng tôi một ly cà phê (hoặc 2) như một dấu hiệu đánh giá cao.

Hướng dẫn how do i change the mysql root password in centos 8? - làm cách nào để thay đổi mật khẩu gốc mysql trong centos 8?

Chúng tôi rất biết ơn vì sự hỗ trợ không bao giờ kết thúc của bạn.

Làm cách nào để thay đổi mật khẩu mysql trong centos 8?

Đặt lại mật khẩu gốc MySQL bằng cách sử dụng tệp trong tệp đó, dán như sau: thay đổi người dùng 'root'@'localhost' được xác định bởi 'new_password'; Trong thay đổi ở trên, New_Password, với mật khẩu mà bạn muốn sử dụng.ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; In the above change “new_password” with the password that you wish to use.

Làm cách nào để tìm mật khẩu gốc mysql trong centos 8?

Khôi phục mật khẩu MySQL của bạn Dừng quy trình Máy chủ MySQL với lệnh dừng của Dịch vụ SUDO. Khởi động máy chủ MySQL với lệnh sudo mysqld_safe Kết nối với máy chủ MySQL với tư cách là người dùng gốc với lệnh gốc mysql -u.

Làm cách nào để thay đổi mật khẩu gốc trong centos 8?

Thay đổi mật khẩu..
Vì hệ thống tệp theo /sysroot /được gắn với các đặc quyền chỉ đọc, trước tiên bạn phải kể lại nó bằng đặc quyền ghi: switch_root: /# mount -o respount, rw /sysroot ..
Bây giờ chuyển sang môi trường chroot: Switch_root: /# chroot /sysroot.....
Bây giờ bạn có thể thay đổi mật khẩu bằng Passwd: SH-4.4# passwd ..

Làm thế nào đặt mật khẩu gốc mysql trong centos?

Thực hiện theo các bước này để đặt lại mật khẩu gốc MySQL/MariaDB của bạn:..
Dừng dịch vụ MySQL/MariaDB.....
Khởi động máy chủ MySQL/Mariadb mà không cần tải các bảng tài trợ.....
Đăng nhập vào vỏ MySQL.....
Đặt mật khẩu gốc mới.....
Dừng và khởi động máy chủ cơ sở dữ liệu bình thường.....
Xác minh mật khẩu ..