Mã lỗi trong mysql là gì?

Danh sách mã lỗi trong Mysql

Cách sử dụng

$ npm install --save mysql-error-codes

bản đánh máy

import { MysqlErrorCodes } from 'mysql-error-codes';

console.log( MysqlErrorCodes.ER_DUP_ENTRY );

Javascript (nút)

const MysqlErrorCodes = require('mysql-error-codes')

console.log(MysqlErrorCodes.ER_DUP_ENTRY);

Giấy phép

MIT

Tham khảo thông báo lỗi

được viết bởi Chintan Mehta, Ankit Bhavsar, Subhash Shah và Hetal Oza. Cuốn sách này cung cấp các mẹo và thủ thuật để giải quyết các vấn đề bạn có thể gặp phải khi quản lý giải pháp MySQL. [/hộp]

Trong khi sử dụng MySQL 8, có thể có một số trường hợp bạn không thể truy cập hoặc sử dụng MySQL đúng cách. Những tình huống này có thể rất khó chịu, nhưng có thể dễ dàng khắc phục. Tuy nhiên, trước khi bạn tìm kiếm giải pháp, bạn phải biết vấn đề. Dưới đây là một số lỗi phổ biến bạn có thể gặp phải khi sử dụng MySQL 8

1. Truy cập bị từ chối

MySQL cung cấp hệ thống đặc quyền xác thực người dùng kết nối từ máy chủ và liên kết người dùng với các đặc quyền truy cập trên cơ sở dữ liệu. Các đặc quyền bao gồm CHỌN, CHÈN, CẬP NHẬT và XÓA và có thể xác định người dùng ẩn danh và cấp đặc quyền cho các chức năng cụ thể của MySQL, chẳng hạn như LOAD DATA INFILE and administrative operations. The access denied error may occur because of many causes. In many cases, the problem is caused because of MySQL accounts that the client programs use to connect with the MySQL server with permission from the server.


2. Mất kết nối với máy chủ MySQL

Lỗi mất kết nối với máy chủ MySQL có thể xảy ra do một trong ba nguyên nhân có thể được giải thích trong phần này. Một lý do tiềm ẩn gây ra lỗi là kết nối mạng gặp sự cố

Điều kiện mạng nên được kiểm tra nếu đây là một lỗi thường xuyên. Nếu một thông báo lỗi như “Mất kết nối với máy chủ MySQL” xuất hiện trong khi truy vấn cơ sở dữ liệu, thì chắc chắn rằng lỗi đã xảy ra do sự cố kết nối mạng

Biến hệ thống connection_timeout xác định số giây mà mysqld server waits for a connection packet before connection timeout response. Infrequently, this error may occur when a client is trying for the initial connection to the server and the connection_timeout value is set to a few seconds. In this case, the problem can be resolved by increasing the connection_timeout value based on the the distance and connection speed. HIỂN THỊ TRẠNG THÁI TOÀN CẦU NHƯ THẾ NÀO Aborted_connects có thể được sử dụng để xác định xem chúng tôi có . Có thể nói chắc chắn rằng việc tăng giá trị connection_timeout là giải pháp nếu thông báo lỗi chứa gói ủy quyền đọc. Có thể vấn đề có thể gặp phải do các giá trị Đối tượng lớn nhị phân (BLOB) lớn hơn max_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packetmax_allowed_packet. This can cause a lost connection to the MySQL server error with clients. If the ER_NET_PACKET_TOO_LARGE xảy ra, điều đó xác nhận rằng giá trị max_allowed_packet nên .

3. Mật khẩu bị lỗi khi nhập sai

Máy khách MySQL yêu cầu mật khẩu khi chương trình máy khách được gọi với tùy chọn — mật khẩu hoặc -p mà không có giá trị mật khẩu. Sau đây là lệnh

> mysql -u user_name -p

Enter password:

Trên một số hệ thống, mật khẩu có thể hoạt động tốt khi được chỉ định trong tệp tùy chọn hoặc trên dòng lệnh. Nhưng nó không hoạt động khi được nhập tương tác trên Dấu nhắc lệnh tại Nhập mật khẩu. lời nhắc. Điều này xảy ra do thư viện do hệ thống cung cấp để đọc mật khẩu giới hạn giá trị mật khẩu ở một số lượng nhỏ ký tự (thường là tám). Đây là sự cố với thư viện hệ thống chứ không phải với MySQL. Để giải pháp thay thế cho vấn đề này, hãy thay đổi mật khẩu MySQL thành một giá trị có từ tám ký tự trở xuống hoặc lưu trữ mật khẩu trong tệp tùy chọn.

4. Máy chủ host_name bị chặn

Nếu máy chủ mysqld nhận được quá nhiều yêu cầu kết nối từ máy chủ bị gián đoạn giữa chừng, sẽ xảy ra lỗi sau.

