Cách tìm hoặc đặt lại mật khẩu root MySQL (Hướng dẫn cho Linux & Windows)

1. Giới thiệu

MySQL là một công cụ thiết yếu được sử dụng trong nhiều ứng dụng web và hệ thống cơ sở dữ liệu. Tuy nhiên, trong quá trình vận hành, không hiếm gặp các tình huống như “Tôi quên mật khẩu” hoặc “Tôi không biết mật khẩu ban đầu”. Những vấn đề này có thể ảnh hưởng đáng kể đến quy trình làm việc và bảo mật cơ sở dữ liệu.

Trong bài viết này, chúng tôi sẽ giải thích chi tiết—để ngay cả người mới bắt đầu cũng có thể theo dõi—cách kiểm tra mật khẩu ban đầu của MySQL và cách đặt lại nếu bạn quên mật khẩu. Chúng tôi cũng cung cấp quy trình cho cả Linux và Windows để bạn có thể thực hiện các bước phù hợp với môi trường của mình.

Trong phần sau của bài viết, chúng tôi sẽ đề cập đến cách kiểm tra và thay đổi cài đặt chính sách mật khẩu, cũng như cách xử lý các lỗi thường gặp. Điều này sẽ giúp bạn có được hiểu biết toàn diện về cách vận hành MySQL một cách an toàn và hiệu quả hơn.

Bằng cách đọc bài viết này, bạn sẽ có thể hiểu và thực hiện các nội dung sau:

  • Cách kiểm tra mật khẩu ban đầu của MySQL
  • Cách đặt lại mật khẩu nếu bạn quên (cho cả Linux và Windows)
  • Cách khắc phục sự cố và cấu hình các cài đặt chính sách mật khẩu

Hãy đọc đến cuối và thiết lập môi trường để bạn có thể sử dụng MySQL một cách tự tin.

2. Cách Kiểm Tra Mật Khẩu Ban Đầu của MySQL

Khi bạn cài đặt MySQL lần đầu tiên, một mật khẩu ban đầu (tạm thời) có thể được tạo mặc định. Nếu bạn có thể tìm thấy mật khẩu ban đầu này, lần đăng nhập đầu tiên và quá trình thay đổi mật khẩu sẽ diễn ra suôn sẻ hơn rất nhiều. Trong phần này, chúng tôi sẽ giải thích các cách cụ thể để kiểm tra mật khẩu ban đầu trên cả Linux và Windows.

2.1 Cách Kiểm Tra Mật Khẩu Ban Đầu trên Linux

Trên Linux, bạn có thể kiểm tra mật khẩu ban đầu bằng cách xem lại tệp nhật ký được tạo sau khi cài đặt MySQL. Thực hiện các bước dưới đây.

Các bước:

  1. Mở một terminal.
  2. Chạy lệnh sau để xem nội dung tệp nhật ký.
    sudo cat /var/log/mysqld.log | grep 'temporary password'
    
  1. Kết quả của lệnh sẽ hiển thị mật khẩu ban đầu cùng với văn bản “temporary password.”
  • Ví dụ: 2025-01-19T10:45:32.123456Z 1 [Note] A temporary password is generated for root@localhost: Abc12345!
  • Trong trường hợp này, Abc12345! là mật khẩu ban đầu.
  1. Ghi lại mật khẩu ban đầu và sử dụng nó khi đăng nhập vào MySQL.

Lưu ý:

  • Mật khẩu ban đầu được tạo ngẫu nhiên vì lý do bảo mật.
  • Sau lần đăng nhập đầu tiên, bạn sẽ phải thay đổi mật khẩu, vì vậy hãy chắc chắn đặt mật khẩu mới.

2.2 Cách Kiểm Tra Mật Khẩu Ban Đầu trên Windows

Trên Windows, bạn có thể kiểm tra mật khẩu ban đầu từ tệp nhật ký được tạo trong quá trình cài đặt MySQL ban đầu, hoặc từ màn hình trình cài đặt. Sử dụng các bước dưới đây làm tham khảo.

