新搭建mysql容易出現問題
阿新 • • 發佈:2017-11-27
oot variables emp min 大小 數據庫連接數 value get 可能 1、最大連接數超出問題.
MySQL: ERROR 1040: Too many connections
數據庫連接數不夠
臨時改變,中期置為默認151
登陸
mysql -uroot -proot
設置連接數
set GLOBAL max_connections=1000;
查看最大連接池
select VARIABLE_VALUE from information_schema.GLOBAL_VARIABLES where VARIABLE_NAME=‘MAX_CONNECTIONS‘;
2、數據庫報錯用戶名密碼錯誤那就真是賬號密碼,有可能是是由於多了空格引起eg:"root "
這樣就會報錯
3、mysql 8小時空閑後連接超時的問題
查看參數
show variables like ‘%timeout%‘;
註意
interactive_timeout | 28800
wait_timeout | 28800
這兩個參數下面的是默認的時間60*60*8=28800(8小時)
但是這種方式改變數據庫屬性,當換一個服務器部署的時候還得配置數據庫屬性,所以最好在程序中解決
解決方式:
配置c3p0
<!-- 連接池中保留的最大連接數。默認值: 15 -->
<property name="maxPoolSize" value="20"/>
<!-- 連接池中保留的最小連接數,默認為:3 -->
<property name="minPoolSize" value="2"/>
<!-- 初始化連接池中的連接數,取值應在minPoolSize與maxPoolSize之間,默認為3 -->
<property name="initialPoolSize" value="2"/>
<!-- 最大空閑時間,60秒內未使用則連接被丟棄。若為0則永不丟棄。默認值: 0 -->
<property name="maxIdleTime" value="60"/>
<!-- 當連接池連接耗盡時,客戶端調用getConnection()後等待獲取新連接的時間,超時後將拋出SQLException,如設為0則無限期等待。單位毫秒。默認: 0 -->
<property name="checkoutTimeout" value="3000"/>
<!-- 當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。默認值: 3 -->
<property name="acquireIncrement" value="2"/>
<!-- 定義在從數據庫獲取新連接失敗後重復嘗試的次數。默認值: 30 ;小於等於0表示無限次 -->
<property name="acquireRetryAttempts" value="0"/>
<!-- 重新嘗試的時間間隔,默認為:1000毫秒 -->
<property name="acquireRetryDelay" value="1000" />
<!-- 關閉連接時,是否提交未提交的事務,默認為false,即關閉連接,回滾未提交的事務 -->
<property name="autoCommitOnClose" value="false"/>
<!-- c3p0將建一張名為Test的空表,並使用其自帶的查詢語句進行測試。如果定義了這個參數那麽屬性preferredTestQuery將被忽略。你不能在這張Test表上進行任何操作,它將只供c3p0測試使用。默認值: null -->
<property name="automaticTestTable" value="Test"/>
<!-- 如果為false,則獲取連接失敗將會引起所有等待連接池來獲取連接的線程拋出異常,但是數據源仍有效保留,並在下次調用getConnection()的時候繼續嘗試獲取連接。如果設為true,那麽在嘗試獲取連接失敗後該數據源將申明已斷開並永久關閉。默認: false -->
<property name="breakAfterAcquireFailure" value="false"/>
<!-- 每60秒檢查所有連接池中的空閑連接。默認值: 0,不檢查 -->
<property name="idleConnectionTestPeriod" value="60"/>
<!-- c3p0全局的PreparedStatements緩存的大小。如果maxStatements與maxStatementsPerConnection均為0,則緩存不生效,只要有一個不為0,則語句的緩存就能生效。如果默認值: 0 -->
<property name="maxStatements" value="100"/>
<!-- maxStatementsPerConnection定義了連接池內單個連接所擁有的最大緩存statements數。默認值: 0 -->
<property name="maxStatementsPerConnection" value="0"></property>
4、版本
mysql -V
新搭建mysql容易出現問題