Bảng người dùng Mysql không tồn tại

Trong MariaDB 10. 4 trở lên, mysql. bảng global_priv đã thay thế bảng mysql.usermysql.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.user4 để xác thực người dùng

Mộ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.user5 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.user4 thì giá trị này cho tài khoản có thể được chỉ định sau từ khóa mysql.user7 hoặc mysql.user8. Ví dụ: plugin xác thực PAM chấp nhận một cái sẽ đi vào cột mysql.user4 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

  1. Đầu tiên, chúng ta phải kết nối với máy chủ Plesk thông qua SSH
  2. 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
  3. 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
    <...>
  4. Tiếp theo, chúng tôi sẽ lưu các thay đổi và đóng. tập tin cnf
  5. 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
  6. 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
  7. Ở đâ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
  8. Tiếp theo, chúng ta phải loại bỏ chỉ thị bỏ qua cấp bảng khỏi bước 2
  9. 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

Người dùng @% có nghĩa là gì trong MySQL?

'%' nghĩa là bạn có thể đăng nhập vào cơ sở dữ liệu từ bất kỳ máy chủ nào được kết nối với cơ sở dữ liệu đó . Bạn cũng xác định máy chủ cục bộ của mình là máy chủ lưu trữ nếu bạn muốn truy cập cơ sở dữ liệu từ máy chủ cục bộ. để thay đổi mật khẩu của bạn. ĐẶT MẬT KHẨU CHO 'tôi'@'%' = MẬT KHẨU('letmein');

Tại sao cơ sở dữ liệu MySQL không kết nối?

thông thường có nghĩa là không có máy chủ MySQL nào đang chạy trên hệ thống hoặc bạn đang sử dụng tên tệp ổ cắm Unix hoặc số cổng TCP/IP không chính xác when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.

Làm cách nào để tạo cơ sở dữ liệu nếu không tồn tại trong MySQL?

Chúng ta có thể tạo cơ sở dữ liệu mới trong MySQL bằng cách sử dụng câu lệnh CREATE DATABASE với cú pháp bên dưới. .
TẠO CƠ SỞ DỮ LIỆU [NẾU KHÔNG TỒN TẠI] tên_cơ sở dữ liệu
[CHARACTER SET charset_name]
[THÔNG TIN_đối chiếu_tên];

Làm cách nào để sửa chữa một bảng trong MySQL?

MySQL Repair Table cho phép chúng tôi sửa chữa hoặc khắc phục bảng bị hỏng. Bảng sửa chữa trong MySQL chỉ cung cấp hỗ trợ cho các công cụ lưu trữ được chọn, không phải cho tất cả. .
SỬA CHỮA [NO_WRITE_TO_BINLOG. ĐỊA PHƯƠNG]
BẢNG tbl_name [, tbl_name]
[QUICK] [KÉO DÀI] [USE_FRM]