MySql連接數(shù)據(jù)庫(kù)常用參數(shù)及代碼解讀
MySql連接數(shù)據(jù)庫(kù)常用參數(shù)及代碼
常用參數(shù)
參數(shù)名稱 | 參數(shù)說明 | 缺省值 | 最低版本要求 |
---|---|---|---|
user | 數(shù)據(jù)庫(kù)用戶名(用于連接數(shù)據(jù)庫(kù)) | ||
password | 用戶密碼(用于連接數(shù)據(jù)庫(kù)) | ||
useUnicode | 是否使用Unicode字符集,如果參數(shù)characterEncoding設(shè)置為gb2312或gbk,本參數(shù)值必須設(shè)置為true | false | 1.1g |
characterEncoding | 當(dāng)useUnicode設(shè)置為true時(shí),指定字符編碼。比如可設(shè)置為gb2312或gbk | false | 1.1g |
autoReconnect | 當(dāng)數(shù)據(jù)庫(kù)連接異常中斷時(shí),是否自動(dòng)重新連接? | false | 1.1 |
autoReconnectForPools | 是否使用針對(duì)數(shù)據(jù)庫(kù)連接池的重連策略 | false | 3.1.3 |
failOverReadOnly | 自動(dòng)重連成功后,連接是否設(shè)置為只讀? | true | 3.0.12 |
maxReconnects | autoReconnect設(shè)置為true時(shí),重試連接的次數(shù) | 3 | 1.1 |
initialTimeout | autoReconnect設(shè)置為true時(shí),兩次重連之間的時(shí)間間隔,單位:秒 | 2 | 1.1 |
connectTimeout | 和數(shù)據(jù)庫(kù)服務(wù)器建立socket連接時(shí)的超時(shí),單位:毫秒。 0表示永不超時(shí),適用于JDK 1.4及更高版本 | 0 | 3.0.1 |
socketTimeout | socket操作(讀寫)超時(shí),單位:毫秒。 0表示永不超時(shí) | 0 | 3.0.1 |
allowMultiQueries | mysql驅(qū)動(dòng)開啟批量執(zhí)行sql的開關(guān) | false |
數(shù)據(jù)庫(kù)工具類
package util; import java.sql.Connection; import java.sql.DriverManager; /** ?* 數(shù)據(jù)庫(kù)工具類 ?* @author Administrator ?* ?*/ public class DbUtil { ?? ?private String dbUrl="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true"; ?? ?private String dbUserName="root"; ?? ?private String dbPassword="passwd"; ?? ?private String jdbcName="com.mysql.jdbc.Driver"; ?? ? ?? ?/** ?? ? * 獲取數(shù)據(jù)庫(kù)連接 ?? ? * @return ?? ? * @throws Exception ?? ? */ ?? ?public Connection getCon() throws Exception{ ?? ??? ?Class.forName(jdbcName); ?? ??? ?Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword); ?? ??? ?return con; ?? ?} ?? ? ?? ?/** ?? ? * 關(guān)閉數(shù)據(jù)庫(kù)連接 ?? ? * @param con ?? ? * @throws Exception ?? ? */ ?? ?public void closeCon(Connection con) throws Exception{ ?? ??? ?if(con!=null){ ?? ??? ??? ?con.close(); ?? ??? ?} ?? ?} ?? ? ?? ?public static void main(String[] args) { ?? ??? ?DbUtil dbUtil=new DbUtil(); ?? ??? ?try { ?? ??? ??? ?dbUtil.getCon(); ?? ??? ??? ?System.out.println("數(shù)據(jù)庫(kù)連接成功"); ?? ??? ?} catch (Exception e) { ?? ??? ??? ?// TODO Auto-generated catch block ?? ??? ??? ?e.printStackTrace(); ?? ??? ?} ?? ?} }
調(diào)用該工具類時(shí)
?? ?Connection con=null; ?? ?try{ ?? ??? ??? ?con=dbUtil.getCon(); ?? ??? ??? ?(數(shù)據(jù)庫(kù)操作語(yǔ)句) ?? ??? ?}catch(Exception e){ ?? ??? ??? ?e.printStackTrace(); ?? ??? ?}finally{ ?? ??? ??? ?try { ?? ??? ??? ??? ?dbUtil.closeCon(con); ?? ??? ??? ?} catch (Exception e) { ?? ??? ??? ??? ?// TODO Auto-generated catch block ?? ??? ??? ??? ?e.printStackTrace(); ?? ??? ??? ?}
MySql常用參數(shù)
參數(shù)名稱 | 參數(shù)說明 | 參考 |
max_connections | 數(shù)據(jù)庫(kù)的最大連接數(shù) | MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables |
wait_timeout | 非交互模式的沒有操作后的超時(shí)秒數(shù),超時(shí)后數(shù)據(jù)庫(kù)會(huì)關(guān)閉該連接。 | MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables |
interactive_timeout | 交互模式下的沒有操作后的超時(shí)時(shí)間,一般與wait_timeout的值一致 | MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables |
max_prepared_stmt_count | 限制一個(gè)session內(nèi)最多可以有多少條預(yù)編譯語(yǔ)句 | MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables |
innodb_lock_wait_timeout | 等待數(shù)據(jù)鎖的超時(shí)時(shí)間默認(rèn)50s,超時(shí)則回滾當(dāng)前事務(wù),可以設(shè)置適當(dāng)?shù)臅r(shí)長(zhǎng)作為避免死鎖的一種措施 | MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables |
max_allowed_packet | 服務(wù)器和客戶之間單次通信的大小上限,會(huì)限制Server接受的數(shù)據(jù)包大小。 | MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables |
slow_query_log | 是否開啟慢日志 0關(guān)閉, 1開啟 | MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables |
long_query_time | 如果開啟了慢日志,則sql查詢時(shí)間超過該值就記錄到慢日志 | MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables |
innodb_flush_log_at_trx_commit | 控制提交操作的嚴(yán)格ACID合規(guī)性與在批量重新安排和完成提交相關(guān)I/O操作時(shí)可能實(shí)現(xiàn)的更高性能之間的平衡。 完全符合ACID要求需要默認(rèn)設(shè)置1。日志在每次事務(wù)提交時(shí)寫入并刷新到磁盤。 設(shè)置為0時(shí),日志每秒寫入并刷新到磁盤一次。未刷新日志的事務(wù)可能會(huì)在崩潰中丟失。 設(shè)置為2時(shí),日志在每次事務(wù)提交后寫入,并每秒刷新一次到磁盤。未刷新日志的事務(wù)可能會(huì)在崩潰中丟失。 | MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables |
sync_binlog | 控制MySQL服務(wù)器將二進(jìn)制日志同步到磁盤的頻率。 sync_binlog=0:禁用MySQL服務(wù)器將二進(jìn)制日志同步到磁盤。 sync_binlog=1:?jiǎn)⒂迷谔峤皇聞?wù)之前將二進(jìn)制日志同步到磁盤。 sync_binlog=其他數(shù)字,表示在收集N個(gè)二進(jìn)制日志提交組后,二進(jìn)制日志將同步到磁盤。 | MySQL :: MySQL 8.0 Reference Manual :: 17.1.6.4 Binary Logging Options and Variables |
innodb_buffer_pool_instances | InnoDB緩沖池劃分的區(qū)域數(shù)。僅在緩沖區(qū)大于1G時(shí)生效,默認(rèn)為8 | MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables |
innodb_buffer_pool_chunk_size | 緩沖池的塊大小(字節(jié))默認(rèn)128M | MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables |
innodb_buffer_pool_size | 緩沖池的大?。ㄗ止?jié)),InnoDB緩存表和索引數(shù)據(jù)的內(nèi)存區(qū)域。緩沖池大小必須始終等于或是innodb_Buffer_pool_chunk_size*innodb_buffer_pool_instances的倍數(shù) | MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables |
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql 獲取當(dāng)前日期函數(shù)及時(shí)間格式化參數(shù)詳解
這篇文章主要介紹了mysql 獲取當(dāng)前日期函數(shù)now()及時(shí)間格式化DATE_FROMAT函數(shù)以及參數(shù)詳細(xì)介紹,需要的朋友可以參考下2014-08-08MySQL連接時(shí)出現(xiàn)2003錯(cuò)誤的實(shí)現(xiàn)
本文主要介紹了MySQL連接時(shí)出現(xiàn)2003錯(cuò)誤的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05計(jì)算機(jī)管理服務(wù)中找不到mysql的服務(wù)的解決辦法
MySQL是一種流行的開源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),用于存儲(chǔ)和管理大量數(shù)據(jù),在計(jì)算機(jī)管理中,啟動(dòng)MySQL服務(wù)是一項(xiàng)重要的任務(wù),因?yàn)樗梢源_保數(shù)據(jù)庫(kù)系統(tǒng)的順利運(yùn)行,這篇文章主要給大家介紹了關(guān)于計(jì)算機(jī)管理服務(wù)中找不到mysql的服務(wù)的解決辦法,需要的朋友可以參考下2023-05-05mysql8.0.11數(shù)據(jù)目錄遷移的實(shí)現(xiàn)
這篇文章主要介紹了mysql8.0.11數(shù)據(jù)目錄遷移的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02openEuler?RPM方式安裝MySQL8的實(shí)現(xiàn)
本文主要介紹了openEuler?RPM方式安裝MySQL8的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01數(shù)據(jù)庫(kù)報(bào)錯(cuò):Unknown column 'xxx' in
但凡寫過sql語(yǔ)句的人估計(jì)都曾經(jīng)碰到過類似于Unknown column ‘xxx’ in ‘where clause’的問題,這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫(kù)報(bào)錯(cuò):Unknown column 'xxx' in 'where clause'問題的解決過程,需要的朋友可以參考下2023-03-03lnmp下如何關(guān)閉Mysql日志保護(hù)磁盤空間
這篇文章主要介紹了lnmp下如何關(guān)閉Mysql日志保護(hù)磁盤空間的相關(guān)資料,需要的朋友可以參考下2015-09-09