Mysql
 sql >> база данни >  >> RDS >> Mysql

Можете ли да увеличите max_allowed_packet от клиента?

Прочетох много статии, които обясняват как да постигна това, но стигнах до заключението, че те просто не са го тествали правилно. Моите заключения са:

  • max_allowed_packet на сървъра е твърдо кодирана горна граница. Можете да го промените за целия сървър като всяка друга настройка от страна на сървъра (конфигурационен файл или параметри на командния ред на сървъра), но не е възможно да го увеличите от клиента.

  • Някои клиенти (като официалната помощна програма за командния ред) позволяват да се зададе max_allowed_packet при връзка. Това е единственият начин действително да промените стойността от клиент (промяната на сесията или глобалните променливи няма ефект върху размера на обменяните пакети), но е полезен само ако искате да понижите то. Изпращането на пакети, по-големи от настройката на сървъра, пак ще задейства грешки, свързани с пакети, тъй като сървърът няма да ги приеме.

За да обобщим:

  1. Трябва да третирате max_allowed_packet като само за четене.
  2. Ако е твърде малък, трябва да го смените за целия сървър или да живеете с него.

Жалко е, че не мога да предоставя връзки към официална документация, но тази тема е слабо документирана.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неизвестно кодиране, докато използвате df.to_sql() за запис в MySQL с помощта на pyodbc

  2. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException Вмъкване на грешка в mysql

  3. Колоната rand() на подзаявката е преоценена за всеки повторен избор в MySQL 5.7/8.0 срещу MySQL 5.6

  4. H2 поддържа ли дефиниция за сортиране за една колона?

  5. 2 начина за връщане на редове, които съдържат буквено-цифрови знаци в MySQL