Host 'host_name' is blocked because of many connection errors.

Unblock with 'mysqladmin flush-hosts'

Biến hệ thống max_connect_errors xác định số lượng yêu cầu kết nối bị gián đoạn liên tiếp được cho phép. Sau khi có max_connect_errorsyêu cầu không thành công mà không có kết nối thành công, mysqld cho rằng đã xảy ra sự cốvà chặn máy chủ tiếp tục . FLUSH HOSTS statement or mysqladmin flush-hosts command is issued.

mysqld chặn máy chủ sau 100 lỗi kết nối theo mặc định. Nó có thể được điều chỉnh bằng cách đặt giá trị max_connect_errors khi khởi động máy chủ, như sau.

> mysqld_safe --max_connect_errors=10000

Giá trị này cũng có thể được thiết lập trong thời gian chạy, như sau

mysql> SET GLOBAL max_connect_errors=10000;

Trước tiên, cần kiểm tra xem có vấn đề gì xảy ra với các kết nối TCP/IP từ máy chủ nếu host_name bị chặn nhận lỗi cho một máy chủ cụ thể. Việc tăng giá trị của biến max_connect_errors sẽ không hữu ích nếu mạng gặp sự cố.

5. Quá nhiều kết nối

Lỗi này cho biết rằng tất cả các kết nối khả dụng đang được sử dụng cho các kết nối máy khách khác.  max_connections là biến hệ thống kiểm soát số lượng kết nối đến máy chủ . Giá trị mặc định cho số lượng kết nối tối đa là 151. Chúng ta có thể đặt giá trị lớn hơn 151 cho biến hệ thống max_connections để hỗ trợ nhiều hơn connections than 151.

Quy trình máy chủ mysqld thực sự cho phép nhiều hơn một giá trị max_connections (max_connections + 1) máy khách kết nối. Một kết nối bổ sung được giữ dành riêng cho các tài khoản có CONNECTION_ADMIN hoặc SUPER . Đặc quyền có thể được privilege. The privilege can be cấp cho quản trị viên có quyền truy cập vào QUÁ TRÌNH đặc quyền. Với quyền truy cập này, quản trị viên có thể kết nối với máy chủ bằng kết nối dành riêng. Họ có thể thực thi lệnh SHOW PROCESSLIST để chẩn đoán sự cố ngay cả khi mức tối đa number of client connections is exhausted.

6. hết bộ nhớ

Nếu mysql không có đủ bộ nhớ để lưu trữ toàn bộ yêu cầu của truy vấn được đưa ra bởi chương trình máy khách MySQL, thì máy chủ sẽ đưa ra lỗi sau.

mysql: Out of memory at line 42, 'malloc.c'

mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)

ERROR 2008: MySQL client ran out of memory

Để khắc phục sự cố, trước tiên chúng tôi phải kiểm tra xem truy vấn có đúng không. Chúng ta có muốn truy vấn trả về nhiều hàng như vậy không? . Nếu truy vấn đúng và không cần sửa, chúng ta có thể kết nối mysql bằng tùy chọn –nhanh . Sử dụng tùy chọn –quick dẫn đến mysql_use_result() hàm C API . Chức năng tăng thêm tải cho máy chủ và giảm tải cho máy khách. fetching the result set. The function adds more load on the server and less load on the client.

7. Gói quá lớn

Gói truyền thông là một trong những gói sau

  • Một câu lệnh SQL duy nhất mà máy khách MySQL gửi đến máy chủ MySQL
  • Một hàng duy nhất được gửi đến máy khách MySQL từ máy chủ MySQL
  • Sự kiện nhật ký nhị phân được gửi từ máy chủ sao chép tới nô lệ sao chép

Kích thước gói 1 GB là kích thước gói lớn nhất có thể được truyền đến hoặc từ máy chủ hoặc máy khách MySQL 8. Máy chủ hoặc máy khách MySQL đưa ra ER_NET_PACKET_TOO_LARGE lỗi và đóng kết nối nếu nó nhận được một gói lớn hơn max_allowed_packet byte.

Kích thước max_allowed_packet mặc định là 16 MB cho chương trình máy khách MySQL. Có thể sử dụng lệnh sau để đặt giá trị lớn hơn.

________số 8

Giá trị mặc định cho máy chủ MySQL là 64 MB. Xin lưu ý rằng không có hại gì khi đặt giá trị lớn hơn cho biến hệ thống này vì bộ nhớ bổ sung được phân bổ khi cần.

8. bàn đã đầy

Lỗi đầy bảng xảy ra ở một trong các điều kiện sau

  • Đĩa đầy
  • Bảng đã đạt đến kích thước tối đa

Kích thước bảng tối đa thực tế trong cơ sở dữ liệu MySQL có thể được xác định bởi các ràng buộc do hệ điều hành áp đặt đối với kích thước tệp

