Lỗi khi dùng quyền root để update mysql năm 2024
Để thực hiện bạn cần ssh vào máy chủ với quyền root. Nếu bạn chưa biết cách SSH bạn có thể thực hiện theo hướng dẫn bên dưới nhé. Show Bước 2: Điều chỉnh file cấu hình mysql
Đầu tiên bạn hãy mở file my.cnf lên. Sau đó tìm giá trị bind-address = 127.0.0.1, với dòng này có nghĩa là máy chủ sẽ chỉ tìm kiếm các kết nối cục bộ. Và bạn cần thay đổi giá trị này bằng IP cố định của bạn, hoặc sử dụng *, :: hoặc 0.0.0.0 để cho phép tất cả các kết nối. Bước 3: Cấu hình Firewall
UFW là công cụ tường lửa mặc định trong Ubuntu, bạn cần mở cho phép IP hoạt động trên port 3306
FirewallD là ứng dụng firewall mặc định của CentOS. Bạn cần tạo một zone mới để cho phép IP truy cập.
iptables có sẵn trên hầu hết các bản phân phối mặc định của Linux. Bạn sử dụng lệnh sau để mở
Bước 4: Bật Remote MySQL ServerTrong bài viết này mình sẽ chủ thích một số dòng và bạn hãy thay đổi bằng thông tin của bạn.
Trường hợp 1: Cho phép kết nối với tất cả IP và Tất cả UserỞ trường hợp này sẽ cho phép bạn kết nối với tất cả IP access vào và sẽ nhìn thấy tất cả các Database trên đó. Trường hợp này ít dùng vì mang tính nguy hiểm do access được tất cả DB Trường hợp 2: Cho phép kết nối với tất cả IP với Database nhất địnhTrường hợp này thường sử dụng nhiều. Khi bạn sử dụng trường hợp này thì tất cả IP sẽ access được và chỉ access vào duy nhất Database chỉ định khi remote qua user/passwd
Trường hợp 3: Cho phép kết nối với IP và Database cố địnhTrường hợp này khi bạn cấu hình chỉ định thì chỉ duy nhất IP bạn chỉ định mới được quyền access vào. Với các IP khác sẽ không thể truy cập vào được. Sau mỗi thiết lập bạn cần khởi động lại dịch vụ MySQL để áp dụng thay đổi. Bạn hãy khởi động với lệnh sau Qúy khách có thể thực hiện việc liệt kê các danh sách các user đã được tạo ra trong dịch vụ MySQL bằng cách query thông tin đến table của MySQL có tên là “mysql.users” và bạn cũng hoàn toàn có thể liệt kê các quyền hạn mà từng user được phép tương tác với database cụ thể trong MySQl. 1. Liệt kê các user đang có trong dịch vụ MySQL – Giả sử trong hệ thống dịch vụ chỉ có 3 user tương ứng 3 host khác nhau. mysql> SELECT user, host FROM mysql.user; +--+----+
rows in set (0.00 sec) mysql> SELECT user, host FROM mysql.user; +--+----+
3 rows in set (0.00 sec) 2. Liệt kê các quyền hạn được cấp cho 1 user – Trong dịch vụ MySQL, bạn có thể sử dụng lệnh “SHOW GRANTS” để hiển thị thông tin về phân quyền được gán cho user. Lệnh này sẽ hiển thị đầy đủ những quyền hạn nào đã được gán cho user trước đó được gán quyền bằng lệnh “GRANT”. – Để coi được quyền của 1 user khác, bạn phải có quyền sử dụng “SELECT” trong Cơ Sở Dữ Liệu MySQL. Cấu trúc câu lệnh SHOW GRANTS FOR [username]@[host] SHOW GRANTS FOR [username]@[host] Chú thích : – username : tên của user mysql mà bạn muốn hiển thị thông tin. – host : gồm “%”, “127.0.0.1” và “localhost” . Các giá trị này đại diện cho cổng kết nối tới CSDL của dịch vụ như “127.0.0.1” thì kết nối thông qua socket 127.0.0.1:3306 ; “localhost” thì thông qua socket pipe ; % thì có thể kết nối từ bất cứ IP local hay public hoặc socket đều được. Phần này quý khách sẽ cần coi lại ở phần khởi tạo User trong MySQL. Ví dụ 1: mysql> SHOW GRANTS FOR 'cuongquach'@'localhost'; +-------+
mysql> SHOW GRANTS FOR 'cuongquach'@'localhost'; +-------+
Ví dụ 2: mysql> SHOW GRANTS FOR 'root'@'%'; +------+
mysql> SHOW GRANTS FOR 'root'@'%'; +------+
– Quý khách cũng có thể sử dụng cách khác để liệt kê quyền hạn của các user bằng cách query table “user_privileges” nằm trong CSDL “information_schema“. mysql> SELECT * FROM information_schema.user_privileges; +----+---+-----+--+
mysql> SELECT * FROM information_schema.user_privileges; +----+---+-----+--+
Như vậy quý khách đã xong phần hướng dẫn này chúc quý khách thành công. |