Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQLSTATE [42000]:Lỗi cú pháp hoặc vi phạm quyền truy cập:1055 Biểu thức số 3 của danh sách SELECT không nằm trong mệnh đề GROUP BY và chứa không được tổng hợp

Chạy:

sudo mysql -u root -p
mysql> SELECT @@global.sql_mode;

(Sau đó, tùy chọn sao chép đầu ra vào ghi chú của bạn ở đâu đó trong trường hợp bạn muốn hoàn nguyên về các cài đặt gốc đó sau này.)

thay đổi Chế độ SQL cho Phiên bản máy chủ MySQL của bạn:

mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

(Nếu bạn muốn quay trở lại, bạn có thể chạy một cái gì đó như mysql> SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; sử dụng giá trị bạn đã lưu.)

Một cách lâu dài hơn (sẽ tồn tại khi khởi động lại MySQL) sẽ là sử dụng các cấu hình MySQL. Truy cập /etc/mysql/my.cnf (hoặc bạn có thể cần chạy sudo vim /etc/mysql/mysql.conf.d/mysql.cnf ):

  • Thêm một phần cho [mysqld] và ngay bên dưới nó thêm câu lệnh sql_mode = "" hoặc cái gì đó như sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" .

  • Khởi động lại dịch vụ MySQL:

     sudo systemctl restart mysql
    

(hoặc sudo service mysql restart )

Xem thêm https://dba.stackexchange.com/a/113153/18098



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Chờ trong vài giây bằng cách sử dụng SELECT SLEEP ()

  2. MySQL:Cách lấy độ dài của văn bản trong một cột

  3. Cách sắp xếp theo dữ liệu bảng tổng hợp trong ORM Eloquent của Laravel

  4. GROUP và COUNT () độ tuổi trong CakePHP

  5. Đơn giản chỉ cần chuyển đổi số 5 chữ số trong cơ sở dữ liệu mysql thành một ngày