MySQL là một cơ sở dữ liệu quan hệ nguồn mở, nổi tiếng với thiết lập dễ sử dụng và đơn giản trên các hệ điều hành Linux và Windows hiện đại. Trên cài đặt MySQL chưa được sửa đổi, tài khoản người dùng gốc không có mật khẩu. Điều này là vô cùng không an toàn!
Là một quản trị viên hệ thống, chúng tôi biết rằng cách dễ nhất để thỏa hiệp một hệ thống là sử dụng mật khẩu không thay đổi mặc định với các đặc quyền quản trị viên. Để đặt mật khẩu gốc cho tài khoản gốc:
$ mysql -u root --skip-password
Gán mật khẩu với lệnh sau:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_HERE';
May mắn thay, trong hầu hết các tình huống, các cài đặt dành riêng cho hệ điều hành của MySQL sẽ được đặt để tạo mật khẩu ngẫu nhiên cho người dùng gốc khi cơ sở dữ liệu được bắt đầu lần đầu tiên. Thay vì đặt mật khẩu, bạn sẽ thay đổi nó.
Các nền tảng khác nhau [Windows, Linux, v.v.] sẽ yêu cầu các phương thức hơi khác nhau để đặt lại mật khẩu.
Thay đổi mật khẩu người dùng gốc trên Linux
Đăng nhập vào hệ thống của bạn với tư cách là người dùng Unix mà máy chủ MySQL chạy như [ví dụ: MySQL]. Chúng sẽ hoạt động trên hầu hết các phân phối Linux [Ubuntu, Debian, Fedora, v.v.].
- Đăng nhập vào hệ thống mục tiêu của bạn bằng SSH hoặc Vỏ từ xa khác
- Dừng máy chủ MySQL nếu nó đang chạy. Hầu hết các lần, điều này được thực hiện bằng cách sử dụng hệ điều hành hệ điều hành của bạn [systemd, sysv init hoặc upstart].
# upstart
$ sudo service mysql stop
# SysV init
/etc/init.d/mysql-server stop
$ sudo service mysql stop
# SysV init
/etc/init.d/mysql-server stop
- Nếu bạn không chắc chắn hoặc bạn có cài đặt MySQL tùy chỉnh, bạn có thể dừng máy chủ MySQL bằng cách gửi một thuật ngữ bình thường đến quy trình MySQLD bằng cách sử dụng lệnh giết chết
$ killall mysqld
- Tạo một tệp văn bản chứa câu lệnh SQL gán mật khẩu trên một dòng
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
- Lưu tệp vào đĩa. Lưu ý: Đảm bảo người dùng MySQL [hoặc người dùng cơ sở dữ liệu đang chạy theo] có quyền truy cập đọc tệp.
- Bắt đầu máy chủ MySQL bằng cờ init_file CLI để đặt tên cho tệp bạn đã lưu ở trên.
$ mysqld --init-file=/home/me/mysql-init
- Khi máy chủ khởi động, nó sẽ thực thi nội dung của tệp được chỉ định ở trên sẽ thay đổi mật khẩu.
- Sau khi máy chủ bắt đầu thành công, bạn có thể xóa tệp SQL bạn đã tạo ở trên. Trong một dấu nhắc lệnh riêng hoặc với công cụ GUI mà bạn chọn, giờ đây 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.
- Dừng máy chủ MySQL [thường là Control-C] và khởi động MySQL, nó thường từ hệ điều hành của bạn hệ điều hành hệ thống init của bạn
#upstart
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_HERE';
0# SysV init
/etc/init.d/mysql-server stop
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_HERE';
0# SysV init
/etc/init.d/mysql-server stop
Thay đổi mật khẩu người dùng gốc trên Windows
Đặt lại mật khẩu gốc rất giống với quy trình được sử dụng trên Linux, với một vài điều chỉnh! Chúng tôi sẽ tạo một tệp init khác chứa câu lệnh đặt lại mật khẩu và khởi động máy chủ theo cách thủ công trong dấu nhắc lệnh của chúng tôi.
- Đăng nhập vào hệ thống của bạn thông qua RDP hoặc trên bảng điều khiển với tư cách là người dùng có quyền quản trị
- Dừng máy chủ MySQL nếu nó đang chạy
Đối với một máy chủ đang chạy như một dịch vụ Windows, hãy truy cập Trình quản lý dịch vụ: Từ menu Bắt đầu, chọn Bảng điều khiển, sau đó là các công cụ quản trị, sau đó là Dịch vụ. Tìm dịch vụ MySQL trong danh sách và dừng nó.
- Tạo một tệp văn bản chứa câu lệnh SQL gán mật khẩu trên một dòng
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
- Lưu tệp vào đĩa. Lưu ý: Đảm bảo người dùng MySQL [hoặc người dùng cơ sở dữ liệu đang chạy theo] có quyền truy cập đọc tệp.
- Bắt đầu máy chủ MySQL bằng cờ init_file CLI để đặt tên cho tệp bạn đã lưu ở trên.
- Khi máy chủ khởi động, nó sẽ thực thi nội dung của tệp được chỉ định ở trên sẽ thay đổi mật khẩu.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_HERE';
4mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_HERE';
5mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_HERE';
5
- Khi máy chủ khởi động, nó sẽ thực thi nội dung của tệp được chỉ định ở trên sẽ thay đổi mật khẩu.
- Sau khi máy chủ bắt đầu thành công, bạn có thể xóa tệp SQL bạn đã tạo ở trên. Trong một dấu nhắc lệnh riêng hoặc với công cụ GUI mà bạn chọn, giờ đây 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.
- Dừng máy chủ MySQL [thường là Control-C] và khởi động MySQL, nó thường từ hệ điều hành của bạn hệ điều hành hệ thống init của bạn
Thay đổi mật khẩu người dùng gốc trên Windows
Đặt lại mật khẩu gốc rất giống với quy trình được sử dụng trên Linux, với một vài điều chỉnh! Chúng tôi sẽ tạo một tệp init khác chứa câu lệnh đặt lại mật khẩu và khởi động máy chủ theo cách thủ công trong dấu nhắc lệnh của chúng tôi.
Đăng nhập vào hệ thống của bạn thông qua RDP hoặc trên bảng điều khiển với tư cách là người dùng có quyền quản trị
Dừng máy chủ MySQL nếu nó đang chạy
Đối với một máy chủ đang chạy như một dịch vụ Windows, hãy truy cập Trình quản lý dịch vụ: Từ menu Bắt đầu, chọn Bảng điều khiển, sau đó là các công cụ quản trị, sau đó là Dịch vụ. Tìm dịch vụ MySQL trong danh sách và dừng nó.
Lưu tệp vào đĩa.
Mở dấu nhắc lệnh [Bắt đầu → Chạy → CMD]