1. 程式人生 > >mysql資料庫超時

mysql資料庫超時

1.改配置:

修改mysql安裝目錄下的my.ini內部的引數:
永久有效,但修改檔案後需要重啟服務

table_cache=180                             //表的快取大小,快取記錄在記憶體中,讀取快
max_connections=100                    //資料庫最大連線數。連結數不夠會超時

MySQL檢視最大連線數和修改最大連線數
只在mysql當前服務程序有效,一旦mysql重啟,又會恢復到初始狀態

檢視最大連線數
show variables like '%max_connections%';
修改最大連線數
set GLOBAL max_connections = 200;

2.重啟mysql

  1. 在服務列表中重啟。
  2. CMD下停止:net stop mysql
    (其中mysql為你安裝的mysql服務名稱)
    啟動:net start mysql

3.死鎖導致的超時

方式一:

1.查詢是否鎖表

show OPEN TABLES where In_use > 0;

2.查詢程序(如果您有SUPER許可權,您可以看到所有執行緒。否則,您只能看到您自己的執行緒)

show processlist

3.殺死程序id(就是上面命令的id列)

kill id

方式二:

1.檢視下在鎖的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2.殺死程序id(就是上面命令的trx_mysql_thread_id列)

kill 執行緒ID

其它關於檢視死鎖的命令:

1:檢視當前的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2:檢視當前鎖定的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

3:檢視當前等鎖的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;