Trong MariaDB 10. 4 trở lên, mysql. bảng global_priv đã thay thế bảng mysql.user
và mysql.user
nên được coi là lỗi thời. Giờ đây, chế độ xem thành mysql.global_priv
được tạo để tương thích với các ứng dụng cũ hơn và các tập lệnh giám sát. Các công cụ mới được cho là sử dụng các bảng INFORMATION_SCHEMA
. Từ MariaDB 10. 4. 13, người dùng mariadb.sys
chuyên dụng được tạo làm người xác định chế độ xem. Trước đây, root
là định nghĩa, dẫn đến các vấn đề về đặc quyền khi tên người dùng này bị thay đổi [MDEV-19650]
Bảng mysql.user
chứa thông tin về người dùng có quyền truy cập máy chủ MariaDB và các đặc quyền toàn cầu của họ. Bảng có thể được truy vấn và mặc dù có thể cập nhật trực tiếp bảng nhưng tốt nhất nên sử dụng GRANT và CREATE USER để thêm người dùng và đặc quyền
Lưu ý rằng các đặc quyền MariaDB xảy ra ở nhiều cấp độ. Ví dụ, một người dùng có thể không được cấp đặc quyền create
ở cấp người dùng, nhưng vẫn có thể có quyền create
trên một số bảng hoặc cơ sở dữ liệu. Xem đặc quyền để có cái nhìn đầy đủ hơn về hệ thống đặc quyền MariaDB
Bảng mysql.user
chứa các trường sau
Biến trạng thái cho biết bảng mysql.user
chứa bao nhiêu hàng trong đó
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';3
Biến trạng thái, cho biết bảng mysql.user
chứa bao nhiêu hàng trong đó
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';5
Khi cột
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';6 trống, MariaDB mặc định xác thực tài khoản bằng plugin
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';7 hoặc
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';8. Nó quyết định cái nào dựa trên hàm băm được sử dụng trong giá trị cho cột
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';9. Khi không đặt mật khẩu hoặc khi 4. 1 hàm băm mật khẩu được sử dụng, [dài 41 ký tự], MariaDB sử dụng plugin
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';7. Plugin
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';8 được sử dụng với pre-4. 1 mật khẩu băm, [dài 16 ký tự]
MariaDB cũng hỗ trợ sử dụng các plugin xác thực thay thế. Khi cột
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';6 không trống đối với tài khoản nhất định, MariaDB sẽ sử dụng nó để xác thực các nỗ lực kết nối. Plugin cụ thể sau đó sử dụng giá trị của cột
CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';9 hoặc cột
mysql.user
4 để xác thực người dùngMột plugin xác thực cụ thể có thể được sử dụng cho một tài khoản bằng cách cung cấp mệnh đề mysql.user
5 cùng với các câu lệnh CREATE USER, ALTER USER hoặc GRANT
Ví dụ: câu lệnh sau sẽ tạo tài khoản xác thực bằng plugin xác thực PAM
CREATE USER foo2@test IDENTIFIED VIA pam;
Nếu plugin xác thực cụ thể sử dụng cột mysql.user
4 thì giá trị này cho tài khoản có thể được chỉ định sau từ khóa mysql.user
7 hoặc mysql.user
8. Ví dụ: plugin xác thực PAM chấp nhận một cái sẽ đi vào cột mysql.user
4 cho tài khoản
Tại Bobcares, chúng tôi cung cấp các giải pháp cho mọi truy vấn, lớn và nhỏ, như một phần của Dịch vụ quản lý máy chủ của chúng tôi
Hãy cùng xem Nhóm hỗ trợ của chúng tôi gần đây đã giúp một khách hàng như thế nào với Bảng 'mysql. lỗi người dùng không tồn tại trong Plesk
Cách giải quyết Bảng 'mysql. lỗi người dùng không tồn tại trong Plesk
Trong một số trường hợp, dịch vụ MySQL không khởi động được và thường dẫn đến thông báo lỗi trong thư mục /var/log/mysql/error. tệp nhật ký. Thông báo lỗi này giúp chúng tôi thu hẹp nguyên nhân gốc rễ của lỗi và đưa ra giải pháp thích hợp
Nếu chúng tôi gặp lỗi hiển thị bên dưới, điều đó cho thấy rõ ràng rằng cơ sở dữ liệu hệ thống MySQL bị hỏng hoặc bị thiếu
Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
Kỹ thuật viên hỗ trợ của chúng tôi đề xuất các bước sau để giải quyết lỗi cụ thể này
- Đầu tiên, chúng ta phải kết nối với máy chủ Plesk thông qua SSH
- Tiếp theo, chúng ta phải sửa đổi. cnf với sự trợ giúp của các bước sau
- Trên các bản phân phối dựa trên CentOS hoặc RHEL.
# vi /etc/my.cnf
- Trên các bản phân phối dựa trên Debian hoặc Ubuntu.
# vi /etc/mysql/my.cnf
- Trên các bản phân phối dựa trên CentOS hoặc RHEL.
- Sau đó, chúng tôi sẽ thêm dòng sau vào phần [mysqld] như bên dưới.
[mysqld] skip-grant-tables
- Tiếp theo, chúng tôi sẽ lưu các thay đổi và đóng. tập tin cnf
- Sau đó, chúng ta phải khởi động lại dịch vụ MySQL hoặc MariaDB bằng các lệnh này.
# systemctl restart mysql
# systemctl restart mariadb
- Sau đó, chúng ta sẽ chuyển sang thư mục chứa các kết xuất hàng ngày.
# cd /var/lib/psa/dumps
- Ở đây chúng tôi sẽ khôi phục cơ sở dữ liệu với sự trợ giúp của kết xuất hàng ngày mới nhất.
# zcat mysql.daily.dump.0.gz | sed -n '/-- Current Database: `mysql`/,/-- Current Database:*/p' | plesk db
- Tiếp theo, chúng ta phải loại bỏ chỉ thị bỏ qua cấp bảng khỏi bước 2
- Cuối cùng, chúng ta phải khởi động lại dịch vụ MySQL hoặc MariaDB bằng các lệnh này.
# systemctl restart mysql
# systemctl restart mariadb
[Tìm kiếm một giải pháp cho truy vấn khác? . ]
Phần kết luận
Tóm lại, các Kỹ sư hỗ trợ lành nghề tại Bobcares đã trình bày cách giải quyết Bảng 'mysql. lỗi người dùng không tồn tại trong Plesk
NGĂN CHẶN MÁY CHỦ CỦA BẠN KHỎI SỰ CỐ
Không bao giờ mất khách hàng vì tốc độ máy chủ kém. Hãy để chúng tôi giúp bạn
Các chuyên gia máy chủ của chúng tôi sẽ giám sát và bảo trì máy chủ của bạn 24/7 để nó luôn hoạt động nhanh và an toàn