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

PHP mysql_connect зададе wait_timeout

Не е добре да се задържате за DB връзки за дълги периоди, защото DB предоставя само фиксиран брой връзки във всеки един момент; ако използвате такъв от векове, това означава, че вашата DB има по-малък капацитет да се справя с други заявки, дори ако всъщност не правите нищо с тази връзка.

Предлагам да прекъснете връзката, ако програмата е приключила да я използва за момента, и да се свържете отново, когато дойде време да свършите повече работа с DB.

В допълнение, това решение ще защити вашата програма от евентуално прекъсване на базата данни, т.е. ако трябва да рестартирате вашия DB сървър (това се случва дори в най-добре поддържаната мрежа). Ако поддържате връзката жива (т.е. DB ping според другите отговори), тогава събитие като това ще ви остави с точно същия проблем, който имате сега. С правилно управлявана връзка, която се прекратява, когато не е необходима, можете безопасно да оставите своя демон да работи, дори ако сте планирали престой на вашата DB; стига да остане неактивен през цялото време, не е нужно да е по-мъдро.

(като настрана, аз също бих поставил под въпрос мъдростта на писането на PHP програма, която работи непрекъснато; PHP е проектиран за краткотрайна заявка в мрежата. Може да е в състояние да изпълнява дългосрочни програми демон, но има по-добри инструменти за работата)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обработка на преходни неизправности в .net core 2.1 MVC за MySQL база данни

  2. Клауза IN не използва индекс

  3. MySQL / PHP Съединяване на таблици без винаги да има обща колона

  4. DateTime група по дата и час

  5. Объркано SQL изключение за JDBC