Các bước:

  1. Mở thư mục nơi MySQL được cài đặt.
    * Đường dẫn mặc định thường là: C:\ProgramData\MySQL\MySQL Server X.X\Logs *X.X chỉ số phiên bản MySQL.
  2. Tìm tệp có tên mysqld.log .
  3. Mở tệp nhật ký bằng Notepad hoặc bất kỳ trình soạn thảo văn bản nào.
  4. Tìm kiếm trong tệp từ khóa “temporary password.”
    * Mật khẩu ban đầu sẽ được hiển thị cùng với văn bản “root@localhost.”
  5. Ghi lại mật khẩu ban đầu và sử dụng nó khi đăng nhập vào MySQL.

Lưu ý bổ sung:

  • Tùy thuộc vào trình cài đặt, mật khẩu ban đầu có thể được hiển thị trên màn hình trong quá trình cài đặt. Trong trường hợp đó, nên lưu lại ảnh chụp màn hình.

3. Khi Quên Mật Khẩu Phải Làm Gì

Ngay cả khi bạn quên mật khẩu MySQL, bạn vẫn có thể đặt lại nó bằng một vài phương pháp. Trong phần này, chúng tôi sẽ giải thích quy trình đặt lại mật khẩu cho cả Linux và Windows. Cả hai phương pháp đều yêu cầu quyền quản trị, vì vậy hãy chắc chắn thực hiện các bước này với quyền admin.

3.1 Cách Đặt Lại Mật Khẩu trên Linux

Trên Linux, một cách thường dùng là khởi động MySQL ở chế độ an toàn (với tùy chọn --skip-grant-tables) và đặt mật khẩu mới.

Các bước:

  1. Dừng dịch vụ MySQL Chạy lệnh sau để dừng dịch vụ MySQL.
    sudo systemctl stop mysqld
    
  1. Khởi động MySQL ở chế độ an toàn Ở chế độ an toàn, việc xác thực người dùng bị bỏ qua, cho phép bạn truy cập MySQL mà không cần mật khẩu. Chạy lệnh sau.
    sudo mysqld_safe --skip-grant-tables &
    
  1. Đăng nhập vào MySQL Sau khi khởi động ở chế độ an toàn, đăng nhập vào MySQL bằng lệnh sau.
    mysql -u root
    
  1. Đặt mật khẩu mới Chạy lệnh SQL sau để đặt mật khẩu mới.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
    

*Thay NewPassword123! bằng mật khẩu mới phù hợp.

  1. Khởi động lại dịch vụ Sau khi đặt mật khẩu, khởi động lại dịch vụ MySQL ở chế độ bình thường.
    sudo systemctl stop mysqld
    sudo systemctl start mysqld
    
  1. Xác minh đăng nhập với mật khẩu mới Xác nhận rằng bạn có thể đăng nhập vào MySQL bằng mật khẩu mới bạn đã đặt.

3.2 Cách đặt lại mật khẩu trên Windows

Trên Windows, bạn có thể đặt lại mật khẩu bằng cách khởi động MySQL với tùy chọn --init-file.

Các bước:

  1. Dừng dịch vụ MySQL Mở trình quản lý Dịch vụ và dừng “dịch vụ MySQL.”
  2. Tạo tệp SQL để đặt lại Sử dụng bất kỳ trình soạn thảo văn bản nào, tạo một tệp SQL (ví dụ: reset_password.sql ) với nội dung sau và lưu nó vào thư mục phù hợp.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
    

*Thay NewPassword123! bằng mật khẩu mới bạn muốn sử dụng.

  1. Khởi động MySQL với tùy chọn --init-file Mở Command Prompt với quyền Quản trị viên và chạy lệnh sau.
       mysqld --init-file="C:\path    o
    eset_password.sql"
    

*Thay C:\path o eset_password.sql bằng đường dẫn thực tế nơi bạn đã lưu tệp SQL.

  1. Khởi động lại dịch vụ Khởi động lại MySQL ở chế độ bình thường. Hoặc khởi động lại dịch vụ trong trình quản lý Dịch vụ hoặc chạy lệnh sau.
    net start mysql
    
  1. Xác minh đăng nhập với mật khẩu mới Xác nhận rằng bạn có thể đăng nhập vào MySQL bằng mật khẩu mới bạn đã đặt.

