Hướng dẫn mysql password file - tệp mật khẩu mysql

Đầu tiên các bạn đều phải stop Mysql service ( Administrative Tools >>> Services )

Phương pháp 1 (skip grant tables)

  1. Mở Command Prompt (cmd) và tìm đến thư mục bin nơi cài đặt MySQL VD:C:/Program Files/Mysql/binbin nơi cài đặt MySQL VD:C:/Program Files/Mysql/bin
  2. Chạy lệnh
    mysqld.exe -u root –skip-grant-tables
  3. Tương tự như trên, bạn tiếp tục mở command prompt mới và nhập lệnh
    mysql

    cũng ngay tại đường dẫn thư mục cài đặt MySQL

    use mysql

    (Command này để kết nối MySQL server)

  4. Tiếp theo chúng ta sẽ khôi phục MySQL Root Password bằng lệnh thông dụng :
    UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
  5. Start lại MySQL service.

Phương pháp 2 (init file)

  1. Mở NotePad trên máy chủ và tạo ra một text file như sau:
    UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
    FLUSH PRIVILEGES;
  2. Lưu file trên vào một vị trí dễ nhớ (ví dụ như C: ) với tên: mysql-init.txtmysql-init.txt
  3. Mở Command Prompt (cmd) và khởi động MySQL với lựa chọn init-file ( lưu ý thay đổi đường dẫn của mysqld đến vị trí thực tế trên máy chủ VD:C:/Mysql/bin) :
    C:mysqlbinmysqld –init-file=C:\mysql-init.txt

    Nếu MySQL đã được cài đặt bằng cách sử dụng MySQL Installation Wizard , thì bạn có thể sử dụng lệnh sau :

    C:> "C:Program FilesMySQLMySQL Server 5.0binmysqld-nt.exe"
    --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"
    --init-file=C:\mysql-init.txt
  4. Stop MySQL ( từ Services ) và sau đó Start lại một lần nữa , đồng thời xóa file mysql-init.txt cho mục đích an toàn hệ thống ( vì file có lưu mật khẩu )mysql-init.txt cho mục đích an toàn hệ thống ( vì file có lưu mật khẩu )

Tip : trường hợp các bạn không thể xác định chính xác thư mục cài đặt MySQL thì hãy tìm kiếm tại Services Manager. Từ Administrative Tools >>> Services >>> Properties MySQL Server >>> Path to executable. : trường hợp các bạn không thể xác định chính xác thư mục cài đặt MySQL thì hãy tìm kiếm tại Services Manager. Từ Administrative Tools >>> Services >>> Properties MySQL Server >>> Path to executable.

Bây giờ bạn có thể đăng nhập bằng mật khẩu mới vừa thiết lập.

Chúc các bạn thành công!

Mặc định khi cài đặt và sử dụng các dịch vụ hoạt động cho hệ cơ sở dữ liệu như MySQL/MariaDB trên linux thì thường mật khẩu root sẽ được đề nghị là mật khẩu phức tạp và có độ khó nhất định. Điều này sẽ gây khó khăn trong việc thao tác với cơ sở dữ liệu do việc login cần phải nhập password cho mỗi thao tác trên dòng lệnh.

Hướng dẫn mysql password file - tệp mật khẩu mysql

Bài viết này sẽ hướng dẫn các bạn cách thực hiện login vào MySQL/MariaDB với quyền root cao nhất mà không cần nhập password. (login without root password on terminal)

Đặt mật khẩu cho tài khoản root trên MySQL

Trong trường hợp bạn mới cài đặt MySQL/MariaDB hoặc chưa đặt mật khẩu root. Sử dụng lệnh sau để cài đặt mật khẩu root:

mysqladmin -u root password RootPassword

Thay MatKhauRoot bằng mật khẩu cho tài khoản root mà bạn muốn đặt cho MySQL. Lưu ý mật khẩu này nên có độ phức tạp nhất định.

Trong trường hợp bạn đã cài đặt mật khẩu root nhưng không nhớ, các bạn có thể thực hiện reset root mysql.

Kết nối và sử dụng MySQL với tài khoản root không cần password

Để sử dụng được các câu lệnh #mysql (mysqldump, mysqlcheck, …) với tài khoản root mà không cần nhập password. Hoặc truy cập mysql không cần khai báo mật khẩu như các ví dụ dưới:

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 

Để thực hiện được như trên bạn chỉ cần tạo một file có tên là .my.cnf.my.cnf

File này sẽ được đặt tại /root/ với nội dung:

#vi /root/.my.cnf
[mysql]
user=root
password=RootPassword

+ user=root: có thể thay thế bằng một user khác thì khi gõ mysql user đó sẽ được gọi ra.

+ password=RootPassword: thay thế bằng mật khẩu tương ứng cho user đã được khai báo bên trên.

Thực hiện phân quyền cho file này là 0600 nhằm phù hợp với mục đích sử dụng.

mysql
0

Nếu gặp vấn đề trong quá trình thực hiện, các bạn có thể liên hệ ngay với đội ngũ hỗ trợ 7Host Việt Nam tại [email protected] hoặc website https://7host.vn

