MySql中的常用參數(shù)查詢
1、超時時間
以下這些配置項(xiàng)單位都是秒,在mysql命令行中可以使用show global variables like '變量名';可查詢配置值。
mysql> show global variables like '%timeout%'; +-----------------------------+----------+ | Variable_name ? ? ? ? ? ? ? | Value ? ?| +-----------------------------+----------+ | connect_timeout ? ? ? ? ? ? | 10 ? ? ? | | delayed_insert_timeout ? ? ?| 300 ? ? ?| | have_statement_timeout ? ? ?| YES ? ? ?| | innodb_flush_log_at_timeout | 1 ? ? ? ?| | innodb_lock_wait_timeout ? ?| 50 ? ? ? | | innodb_rollback_on_timeout ?| OFF ? ? ?| | interactive_timeout ? ? ? ? | 28800 ? ?| | lock_wait_timeout ? ? ? ? ? | 31536000 | | net_read_timeout ? ? ? ? ? ?| 30 ? ? ? | | net_write_timeout ? ? ? ? ? | 60 ? ? ? | | rpl_stop_slave_timeout ? ? ?| 31536000 | | slave_net_timeout ? ? ? ? ? | 60 ? ? ? | | wait_timeout ? ? ? ? ? ? ? ?| 28800 ? ?| +-----------------------------+----------+
connect_timeout:連接響應(yīng)超時時間。服務(wù)器端在這個時間內(nèi)如未連接成功,則會返回連接失敗。wait_timeout:連接空閑超時時間。與服務(wù)器端無交互狀態(tài)的連接,直到被服務(wù)器端強(qiáng)制關(guān)閉而等待的時間??梢哉J(rèn)為是服務(wù)器端連接空閑的時間,空閑超過這個時間將自動關(guān)閉。interactive_timeout:連接空閑超時時間。與服務(wù)器端無交互狀態(tài)的連接,直到被服務(wù)器端強(qiáng)制關(guān)閉而等待的時間。interactive_timeout和wait_timeoutu意義雖然相同,但是有使用對象有本質(zhì)的區(qū)別。interactive_timeout針對交互式連接(比如通過mysql客戶端連接數(shù)據(jù)庫),wait_timeout針對非交互式連接(比如一般在PHP中使用PDO連接數(shù)據(jù)庫,當(dāng)然你可以設(shè)置CLIENT_INTERACTIVE選項(xiàng)來改變)。所謂的交互式連接,即在mysql_real_connect()函數(shù)中使用了CLIENT_INTERACTIVE選項(xiàng)。net_read_timeout:數(shù)據(jù)讀取超時時間。在終止讀之前,從一個連接獲得數(shù)據(jù)而等待的時間秒數(shù);當(dāng)服務(wù)正在從客戶端讀取數(shù)據(jù)時,net_read_timeout控制何時超時。即客戶端執(zhí)行數(shù)據(jù)讀取,等待多少秒仍未執(zhí)行成功時自動斷開連接。net_write_timeout:數(shù)據(jù)庫寫超時時間。和net_read_timeout意義類似,在終止寫之前,等待多少秒把block寫到連接;當(dāng)服務(wù)正在寫數(shù)據(jù)到客戶端時,net_write_timeout控制何時超時。slave-net-timeout:從庫延后同步的時間,當(dāng)slave認(rèn)為連接master的連接有問題時,就等待N秒,然后斷開連接,重新連接master
slave-net-timeout在主從同步時從庫上起作用;connect_timeout:在獲取連接階段起作用;interactive_timeout和wait_timeout:在連接空閑階段起作用;net_read_timeout和net_write_timeout:則是在連接執(zhí)行時起作用。
MySQL連接超時設(shè)置的問題。默認(rèn)的wait_timeout 是28800,8個小時。
解決辦法有兩種,
方法一,將連接池中的超時時間設(shè)置的短于這個值(本項(xiàng)目用的spring boot data jpa,默認(rèn)連接,設(shè)置后不起作用);
方法二,把mysql的這個值設(shè)大一些:在[mysqld]下加wait_timeout = 86400。此時是設(shè)置的全局設(shè)定,可通過命令 show global variables like “%timeout%”;看到變化,而show variables like “%timeout%”;和show session variables like “%timeout%”;仍為原值。
這個值設(shè)置為多大應(yīng)根據(jù)應(yīng)用使用情況來定。太小會導(dǎo)致頻繁超時,太多會導(dǎo)致連接長時間不釋放,也會出錯。所以一方面調(diào)整好這個數(shù)值,一方面采用更好的連接池方案。
2、查看最大連接數(shù)
mysql> show global status like 'Max_used_connections'; +----------------------+-------+ | Variable_name ? ? ? ?| Value | +----------------------+-------+ | Max_used_connections | 4 ? ? | +----------------------+-------+ 1 row in set (0.00 sec) ? mysql> show variables like 'max_connections%'; +-----------------+-------+ | Variable_name ? | Value | +-----------------+-------+ | max_connections | 10000 | +-----------------+-------+ 1 row in set (0.01 sec)
通常max_connections的大小應(yīng)該設(shè)置為比Max_used_connections狀態(tài)值大,Max_used_connections狀態(tài)值反映服務(wù)器連接在某個時間段是否有尖峰,如果該值大于max_connections值,代表客戶端至少被拒絕了一次,可以簡單地設(shè)置為符合以下條件:Max_used_connections/max_connections=0.8
3、查看當(dāng)前數(shù)據(jù)庫狀態(tài)
mysql> status; -------------- mysql ?Ver 14.14 Distrib 5.7.14, for linux-glibc2.5 (x86_64) using ?EditLine wrapper ? Connection id:?? ??? ?17318 Current database:?? ? Current user:?? ??? ?root@localhost SSL:?? ??? ??? ?Not in use Current pager:?? ??? ?stdout Using outfile:?? ??? ?'' Using delimiter:?? ?; Server version:?? ??? ?5.7.14-log MySQL Community Server (GPL) Protocol version:?? ?10 Connection:?? ??? ?Localhost via UNIX socket Server characterset:?? ?utf8 Db ? ? characterset:?? ?utf8 Client characterset:?? ?utf8 Conn. ?characterset:?? ?utf8 UNIX socket:?? ??? ?/tmp/mysql.sock Uptime:?? ??? ??? ?20 hours 2 min 14 sec ? Threads: 5 ?Questions: 118037 ?Slow queries: 0 ?Opens: 1743 ?Flush tables: 1 ?Open tables: 916 ?Queries per second avg: 1.636 --------------
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL查看數(shù)據(jù)庫連接數(shù)的方法
本文主要介紹了MySQL查看數(shù)據(jù)庫連接數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
linux mysql忘記密碼的多種解決或Access denied for user ''root''@''local
linux mysql忘記密碼的多種解決方法。2009-07-07
MySQL修改默認(rèn)存儲引擎的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狹ySQL修改默認(rèn)存儲引擎的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
mysql 5.7.5 m15 winx64.zip安裝教程
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.5 m15 winx64.zip安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令小結(jié)
這篇文章主要介紹了MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令,結(jié)合實(shí)例形式分析了MySQL數(shù)據(jù)庫管理、備份、日志常用操作命令與使用注意事項(xiàng),需要的朋友可以參考下2020-05-05
mysql中Table is read only的解決方法小結(jié)
本文章總結(jié)了關(guān)于在linux與windows中 mysql出現(xiàn)Table is read only解決辦法總結(jié),有需要的朋友可參考一下2013-01-01