4. Kiểm tra và Cấu hình Chính sách Mật khẩu

MySQL cung cấp một tính năng gọi là “chính sách mật khẩu” để giúp đảm bảo an ninh mật khẩu. Điều này cho phép bạn thực thi các yêu cầu như độ phức tạp và độ dài tối thiểu. Ở đây, chúng tôi sẽ giải thích cách kiểm tra chính sách hiện tại và cách thay đổi cài đặt khi cần.

4.1 Cách Kiểm tra Chính sách Mật khẩu

Để kiểm tra chính sách mật khẩu hiện tại, bạn sử dụng plugin validate_password. Nếu plugin này được kích hoạt, MySQL xác thực mật khẩu dựa trên chính sách đã cấu hình.

Các bước:

  1. Đăng nhập vào MySQL.
    mysql -u root -p
    
  1. Chạy lệnh sau để kiểm tra cài đặt chính sách hiện tại.
    SHOW VARIABLES LIKE 'validate_password%';
    
  1. Đầu ra sẽ hiển thị các mục cấu hình như sau.
  • validate_password.policy : Mức độ mạnh của chính sách mật khẩu wp:list /wp:list

    • 0 (LOW): Chỉ cho phép chữ cái và số
    • 1 (MEDIUM): Yêu cầu chữ cái, số và ký tự đặc biệt
    • 2 (STRONG): Yêu cầu chữ cái, số, ký tự đặc biệt, chữ hoa và chữ thường
    • validate_password.length : Độ dài mật khẩu tối thiểu
    • validate_password.mixed_case_count : Số lượng ký tự viết hoa/thường tối thiểu yêu cầu
    • validate_password.number_count : Số lượng chữ số tối thiểu yêu cầu
    • validate_password.special_char_count : Số lượng ký tự đặc biệt tối thiểu yêu cầu

4.2 Thay đổi Cài đặt Chính sách Mật khẩu

Nếu cần, bạn có thể nới lỏng hoặc tăng cường chính sách mật khẩu. Các ví dụ được hiển thị bên dưới.

Các bước để thay đổi cài đặt chính sách:

  1. Đăng nhập vào MySQL.
    mysql -u root -p
    
  1. Chạy các lệnh SQL để thay đổi cài đặt hiện tại. Ví dụ 1: Nới lỏng chính sách (thay đổi sang mức LOW)
    SET GLOBAL validate_password.policy = 0;
    SET GLOBAL validate_password.length = 8;
    

Ví dụ 2: Tăng cường chính sách (thay đổi sang mức STRONG)

SET GLOBAL validate_password.policy = 2;
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.special_char_count = 2;
  1. Xác nhận rằng các cài đặt đã được áp dụng.
    SHOW VARIABLES LIKE 'validate_password%';
    

Ghi chú:

  • Để giữ các cài đặt sau khi khởi động lại MySQL, nên thêm chúng vào my.cnf hoặc my.ini .
  • Ví dụ:
    [mysqld]
    validate_password.policy=1
    validate_password.length=10
    

4.3 Các cân nhắc khi thay đổi cài đặt

  • Cân bằng bảo mật và tính khả dụng Tăng cường chính sách mật khẩu cải thiện bảo mật, nhưng có thể làm cho việc quản lý mật khẩu trở nên phức tạp hơn. Trong môi trường có nhiều người mới, bạn nên tránh các chính sách nghiêm ngặt hơn mức cần thiết.
  • Tác động vận hành Nếu người dùng hiện tại không đáp ứng chính sách mới, sẽ xảy ra lỗi khi họ cố gắng cập nhật mật khẩu sau khi thay đổi. Kiểm tra phạm vi ảnh hưởng trước khi thay đổi chính sách.
  • Ngăn ngừa việc tái sử dụng mật khẩu Trong môi trường sản xuất, hãy cân nhắc bật các tính năng ngăn chặn việc sử dụng lại mật khẩu đã dùng trước đó.

5. Khắc phục sự cố

Khi kiểm tra hoặc đặt lại mật khẩu MySQL, bạn có thể gặp phải các lỗi không mong muốn. Trong phần này, chúng tôi sẽ giải thích các ví dụ phổ biến và cách khắc phục chi tiết.

