Chúng tôi sẽ không được nhắc đặt mật khẩu người dùng root khi cài đặt MySQL trên Ubuntu 18. 04, Do đó, người dùng root MySQL được tạo bằng mật khẩu trống. Nhưng người dùng hệ thống gốc có thể đăng nhập vào bảng điều khiển gốc MySQL mà không cần mật khẩu
Máy chủ MySQL trên Ubuntu 18. 04 sử dụng plugin Unix Socket để xác thực người dùng root MySQL theo mặc định. Ổ cắm Unix còn được gọi là plugin xác thực auth_socket xác thực người dùng bằng thông tin đăng nhập hệ điều hành. Điều đó có nghĩa là người dùng chỉ có thể đăng nhập Nếu tên người dùng hệ điều hành khớp với tên người dùng MySQL do khách hàng chỉ định
Nếu bạn đã đăng nhập vào tài khoản người dùng root Ubuntu, thì bạn có thể đăng nhập vào tài khoản root mysql mà không cần mật khẩu
Điều này cũng có nghĩa là chúng tôi không thể đăng nhập vào bảng điều khiển gốc MySQL từ người dùng Linux thông thường. Ví dụ: Người dùng Linux Greg không thể đăng nhập vào root MySQL bằng ứng dụng khách mysql
$ whoami
greg
$ mysql -u root
ERROR 1698 [28000]: Access denied for user 'root'@'localhost'
Tuy nhiên, nếu người dùng Greg có đặc quyền sudo, thì anh ta có thể chạy lệnh mysql với sudo và đăng nhập vào root mysql của Ubuntu mà không cần mật khẩu
sudo mysql
Vì vậy, từ quan điểm bảo mật, đây là một triển khai tốt vì hiện tại không có quyền truy cập root mysql bên ngoài tài khoản root của hệ thống Ubuntu Linux
Nhưng vì một số lý do, nếu bạn muốn đặt mật khẩu cho root mysql, hãy đăng nhập vào bảng điều khiển MySQL từ tài khoản hệ thống gốc và chạy lệnh sau
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
Ghi chú. ở đây mật khẩu mới là mật khẩu gốc, hãy thay thế bằng mật khẩu mạnh
Từ bây giờ, bạn cần nhập mật khẩu để đăng nhập với quyền root mysql và bất kỳ người dùng hệ thống nào cũng có thể đăng nhập vào tài khoản root nếu họ biết mật khẩu
mysql -u root -p
Lưu ý rằng, hướng dẫn này có thể không hoạt động đối với Máy chủ MariaDB, Đối với hướng dẫn MariaDB, hãy nhấp vào liên kết này
Đặt lại mật khẩu root MySQL Nếu bạn quên mật khẩu
Điều gì sẽ xảy ra nếu root MySQL của bạn đã có mật khẩu và bạn quên nó. Trong trường hợp đó, bạn phải đặt lại mật khẩu gốc của MySQL, Có một số cách chúng tôi có thể thực hiện việc này trên Ubuntu 18. 04
Phương pháp dễ nhất và nhanh nhất là đăng nhập vào máy chủ MySQL với tên debian-sys-maint và thay đổi mật khẩu gốc. Một phương pháp khác là sử dụng phương thức "--skip-grant-tables"
Tài khoản người dùng debian-sys-maint là tài khoản người dùng quản trị được tạo tự động khi cài đặt Máy chủ MySQL trên Ubuntu và người dùng này có toàn quyền truy cập vào tất cả các cơ sở dữ liệu
/etc/mysql/debian. cnf chứa mật khẩu MysQL cho tài khoản debian-sys-maint trên máy chủ Ubuntu của bạn
Bạn có thể sử dụng các thông tin đăng nhập này để đăng nhập vào máy chủ Ubuntu MySQL
Để đặt lại mật khẩu gốc mysql, trước tiên hãy đăng nhập vào bảng điều khiển MySQL với tư cách là người dùng debian-sys-maint
sudo mysql --defaults-file=/etc/mysql/debian.cnf
Chạy lệnh ALTER USER như sau để thay đổi mật khẩu gốc mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
Bây giờ bạn sẽ có thể đăng nhập vào bảng điều khiển gốc bằng mật khẩu mới
Như bạn có thể thấy việc đặt lại mật khẩu gốc của MySQL bằng người dùng debian-sys-maint rất đơn giản và dễ hiểu. Nhưng chỉ trong trường hợp nó không phù hợp với bạn, có một cách khác để thay đổi mật khẩu gốc bằng cách sử dụng --skip-grant-tables
Sử dụng --skip-grant-tables
Trong phương thức --skip-grant-tables, trước tiên chúng ta dừng máy chủ MySQL và khởi động máy chủ với tùy chọn --skip-grant-tables cho phép chúng ta đăng nhập vào bảng điều khiển gốc mà không cần mật khẩu. Sau đó, chúng tôi đăng nhập vào bảng điều khiển gốc và thay đổi mật khẩu. Vì vậy, đây là cách nó được thực hiện
Dừng máy chủ MySQL
sudo systemctl stop mysql.service
Tạo thư mục /var/run/mysqld/
sudo mkdir -p /var/run/mysqld/
sudo chown mysql:mysql /var/run/mysqld/
sudo chmod 755 /var/run/mysqld/
Khởi động máy chủ MySQL, chỉ lần này sử dụng lệnh mysqld với tùy chọn --skip-grant-tables
________số 8Đăng nhập vào bảng điều khiển MySQL bằng cách ban hành lệnh mysql
mysql
Chạy FLUSH PRIVILEGES để tải lại các khoản trợ cấp và Sử dụng lệnh ALTER USER để đặt lại mật khẩu của người dùng root
sudo mysql
0Thoát khỏi bảng điều khiển MySQL, hủy quy trình mysqld và khởi động mysql bằng lệnh systemctl
sudo mysql
1Bây giờ bạn sẽ có thể kết nối với MySQL root trên Ubuntu bằng mật khẩu mới
--skip-grant-tables khởi động máy chủ MySQL mà không cần mật khẩu cho tất cả người dùng và đó là lý do tại sao chúng tôi có thể đăng nhập mà không cần cung cấp mật khẩu
Tóm lược
Trong hướng dẫn này, chúng tôi đã học cách đặt lại mật khẩu gốc mysql trong Ubuntu 18. 04 bionic hải ly. Máy chủ MySQL trên Ubuntu 18. 04 sử dụng plugin Unix Socket để xác thực theo mặc định và do đó chỉ người dùng root Ubuntu mới có thể truy cập tài khoản root mysql
Chúng ta có thể đặt Mật khẩu mới bằng cách thay đổi phương thức xác thực thành mysql_native_password
Nếu quên mật khẩu, bạn có thể đăng nhập với tư cách người dùng debian-sys-maint và thay đổi mật khẩu hoặc sử dụng phương thức --skip-grant-tables
Tiếp theo là gì? . 04