9. Không thể tạo/ghi vào tệp

Điều này chỉ ra rằng MySQL không thể tạo tệp tạm thời trong thư mục tạm thời cho tập kết quả nếu chúng tôi gặp lỗi sau khi thực hiện truy vấn

Can't create/write to file 'sqla3fe_0.ism'

Giải pháp khả thi cho lỗi này là khởi động máy chủ mysqld bằng –tmpdir option. The following is the command:

import { MysqlErrorCodes } from 'mysql-error-codes';

console.log( MysqlErrorCodes.ER_DUP_ENTRY );
0

10. Lệnh không đồng bộ

Nếu các chức năng máy khách được gọi sai thứ tự, thì sẽ nhận được lỗi không đồng bộ hóa các lệnh. Nó có nghĩa là lệnh không thể được thực hiện trong mã máy khách. Ví dụ: nếu chúng tôi thực thi mysql_use_result() và thử thực hiện một truy vấn khác trước khi thực hiện mysql_free_result(), this error may occur. It may also happen if we execute two queries that return a result set without calling the mysql_use_result() hoặc mysql_store_result( . functions in between.

11. Bỏ qua người dùng

Nhận được lỗi sau khi tìm thấy tài khoản trong bảng người dùng có mật khẩu không hợp lệ trên mysqld server startup or when the server reloads the grant tables:

import { MysqlErrorCodes } from 'mysql-error-codes';

console.log( MysqlErrorCodes.ER_DUP_ENTRY );
1

Kết quả là tài khoản bị hệ thống quyền MySQL bỏ qua. Để khắc phục sự cố, chúng ta nên chỉ định một mật khẩu hợp lệ mới cho tài khoản.

12. Bảng tbl_name không tồn tại

Lỗi sau chỉ ra rằng một bảng được chỉ định không tồn tại trong cơ sở dữ liệu mặc định

import { MysqlErrorCodes } from 'mysql-error-codes';

console.log( MysqlErrorCodes.ER_DUP_ENTRY );
2

Trong một số trường hợp, người dùng có thể tham khảo bảng không chính xác. Có thể là do máy chủ MySQL sử dụng các thư mục và tệp để lưu trữ các bảng cơ sở dữ liệu. Tùy thuộc vào quản lý tệp của hệ điều hành, cơ sở dữ liệu và tên bảng có thể phân biệt chữ hoa chữ thường.

Đối với các hệ thống tệp không phân biệt chữ hoa chữ thường, chẳng hạn như Windows, các tham chiếu đến một bảng đã chỉ định được sử dụng trong một truy vấn phải sử dụng cùng một chữ hoa chữ thường.

Ngoài những lỗi này, bạn có thể gặp lỗi máy chủ MySQL 8 như vấn đề về quyền hoặc lỗi máy khách như vấn đề với giá trị NULL. Để biết cách xử lý chúng, bạn có thể xem cuốn sách này Hướng dẫn dành cho quản trị viên MySQL 8.

Đọc tiếp

mysql 8. 0 thường có sẵn với các tính năng bổ sung

Website cơ bản sử dụng Node. js và cơ sở dữ liệu MySQL

 

  • THẺ
  • Công cụ & Khung
  • Phân tích dữ liệu lớn
  • Trích sách
  • hướng dẫn
  • kinh doanh thông minh
  • mysql 8

Đăng lại

Facebook

Twitter

liên kết

Amey Varangaonkar

Người say mê khoa học dữ liệu. Một khoa học viễn tưởng khổng lồ và người hâm mộ Manchester United. Thích đọc, viết và nghe nhạc

Làm cách nào để kiểm tra mã lỗi trong MySQL?

Để biết danh sách mã lỗi MySQL, tên ký hiệu và giá trị SQLSTATE, hãy xem https. // nhà phát triển. mysql. com/doc/refman/8. 0/vi/máy chủ thông báo lỗi. html . Bạn cũng có thể kiểm tra mysqld_error. h và sql_state. h trong thư mục bao gồm của bản phân phối nguồn MySQL.

Lỗi trong MySQL là gì?

Mất kết nối với máy chủ MySQL .

Mã lỗi 1064 trong MySQL là gì?

Lỗi MySQL 1064 là một lỗi cú pháp . Điều này có nghĩa là lý do có vấn đề là do MySQL không hiểu bạn đang yêu cầu nó làm gì. Tuy nhiên, có nhiều tình huống khác nhau có thể dẫn đến loại thông tin sai lệch này giữa bạn và cơ sở dữ liệu của bạn.

Mã lỗi 1146 trong MySQL là gì?

Lỗi này xảy ra khi một bảng không tồn tại trong cơ sở dữ liệu WHMCS MySQL, nhưng quá trình cập nhật cần thực hiện thay đổi đối với bảng đó .