5.1 Các lỗi phổ biến và nguyên nhân của chúng

Lỗi 1: Lỗi quyền (Truy cập bị từ chối cho người dùng)

  • Nguyên nhân : Điều này xảy ra khi tên người dùng hoặc mật khẩu được cung cấp khi đăng nhập không đúng, hoặc khi người dùng thiếu các quyền cần thiết.
  • Giải pháp :
  1. Xác minh rằng bạn đang sử dụng đúng tên người dùng và mật khẩu.
  2. Đăng nhập dưới tài khoản root, hoặc yêu cầu quản trị viên xác nhận các quyền.
  3. Nếu cần, khởi động MySQL ở chế độ an toàn ( --skip-grant-tables ) và sửa các quyền.

Lỗi 2: Dịch vụ MySQL không khởi động

  • Nguyên nhân : Điều này có thể xảy ra nếu có lỗi trong tệp cấu hình MySQL ( my.cnf hoặc my.ini ), hoặc nếu không đủ không gian đĩa.
  • Giải pháp :
  1. Kiểm tra tệp nhật ký lỗi MySQL. wp:list /wp:list

    • Trên Linux: /var/log/mysqld.log
    • Trên Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log 2. Nếu có lỗi trong tệp cấu hình, hãy sửa nó—đặc biệt là bất kỳ cài đặt mới nào đã thêm. 3. Nếu không đủ không gian đĩa, hãy xóa các tệp không cần thiết hoặc mở rộng dung lượng lưu trữ. 4. Sau khi sửa, khởi động lại dịch vụ. bash sudo systemctl restart mysqld

Lỗi 3: Thay đổi mật khẩu không có hiệu lực

  • Nguyên nhân : Các bảng đặc quyền có thể chưa được tải lại sau khi thay đổi mật khẩu.
  • Giải pháp :
  1. Sau khi chạy lệnh thay đổi mật khẩu, tải lại các đặc quyền bằng lệnh sau. sql FLUSH PRIVILEGES;
  2. Khởi động lại dịch vụ MySQL và thử đăng nhập bằng mật khẩu mới.

5.2 Khôi phục bằng chế độ an toàn

Nếu các giải pháp trên không giải quyết được vấn đề, bạn có thể thử khôi phục bằng chế độ an toàn.

Các bước:

  1. Dừng dịch vụ MySQL.
    sudo systemctl stop mysqld
    
  1. Khởi động MySQL ở chế độ an toàn.
    sudo mysqld_safe --skip-grant-tables &
    
  1. Khi đang ở chế độ an toàn, đăng nhập vào MySQL và sửa các đặc quyền hoặc mật khẩu của người dùng bị ảnh hưởng.
  2. Sau khi sửa, thoát chế độ an toàn và khởi động lại MySQL ở chế độ bình thường.
    sudo systemctl restart mysqld
    

5.3 Cách sử dụng nhật ký lỗi một cách hiệu quả

Nhật ký lỗi MySQL là một trong những nguồn thông tin quan trọng nhất để khắc phục sự cố. Sử dụng các bước dưới đây để xem xét và giúp giải quyết các vấn đề.

Các bước:

  1. Xác nhận vị trí của nhật ký lỗi.
  • Trên Linux (đường dẫn thường): /var/log/mysqld.log
  • Trên Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log
  1. Hiển thị tệp nhật ký.
    tail -n 100 /var/log/mysqld.log
    

*Nếu bạn muốn giám sát các lỗi mới nhất theo thời gian thực, bạn có thể thêm tùy chọn -f.

tail -f /var/log/mysqld.log
  1. Đọc các thông báo nhật ký và xác định nguyên nhân của lỗi.

5.4 Cần làm gì nếu vấn đề vẫn chưa được giải quyết

  • Tham khảo tài liệu chính thức Tài liệu chính thức của MySQL chứa thông tin khắc phục sự cố chi tiết theo phiên bản. Tài liệu chính thức của MySQL
  • Sử dụng diễn đàn hỗ trợ Tìm kiếm các vấn đề tương tự trên các diễn đàn cộng đồng hoặc Stack Overflow để tìm giải pháp.
  • Tham khảo chuyên gia Nếu bạn không thể giải quyết vấn đề, hãy tham khảo quản trị viên hệ thống hoặc một chuyên gia MySQL.

