B.3.3.2 & nbsp; Cách đặt lại mật khẩu gốc
Nếu bạn chưa bao giờ gán mật khẩu root
cho MySQL, máy chủ hoàn toàn không yêu cầu mật khẩu để kết nối là root
. Tuy nhiên, điều này là không an toàn. Để biết hướng dẫn về việc gán mật khẩu, xem Phần & NBSP; 2.10.4, Bảo mật tài khoản MySQL ban đầu.
Nếu bạn biết mật khẩu root
và muốn thay đổi nó, hãy xem Phần & NBSP; 13.7.1.1, Tuyên bố người dùng thay đổi, và Phần & NBSP; 13.7.1.10
Nếu bạn đã chỉ định mật khẩu root
trước đây nhưng đã quên nó, bạn có thể gán một mật khẩu mới. Các phần sau đây cung cấp các hướng dẫn cho các hệ thống Windows và UNIX và UNIX, cũng như các hướng dẫn chung áp dụng cho bất kỳ hệ thống nào.
Trên Windows, sử dụng quy trình sau để đặt lại mật khẩu cho tài khoản MySQL
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
3. Để thay đổi mật khẩu cho 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ủ đó.Đăng nhập vào hệ thống của bạn với tư cách là quản trị viên.
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, chọn, sau đó,. Tìm dịch vụ MySQL trong danh sách và dừng nó.
Nếu máy chủ của bạn không chạy như một dịch vụ, bạn có thể cần sử dụng trình quản lý tác vụ để buộc nó dừng lại.
Tạo một tệp văn bản chứa câu lệnh Ghi nhận mật khẩu trên một dòng. Thay thế mật khẩu bằng mật khẩu mà bạn muốn sử dụng.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Lưu các tập tin. Ví dụ này giả định rằng bạn đặt tên cho tệp
5.C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
Mở cửa sổ Bảng điều khiển để đến dấu nhắc lệnh: Từ menu, chọn, sau đó nhập CMD làm lệnh sẽ được chạy.cmd as the command to be run.
Bắt đầu máy chủ MySQL với biến hệ thống
6 được đặt để đặt tên cho tệp [lưu ý rằng dấu gạch chéo ngược trong giá trị tùy chọn được nhân đôi]:C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
Nếu bạn đã cài đặt MySQL đến một vị trí khác, hãy điều chỉnh lệnh CD cho phù hợp.cd command accordingly.
Máy chủ thực thi nội dung của tệp được đặt tên bởi biến hệ thống
6 khi khởi động, thay đổi mật khẩu tài khoảnC:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
3.C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
Để có đầu ra máy chủ xuất hiện trong cửa sổ Bảng điều khiển thay vì trong tệp nhật ký, hãy thêm tùy chọn
9 vào lệnh MySQLD.mysqld command.C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
Nếu bạn đã cài đặt MySQL bằng Trình hướng dẫn cài đặt MySQL, bạn có thể cần chỉ định tùy chọn
0. Ví dụ:C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
Cài đặt
0 thích hợp có thể được tìm thấy bằng cách sử dụng Trình quản lý dịch vụ: từ menu, sau đó, chọn, sau đó. Tìm dịch vụ MySQL trong danh sách, nhấp chuột phải vào và chọn tùy chọnC:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
2. TrườngC:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
3 chứa cài đặtC:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
0.C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
Sau khi máy chủ bắt đầu thành công, xóa
5.C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
Bây giờ bạn sẽ có thể kết nối với máy chủ MySQL dưới dạng root
bằng cách sử dụng mật khẩu mới. Dừng máy chủ MySQL và khởi động lại bình thường. Nếu bạn chạy máy chủ dưới dạng dịch vụ, hãy khởi động từ cửa sổ Windows Services. Nếu bạn khởi động máy chủ theo cách thủ công, hãy sử dụng bất kỳ lệnh nào bạn thường sử dụng.
Trên Unix, sử dụng quy trình sau để đặt lại mật khẩu cho tài khoản MySQL
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
3. Để thay đổi mật khẩu cho 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ả định rằng bạn khởi động máy chủ MySQL từ tài khoản đăng nhập UNIX mà bạn thường sử dụng để chạy nó. Ví dụ: nếu bạn chạy máy chủ bằng tài khoản đăng nhập
C:\> mysqld
--defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
--init-file=C:\\mysql-init.txt
9, bạn nên đăng nhập dưới dạng C:\> mysqld
--defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
--init-file=C:\\mysql-init.txt
9 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 bắt đầu MySQLD với tùy chọn $> kill `cat /mysql-data-directory/host_name.pid`
2. Nếu bạn khởi động máy chủ dưới dạng root
mà không sử dụng $> kill `cat /mysql-data-directory/host_name.pid`
2, máy chủ có thể tạo các tệp thuộc sở hữu ____ 9 trong thư mục dữ liệu, chẳng hạn như tệp nhật ký và chúng có thể gây ra sự cố liên quan đến quyền cho các khởi động máy chủ trong tương lai. Nếu điều đó xảy ra, bạn phải thay đổi quyền sở hữu của các tệp thành C:\> mysqld
--defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
--init-file=C:\\mysql-init.txt
9 hoặc xóa chúng.must start mysqld with the $> kill `cat /mysql-data-directory/host_name.pid`
2 option. If you start the server as root
without using
$> kill `cat /mysql-data-directory/host_name.pid`
2, the server may create root
-owned files in the data directory, such as log files, and these may cause permission-related problems for future server startups. If that happens, you must either change the ownership of the files to C:\> mysqld
--defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
--init-file=C:\\mysql-init.txt
9 or remove them. Đă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ụ:
9].C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
Dừng máy chủ MySQL nếu nó đang chạy. Xác định vị trí tệp
8 chứa ID quy trình của máy chủ. Vị trí chính xác và tên của tệp này phụ thuộc vào phân phối, tên máy chủ và cấu hình của bạn. Các vị trí phổ biến là$> kill `cat /mysql-data-directory/host_name.pid`
9,$> kill `cat /mysql-data-directory/host_name.pid`
0 vàALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
1. Nói chung, tên tệp có phần mở rộngALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
8 và bắt đầu bằng$> kill `cat /mysql-data-directory/host_name.pid`
3 hoặc tên máy chủ của hệ thống của bạn.ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Dừng máy chủ MySQL bằng cách gửi
4 bình thường [không phảiALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
5] đến quy trình MySQLD. Sử dụng tên đường dẫn thực tế của tệpALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
8 trong lệnh sau:mysqld process. Use the actual path name of the$> kill `cat /mysql-data-directory/host_name.pid`
8 file in the following command:$> kill `cat /mysql-data-directory/host_name.pid`
$> kill `cat /mysql-data-directory/host_name.pid`
Sử dụng Backticks [không phải dấu ngoặc kép] với lệnh
7. Những điều này khiến đầu ra củaALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
7 được thay thế vào lệnhALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
4.ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Tạo một tệp văn bản chứa câu lệnh Ghi nhận mật khẩu trên một dòng. Thay thế mật khẩu bằng mật khẩu mà bạn muốn sử dụng.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Lưu các tập tin. Ví dụ này giả định rằng bạn đặt tên cho tệp
0. Tệp chứa mật khẩu, vì vậy không lưu nó ở nơi có thể đọc bởi những người dùng khác. Nếu bạn không đăng nhập dưới dạng$> mysqld --init-file=/home/me/mysql-init &
9 [người dùng mà máy chủ chạy như], hãy đảm bảo rằng tệp có quyền cho phépC:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
9 đọc nó.C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
Bắt đầu máy chủ MySQL với biến hệ thống
6 được đặt để đặt tên cho tệp:C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
$> mysqld --init-file=/home/me/mysql-init &
Máy chủ thực thi nội dung của tệp được đặt tên bởi biến hệ thống
6 khi khởi động, thay đổi mật khẩu tài khoảnC:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
3.C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
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 thường khởi động máy chủ của mình. Ví dụ:
0 có thể cần thiết trước đối sốC:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
6.C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
Sau khi máy chủ bắt đầu thành công, xóa
0.$> mysqld --init-file=/home/me/mysql-init &
Bây giờ bạn sẽ có thể kết nối với máy chủ MySQL dưới dạng root
bằng cách sử dụng mật khẩu mới. Dừng máy chủ và khởi động lại bình thường.
Các phần trước cung cấp các hướng dẫn khởi động mật khẩu dành riêng cho các hệ thống Windows và UNIX và UNIX. Ngoài ra, trên bất kỳ nền tảng nào, bạn có thể đặt lại mật khẩu bằng máy khách MySQL [nhưng cách tiếp cận này kém an toàn]:mysql client [but this approach is less secure]:
Dừng máy chủ MySQL nếu cần thiết, sau đó khởi động lại với tùy chọn
0. Điều này cho phép bất kỳ ai kết nối mà không cần mật khẩu và với tất cả các đặc quyền và vô hiệu hóa các câu lệnh quản lý tài khoản như$> mysql
1 và$> mysql
2. Vì điều này là không an toàn, nếu máy chủ được bắt đầu với tùy chọn$> mysql
0, nó cũng vô hiệu hóa các kết nối từ xa bằng cách bật$> mysql
4.$> mysql
Kết nối với máy chủ MySQL bằng máy khách MySQL; Không cần mật khẩu vì máy chủ đã được bắt đầu với
0:mysql client; no password is necessary because the server was started with$> mysql
0:$> mysql
$> mysql
Trong máy khách
9, hãy nói với máy chủ tải lại các bảng cấp để các báo cáo quản lý tài khoản hoạt động:C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
mysql> FLUSH PRIVILEGES;
Sau đó thay đổi mật khẩu tài khoản
3. Thay thế mật khẩu bằng mật khẩu mà bạn muốn sử dụng. Để thay đổi mật khẩu cho tài khoảnC:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
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ủ đó.mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Bây giờ bạn sẽ có thể kết nối với máy chủ MySQL dưới dạng root
bằng cách sử dụng mật khẩu mới. Dừng máy chủ và khởi động lại bình thường [không có tùy chọn
$> mysql
0 và không bật biến hệ thống $> mysql
4].