Bài viết sau đây hướng dẫn MySQL reset root password dễ dàng trong vòng ít hơn 10 phút. Tìm hiểu và làm theo các bước trong bài viết nhé các bạn.

Cách reset root password

Nếu bạn chưa từng gán một root password cho MySQL, server không yêu cầu password để kết nối quyền root. Tuy nhiên, việc này không an toàn. Nếu bạn đã gán một root password trước đó nhưng lại quên nó, bạn có thể gán một password mới. Sau đây là hướng dẫn MySQL reset root password, có thể áp dụng cho các hệ thống như Windows, Unix và các hệ thống giống như Unix. Cũng như các hướng dẫn chung áp dụng cho bất kỳ hệ thống nào.

Hướng dẫn mysql password file - tệp mật khẩu mysql
MySQL reset root password

MySQL reset root password: Windows

Trên Windows. hãy sử dụng quy trình sau cho MySQL reset root password

use mysql
0. Để đổi password cho một tài khoản
use mysql
1với một phần tên host khác, hãy sửa đổi các hướng dẫn để sử dụng tên host đó.

1 Đăng nhập vào hệ thống với quyền admin

2. Dừng server MySQL nếu nó đang chạy. Với một server đang chạy dịch vụ Windows, đi đến Services manager: Từ menu Start, chọn ControlPanel, AdministrativeTools, rồi Services. Tìm dịch vụ MySQL trong danh sách rồi dừng nó. Nếu server đang không chạy như một dịch vụ, bạn có thể cần sử dụng Task Manager để buộc dừng nó.Start, chọn Control Panel, Administrative Tools, rồi Services. Tìm dịch vụ MySQL trong danh sách rồi dừng nó. Nếu server đang không chạy như một dịch vụ, bạn có thể cần sử dụng Task Manager để buộc dừng nó.

3. Tạo một text file chứa lệnh gán password trên một dòng duy nhất. Thay thế password với password mà bạn muốn sử dụng.

mysql
1

4. Lưu file lại. Ví dụ này giả sử rằng bạn đặt tên bài là

use mysql
2.

5. Mở một cửa sổ console để vào command prompt: Từ menu Start, chọn Run, nhập cmd như lệnh cần chạy.Start, chọn Run, nhập cmd như lệnh cần chạy.

6. Khởi động server MySQL với biến số hệ thống

use mysql
3 được đặt để đặt tên file (lưu ý rằng dấu \ trong giá trị tùy chọn được nhân đôi):

mysql
2
Lưu ý:

Nếu bạn đã cài đặt MySQL ở vị trí khác, chỉnh sửa lệnh cd theo đó.

Server thực thi nội dung của file có tên được đặt bởi biến hệ thống

use mysql
4, thay đổi password tài khoản
use mysql
5

Để có server output xuất hiện trong cửa sổ console thay vì trong log file, thêm tùy chọn

use mysql
6 vào lệnh mysqld.

Nếu bạn cài đặt MySQL bằng trình cài đặt MySQL Installation Wizard, bạn có thể sẽ cần chỉ định tùy chọn

use mysql
7 Ví dụ:

mysql
3

Có thể tìm thấy cài đặt

use mysql
8 bằng Services Manager: Từ menu Start, chọn ControlPanel, AdministrativeTools, rồi Services. Tìm MySQL trong danh sách, chuột phải vào nó, rồi chọn Properties. Đường dẫn đến trường executable có chứa tùy chọn
use mysql
9Start, chọn Control Panel, Administrative Tools, rồi Services. Tìm MySQL trong danh sách, chuột phải vào nó, rồi chọn Properties. Đường dẫn đến trường executable có chứa tùy chọn
use mysql
9

7. Sau khi server đã khởi động thành công, xóa

use mysql
2.

Bây giờ bạn đã có thể kết nối với server MySQL dưới dạng root bằng password mới. Dừng server MySQL rồi restart nó bình thường. Nếu bạn chạy server dưới dạng dịch vụ, khởi động nó từ cửa sổ Windows Services. Nếu bạn khởi động server thủ đông, sử dụng bất kỳ lệnh nào bạn thường dùng.

Xem thêm: Cách kết nối mySQL với PHP đơn giảnCách kết nối mySQL với PHP đơn giản

MySQL reset root password: Unix và các hệ thống tương tự Unix

Trên Unix, hãy sử dụng quy trình sau để reset password cho tài khoản MySQL

use mysql
0. Để thay đổi password cho một tài khoản root với phần tên máy chủ khác, hãy sửa đổi các hướng dẫn để sử dụng tên máy chủ đó.

Các hướng dẫn giả sử rằng bạn khởi động server MySQL từ tài khoản đăng nhập Unix mà bạn thường sử dụng. Ví dụ: Nếu bạn chạy server bằng tài khoản đăng nhập MySQL, bạn nên đăng nhập dưới dạng MySQL trước khi sử dụng các hướng dẫn. Ngoài ra, bạn có thể đăng nhập dưới dạng root. Nhưng trong trường hợp này, bạn phải khởi động mysqld bằng tùy chọn

UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
2 Nếu bạn khởi động server dưới dạng root mà không cần sử dụng
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
3 server sẽ tạo các file
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
4-owned trong thư mục dữ liệu, chẳng hạn như log file. Và việc này có thể gây ra các sự cố liên quan đến quyền cho các khởi động server trong tương lai. Nếu nó xảy ra, bạn phải thay đổi quyền sở hữu của các tệp thành
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
5 hoặc xóa chúng.phải khởi động mysqld bằng tùy chọn
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
2 Nếu bạn khởi động server dưới dạng root mà không cần sử dụng
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
3 server sẽ tạo các file
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
4-owned trong thư mục dữ liệu, chẳng hạn như log file. Và việc này có thể gây ra các sự cố liên quan đến quyền cho các khởi động server trong tương lai. Nếu nó xảy ra, bạn phải thay đổi quyền sở hữu của các tệp thành
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
5 hoặc xóa chúng.

Các bước hướng dẫn:

1 Đăng nhập vào hệ thống dưới dạng người dùng Unix mà server MySQL chạy (ví dụ, mysql).

2. Dừng server MySQL nếu nó đang chạy. Xác định vị trí của file .pid chứa ID process của server. Vị trí và tên chính xác của file này phụ thuộc vào phân phối, tên host và cấu hình của bạn. Các vị trí phổ biến là

UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
6 Thông thường, tên file có phần mở rộng .pid và bắt đầu bằng mysql hoặc tên host hệ thống của bạn. Dừng server MySQL bằng cách gửi một kill bình thường (không phải kill -9) đến mysqld process. Sử dụng tên đường dẫn thực tế của file
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
7 trong lệnh sau:

mysql
4

Sử dụng backtick với lệnh cat. Điều này làm output của cat bị thay thế vào lệnh kill.

3. Tạo một text file có chứa lệnh gán password trên một dòng duy nhất. Thay password bằng password mà bạn muốn sử dụng

mysql
1

4. Lưu file lại. Ví dụ này giả sử bạn đặt tên cho file là

UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
8File chứa password, nên không cần phải lưu nó ở nơi có thể bị đọc bởi người khác. Nếu bạn chưa đăng nhập dạng
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
5 (dạng user mà server chạy), đảm bảo file có quyền cho phép
UPDATE user SET Password = PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User = ‘root’;
5 đọc nó.

5. Chạy server MySQL với biến hệ thống

UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
1được đặt để đặt tên file:

mysql
6

Server sẽ thực thi nội dung của file được được đặt tên bởi

use mysql
4 khi khởi động, thay đổi password tài khoản
use mysql
5

Các tùy chọn khác cũng có thể cần thiết, tùy thuộc vào cách bạn bình thường khởi động server của mình.

Ví dụ:

UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
4 có thể cần trước đối số
UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
5

6. Sau khi server đã khởi động thành công, xóa

UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
6

Bây giờ bạn có thể kết nối với server MySQL dưới dạng root bằng password mới. Dừng server và restart nó bình thường.

Hướng dẫn chung

Các phần trước cung cấp các hướng dẫn reset password dành riêng cho các hệ thống Windows, Unix và hệ thống tương tự Unix. Ngoài ra, bất kỳ nền tảng nào, bạn cũng có thể reset password bằng mysql client (nhưng kém an toàn hơn):

1 Dừng server MySQL nếu cần thiết, sau đó restart nó với tùy chọn

UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
7. Điều này cho phép bất cứ ai kết nối mà không cần password và với mọi đặc quyền. Và vô hiệu hóa các câu lệnh accoutn-managenent như
UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
8 và
UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
9 Bởi vì nó không an toàn, nếu server được khởi động với
UPDATE mysql.user SET Password=PASSWORD(‘mat_khau_moi_cua_ban’) WHERE User=’root’;
FLUSH PRIVILEGES;
7, nó cũng vô hiệu hóa các kết nối từ xa bằng cách bật
C:mysqlbinmysqld –init-file=C:\mysql-init.txt
1

2. Kết nối với server MySQL bằng mysql client; không cần password vì server được khởi động bằng

C:mysqlbinmysqld –init-file=C:\mysql-init.txt
2

mysql
7

3. Trong mysql client, ra lệnh cho server reload lại grant tables để câu lệnh account-management có thể hoạt động:

mysql
8

Sau đó, thay đổi password tài khoản

use mysql
5 Thay thế password bằng password bạn muốn dùng. Để thay đổi password cho một tài khoản root với một phần tên server khác, hãy sửa đổi các hướng dẫn để sử dụng tên host đó.

mysql
9

Bây giờ bạn có thể kết nối với server MySQL dưới dạng root bằng password mới. Dừng server và restart lại bình thường (không có tùy chọn

C:mysqlbinmysqld –init-file=C:\mysql-init.txt
4 và không bật
C:mysqlbinmysqld –init-file=C:\mysql-init.txt
5).

Lời kết

Hy vọng bài viết trên sẽ giúp bạn có thể MySQL reset root password một cách đơn giản. Nếu có thắc mắc hay đóng góp ý kiến, mời bạn để lại bình luận phía dưới bài viết này. Vietnix xin chân thành cảm ơn bạn!