6. Câu hỏi thường gặp

Khi quản lý hoặc đặt lại mật khẩu MySQL, bạn có thể gặp phải nhiều câu hỏi hoặc vấn đề. Trong phần này, chúng tôi sẽ dự đoán các câu hỏi phổ biến mà độc giả có thể có và giải thích rõ ràng từng giải pháp.

Q1: Tôi nên làm gì nếu không thể tìm thấy mật khẩu ban đầu?

A1:
Nếu bạn không thể tìm thấy mật khẩu MySQL ban đầu, hãy thử các bước sau.

  1. Kiểm tra lại tệp log
  • Trên Linux: /var/log/mysqld.log
  • Trên Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log Mật khẩu ban đầu thường được ghi trong tệp log cùng với văn bản “temporary password.”
  1. Kiểm tra màn hình cài đặt Trên Windows, trình cài đặt MySQL có thể hiển thị mật khẩu ban đầu. Kiểm tra xem bạn có lưu ảnh chụp màn hình ngay sau khi cài đặt không.
  2. Xem xét cài đặt lại Nếu bạn vẫn không thể tìm thấy mật khẩu ban đầu, việc gỡ cài đặt và cài đặt lại MySQL có thể tạo ra một mật khẩu ban đầu mới mà bạn có thể sử dụng.

Q2: Tại sao tôi vẫn không đăng nhập được ngay cả khi đã đặt lại mật khẩu?

A2:
Nếu bạn vẫn không đăng nhập được sau khi đặt lại mật khẩu, hãy kiểm tra các điểm sau:

  1. Kiểm tra tên người dùng và host
  • Trong MySQL, sự kết hợp giữa tên người dùng và host rất quan trọng (ví dụ: 'root'@'localhost'). Nếu bạn sử dụng '%', quyền truy cập sẽ được cho phép từ mọi host.
  • Lệnh để kiểm tra danh sách người dùng: sql SELECT User, Host FROM mysql.user;
  1. Quên tải lại bảng quyền Nếu bạn không tải lại quyền sau khi đặt lại mật khẩu, mật khẩu mới sẽ không có hiệu lực. Chạy lệnh sau.
    FLUSH PRIVILEGES;
    
  1. Khởi động lại dịch vụ MySQL Sau khi đặt lại mật khẩu, khởi động lại dịch vụ MySQL và sau đó thử đăng nhập lại.
    sudo systemctl restart mysqld
    

Q3: Có thể tắt chính sách mật khẩu không?

A3:
Bạn có thể tắt chính sách mật khẩu, nhưng điều này làm tăng rủi ro bảo mật, vì vậy hãy cân nhắc kỹ. Bạn có thể tắt plugin validate_password bằng các bước dưới đây.

  1. Đăng nhập vào MySQL.
    mysql -u root -p
    
  1. Chạy lệnh để gỡ bỏ plugin.
    UNINSTALL PLUGIN validate_password;
    
  1. Xác nhận rằng nó đã được tắt.
    SHOW PLUGINS;
    

Lưu ý:
Điều này cho phép mật khẩu yếu, vì vậy đặc biệt trong môi trường sản xuất, hãy tăng cường các biện pháp bảo mật khác thay thế.

Q4: Tôi nên làm gì nếu gặp lỗi khi đặt lại mật khẩu?

A4:
Sử dụng các bước sau như một hướng dẫn để xử lý lỗi khi đặt lại.

  1. Kiểm tra thông báo lỗi
  • Kiểm tra nhật ký lỗi để xem chi tiết thông báo. wp:list /wp:list

    • Trên Linux: /var/log/mysqld.log
    • Trên Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log
  1. Sửa trong chế độ an toàn Nếu lỗi vẫn tiếp diễn, khởi động MySQL ở chế độ an toàn (--skip-grant-tables) và sửa cấu hình gây vấn đề.
  2. Xóa và tạo lại người dùng hiện có Nếu vấn đề liên quan đến người dùng, việc xóa và tạo lại người dùng cũng có thể hiệu quả.
    DROP USER 'root'@'localhost';
    CREATE USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
    

