mysql “too many connections” 錯誤 之 mysql解決方案

來源:互聯網
上載者:User

解決方案是修改/etc/mysql/my.cnf,添加以下一行:
set-variable = max_connections=500

或在啟動命令中加上參數 max_connections=500
就是修改最大串連數,然後重啟mysql.預設的串連數是100,太少了,所以容易出現如題錯誤.
以下是mysql.com網站的相關說明:
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設定的問題
2.可能是多次insert,update操作沒有關閉session,需要在spring裡配置transaction支援。

解決:
1.修改tomcat裡的session 的time-out時間減少為20,(不是必改項)
2.對處理量大的對資料庫insert或update的操作提供transaction支援.

=======================================
下面的是解決辦法:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"

原因:

因為你的mysql安裝目錄下的my.ini中設定的並發串連數太少或者系統繁忙導致串連數被佔滿

解決方式:

開啟MYSQL安裝目錄開啟MY.INI找到max_connections(在大約第93行)預設是100 一般設定到500~1000比較合適,重啟mysql,這樣1040錯誤就解決啦。
max_connections=1000

一定要重新啟動MYSQL才會生效

CMD->

net stop mysql

net start mysql

關於改變innodb_log_file_size後無法啟動mysql的問題

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
以上是對innodb引擎的初步最佳化, 發現是更新innodb_log_file_size=256M時候出現了問題,只要加上這個就無法啟動,

後來才知道原來要STOP服務先,然後再刪除原來的檔案………
開啟/MySQL Server 5.5/data

刪除ib_logfile0, ib_logfile1........ib_logfilen
再開啟選項,成功啟動。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.