解決方法是修改/etc/mysql/my.cnf,添加以下一行:
set-variable = max_connections=500
或在啟動(dòng)命令中加上參數(shù) max_connections=500
就是修改最大連接數(shù),然后重啟mysql.默認(rèn)的連接數(shù)是100,太少了,所以容易出現(xiàn)如題錯(cuò)誤.
以下是mysql.com網(wǎng)站的相關(guān)說(shuō)明:
If you get a Too many connections error when you try to connect to the mysqld server, this means that all available connections are in use by other clients.
The number of connections allowed is controlled by the max_connections system variable. Its default value is 100. If you need to support more connections, you should restart mysqld with a larger value for this variable.
mysqld actually allows max_connections+1 clients to connect. The extra connection is reserved for use by accounts that have the SUPER privilege. By granting the SUPER privilege to administrators and not to normal users (who should not need it), an administrator can connect to the server and use SHOW PROCESSLIST to diagnose problems even if the maximum number of unprivileged clients are connected. See Section 13.5.4.19, “SHOW PROCESSLIST Syntax”.
The maximum number of connections MySQL can support depends on the quality of the thread library on a given platform. Linux or Solaris should be able to support 500-1000 simultaneous connections, depending on how much RAM you have and what your clients are doing. Static Linux binaries provided by MySQL AB can support up to 4000 connections.
1.可能是mysql的max connections設(shè)置的問(wèn)題
2.可能是多次insert,update操作沒(méi)有關(guān)閉session,需要在spring里配置transaction支持。
解決:
1.修改tomcat里的session 的time-out時(shí)間減少為20,(不是必改項(xiàng))
2.對(duì)處理量大的對(duì)數(shù)據(jù)庫(kù)insert或update的操作提供transaction支持.
=======================================
下面的是解決辦法:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
原因:
因?yàn)槟愕膍ysql安裝目錄下的my.ini中設(shè)定的并發(fā)連接數(shù)太少或者系統(tǒng)繁忙導(dǎo)致連接數(shù)被占滿
解決方式:
打開(kāi)MYSQL安裝目錄打開(kāi)MY.INI找到max_connections(在大約第93行)默認(rèn)是100 一般設(shè)置到500~1000比較合適,重啟mysql,這樣1040錯(cuò)誤就解決啦。
max_connections=1000
一定要重新啟動(dòng)MYSQL才能生效
CMD->
net stop mysql
net start mysql
關(guān)于改變innodb_log_file_size后無(wú)法啟動(dòng)mysql的問(wèn)題
innodb_buffer_pool_size=768M
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_additional_mem_pool_size=4M
innodb_flush_log_at_trx_commit=0
innodb_thread_concurrency=20
以上是對(duì)innodb引擎的初步優(yōu)化, 發(fā)現(xiàn)是更新innodb_log_file_size=256M時(shí)候出現(xiàn)了問(wèn)題,只要加上這個(gè)就無(wú)法啟動(dòng),
后來(lái)才知道原來(lái)要STOP服務(wù)先,然后再刪除原來(lái)的文件………
打開(kāi)/MySQL Server 5.5/data
刪除ib_logfile0, ib_logfile1........ib_logfilen
再開(kāi)啟選項(xiàng),成功啟動(dòng)。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