Q5: Nếu mật khẩu được chia sẻ với các quản trị viên khác, việc thay đổi nó có ảnh hưởng không?

A5:
Nếu có nhiều quản trị viên, việc thay đổi mật khẩu có thể gây ra các ảnh hưởng sau.

  1. Phạm vi ảnh hưởng Nếu hệ thống hoặc script của các quản trị viên khác sử dụng mật khẩu cũ, sẽ xảy ra lỗi kết nối.
  2. Thông báo trước Trước khi thay đổi mật khẩu, hãy thông báo cho các quản trị viên khác và để họ cập nhật script hoặc cài đặt cần thiết.
  3. Chia sẻ an toàn sau khi thay đổi Sau khi thay đổi, đảm bảo bạn có phương pháp an toàn để chia sẻ mật khẩu mới (ví dụ: công cụ nhắn tin được mã hoá).

7. Tóm tắt

Kiểm tra và đặt lại mật khẩu MySQL là một trong những nhiệm vụ thiết yếu mà bạn không thể tránh khi vận hành cơ sở dữ liệu. Trong bài viết này, chúng tôi đã bao quát toàn diện mọi thứ từ cách tìm mật khẩu ban đầu, đến việc đặt lại mật khẩu bị quên, và thậm chí cấu hình chính sách mật khẩu và khắc phục sự cố — để người mới bắt đầu có thể thực hành theo.

Những điểm chính cần nhớ từ bài viết này

  1. Cách tìm mật khẩu ban đầu
  • Trên Linux, kiểm tra /var/log/mysqld.log; trên Windows, kiểm tra tệp mysqld.log để lấy mật khẩu ban đầu.
  1. Cách đặt lại mật khẩu bị quên
  • Chúng tôi đã trình bày quy trình đặt lại cho cả Linux và Windows bằng chế độ an toàn và tùy chọn --init-file.
  1. Kiểm tra và cấu hình chính sách mật khẩu
  • Chúng tôi giải thích cách sử dụng plugin validate_password để cấu hình các chính sách phù hợp với môi trường của bạn.
  1. Khắc phục sự cố
  • Chúng tôi giới thiệu các phản hồi cụ thể cho các lỗi thường gặp như vấn đề quyền truy cập và lỗi khởi động dịch vụ.
  1. Câu hỏi thường gặp để làm rõ thêm
  • Chúng tôi cung cấp câu trả lời cho các câu hỏi và vấn đề phổ biến phát sinh trong quá trình kiểm tra và đặt lại mật khẩu.

Khuyến nghị cho độc giả

Để vận hành MySQL một cách an toàn và hiệu quả, hãy ghi nhớ các điểm sau.

  • Quản lý mật khẩu một cách toàn diện Đặt mật khẩu mạnh và lưu trữ chúng một cách an toàn. Thường xuyên thay đổi mật khẩu có thể tăng cường bảo mật hơn nữa.
  • Tận dụng nhật ký lỗi Khi gặp sự cố, hãy thói quen kiểm tra nhật ký lỗi để xác định nguyên nhân.
  • Tham khảo tài liệu chính thức Các nguồn tài liệu chính thức của MySQL cung cấp thông tin mới nhất, theo phiên bản. Sử dụng chúng khi cần.

Các bước tiếp theo

Bằng cách thực hiện các bước trong bài viết này, bạn đã có được kỹ năng thực tế về quản lý mật khẩu MySQL cơ bản và khắc phục sự cố. Đối với các bước tiếp theo, hãy xem xét:

  • Tăng cường bảo mật hơn nữa Cải thiện bảo mật tổng thể của cơ sở dữ liệu bằng cách cấu hình tường lửa và sử dụng kết nối SSL.
  • Xem xét quy trình sao lưu Thiết lập lịch sao lưu định kỳ để chuẩn bị đầy đủ cho các kịch bản mất dữ liệu.

Quản lý MySQL một cách đúng đắn và đạt được hoạt động trơn tru, không gặp rắc rối. Chúng tôi hy vọng bài viết này sẽ hỗ trợ bạn trên con đường đó.