2.10.4 & nbsp; Bảo mật tài khoản MySQL ban đầu
Quá trình cài đặt MySQL liên quan đến việc khởi tạo thư mục dữ liệu, bao gồm các bảng tài trợ trong lược đồ hệ thống mysql
xác định các tài khoản MySQL. Để biết chi tiết, xem Phần & NBSP; 2.10.1, Khởi tạo thư mục dữ liệu.
Phần này mô tả cách gán mật khẩu cho tài khoản root
ban đầu được tạo trong quy trình cài đặt MySQL, nếu bạn chưa làm như vậy.
Ghi chú
Phương tiện thay thế để thực hiện quá trình được mô tả trong phần này:
Trên Windows, bạn có thể thực hiện quy trình trong quá trình cài đặt với trình cài đặt MySQL [xem Phần & NBSP; 2.3.3, Trình cài đặt MySQL cho Windows trực tuyến].
Trên tất cả các nền tảng, phân phối MySQL bao gồm mysql_secure_installation, một tiện ích dòng lệnh tự động hóa phần lớn quá trình đảm bảo cài đặt MySQL.mysql_secure_installation, a command-line utility that automates much of the process of securing a MySQL installation.
Trên tất cả các nền tảng, MySQL Workbench có sẵn và cung cấp khả năng quản lý tài khoản người dùng [xem Chương & NBSP; 31, MySQL Workbench].
Mật khẩu có thể đã được gán cho tài khoản ban đầu trong những trường hợp này:
Trên Windows, các cài đặt được thực hiện bằng Trình cài đặt MySQL cung cấp cho bạn tùy chọn gán mật khẩu.
Cài đặt bằng Trình cài đặt MacOS tạo mật khẩu ngẫu nhiên ban đầu mà trình cài đặt hiển thị cho người dùng trong hộp thoại.
Cài đặt bằng các gói RPM tạo mật khẩu ngẫu nhiên ban đầu, được ghi vào nhật ký lỗi máy chủ.
Cài đặt bằng các gói Debian cung cấp cho bạn tùy chọn gán mật khẩu.
Để khởi tạo thư mục dữ liệu được thực hiện thủ công bằng cách sử dụng MySQLD - -initialize, MySQLD tạo mật khẩu ngẫu nhiên ban đầu, đánh dấu nó đã hết hạn và ghi nó vào nhật ký lỗi máy chủ. Xem Phần & NBSP; 2.10.1, Khởi tạo thư mục dữ liệu.mysqld --initialize, mysqld generates an initial random password, marks it expired, and writes it to the server error log. See Section 2.10.1, “Initializing the Data Directory”.
Bảng cấp mysql.user
xác định tài khoản người dùng MySQL ban đầu và các đặc quyền truy cập của nó. Cài đặt MySQL chỉ tạo ra một tài khoản Superuser 'root'@'localhost'
có tất cả các đặc quyền và có thể làm bất cứ điều gì. Nếu tài khoản root
có mật khẩu trống, việc cài đặt MySQL của bạn không được bảo vệ: Bất cứ ai cũng có thể kết nối với máy chủ MySQL dưới dạng root
mà không cần mật khẩu và được cấp tất cả các đặc quyền.without a password and be granted all privileges.
Tài khoản 'root'@'localhost'
cũng có một hàng trong bảng
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
3 cho phép cấp đặc quyền mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
4 cho mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
5, nghĩa là cho tất cả người dùng và tất cả các máy chủ. Điều này cho phép root
thiết lập người dùng proxy, cũng như ủy thác cho các tài khoản khác, cơ quan có thẩm quyền thiết lập người dùng proxy. Xem Phần & NBSP; 6.2.19, Người dùng Proxy Proxy. Để gán mật khẩu cho tài khoản MySQL root
ban đầu, hãy sử dụng quy trình sau. Thay thế
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
8 trong các ví dụ bằng mật khẩu mà bạn muốn sử dụng.Bắt đầu máy chủ nếu nó không chạy. Để biết hướng dẫn, xem Phần & NBSP; 2.10.2, Bắt đầu máy chủ.
Tài khoản root
ban đầu có thể có hoặc không có mật khẩu. Chọn bất kỳ quy trình nào sau đây áp dụng:
Nếu tài khoản
root
tồn tại với mật khẩu ngẫu nhiên ban đầu đã hết hạn, hãy kết nối với máy chủ dưới dạngroot
bằng cách sử dụng mật khẩu đó, thì hãy chọn mật khẩu mới. Đây là trường hợp nếu thư mục dữ liệu được khởi tạo bằng cách sử dụng MySQLD - -khởi động, theo cách thủ công hoặc sử dụng trình cài đặt không cung cấp cho bạn tùy chọn chỉ định mật khẩu trong quá trình cài đặt. Vì mật khẩu tồn tại, bạn phải sử dụng nó để kết nối với máy chủ. Nhưng vì mật khẩu đã hết hạn, bạn không thể sử dụng tài khoản cho bất kỳ mục đích nào ngoài việc chọn mật khẩu mới, cho đến khi bạn chọn một.mysqld --initialize, either manually or using an installer that does not give you the option of specifying a password during the install operation. Because the password exists, you must use it to connect to the server. But because the password is expired, you cannot use the account for any purpose other than to choose a new password, until you do choose one.Nếu bạn không biết mật khẩu ngẫu nhiên ban đầu, hãy xem nhật ký lỗi máy chủ.
Kết nối với máy chủ dưới dạng
root
bằng mật khẩu:$> mysql -u root -p Enter password: [enter the random root password here]
Chọn một mật khẩu mới để thay thế mật khẩu ngẫu nhiên:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
Nếu tài khoản
root
tồn tại nhưng không có mật khẩu, hãy kết nối với máy chủ dưới dạngroot
không sử dụng mật khẩu, sau đó gán mật khẩu. Đây là trường hợp nếu bạn khởi tạo thư mục dữ liệu bằng cách sử dụng MYSQLD--Initialize-Informed.mysqld --initialize-insecure.Kết nối với máy chủ dưới dạng
root
không sử dụng mật khẩu:$> mysql -u root --skip-password
Gán mật khẩu:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
Sau khi gán tài khoản root
mật khẩu, bạn phải cung cấp mật khẩu đó bất cứ khi nào bạn kết nối với máy chủ bằng tài khoản. Ví dụ: để kết nối với máy chủ bằng máy khách MySQL, hãy sử dụng lệnh này:mysql client, use this command:
$> mysql -u root -p
Enter password: [enter root password here]
Để tắt máy chủ với mysqladmin, hãy sử dụng lệnh này:mysqladmin, use this command:
$> mysqladmin -u root -p shutdown
Enter password: [enter root password here]