程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql的1135錯誤解決方法

mysql的1135錯誤解決方法

編輯:關於MYSQL數據庫

       mysql的1135的報錯信息如下:

      SQLSTATE[HY000] [1135] Can't create a new thread (errno 12); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug

      解決方案:

      修改my.ini,增加2個參數:

      innodb_thread_sleep_delay=40

      wait_timeout=100

      interactive_timeout=100

      重啟MYSQL服務器

      以上的問題主要是線程數太多:

      1.是連接數太多

      2.是每個線程允許的生命周期太長,就跟http的timeout一樣。

      LINUX下檢查連接數的方法如下:

      ps -aux | grep mysql

      【補充知識】================================

      MySQL中的配置參數interactive_timeout和wait_timeout

      (1)interactive_timeout:

      參數含義:服務器關閉交互式連接前等待活動的秒數。交互式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。

      參數默認值:28800秒(8小時)

      (2)wait_timeout:

      參數含義:服務器關閉非交互連接之前等待活動的秒數。

      在線程啟動時,根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值,取決於客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)。

      參數默認值:28800秒(8小時)

      MySQL服務器所支持的最大連接數是有上限的,因為每個連接的建立都會消耗內存,因此我們希望客戶端在連接到MySQL Server處 理完相應的操作後,應該斷開連接並釋放占用的內存。如果你的MySQL Server有大量的閒置連接,他們不僅會白白消耗內存,而且如果連接一直在累加而不斷開,最終肯定會達到MySQL Server的連接上限數,這會報'too many connections'的錯誤。對於wait_timeout的值設定,應該根據系統的運行情況來判斷。在系統運行一段時間後,可以通過show processlist命令查看當前系統的連接狀態,如果發現有大量的sleep狀態的連接進程,則說明該參數設置的過大,可以進行適當的調整小些。

      問題:

      如果在配置文件my.cnf中只設置參數wait_timeout=100,則重啟服務器後進入,執行:

      Mysql> show variables like “%timeout%”;

      會發現參數設置並未生效,仍然為28800(即默認的8個小時)。

      查詢資料後,要同時設置interactive_timeout和wait_timeout才會生效。

      【mysqld】

      Wait_timeout=100

      Interactive_timeout=100

      重啟MySQL Server進入後,查看設置已經生效。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved