MySQLでのError 1040に対する質問
MySQLの問題解決に皆さまのお知恵をお借りしたく、ここに質問させて頂きます。
現在の症状を先に記し、自分なりに行った対処方法をその後に記しておきます。
そして、最後にその問題に対する解決方法をご教授していただけたら幸いです。
[現状]
現在、MySQL(5.6.29)を使って、DB内から必要なデータの取得を目指しております。
ここでのやり取りは、「select * from table where xxx」程度の簡単なコードを使用しています。(実際には、7百万行あるtableから、whereの条件にマッチしたcolumn(int)だけを読み込んでいます。)自作したGOプログラムから、このコードを使って、DBにアクセスし、正確なデータが取得できることは確認しております。
しかし、このGOプログアム内では、数百回ほどwhere条件を変えながら、そのたびに別のデータを取得する必要があります。何度もDBにアクセスしていますと、最終的には、Error 1040(Too many connections)が出てきてしまい、計算途中でGOプログラムが強制終了されてしまいます。
[自分で行った対処方法]
そこで、webで自分なりに調べましたら、my.cnfファイルの条件を変更するとこの問題が解決されるとのアドバイスがありましたので、以下の2点をmy.cnfに挿入しました。
(a) max_connections = 200
(b) wait_timeout = 100
上記の数字(200, 100)の変更はしております。(と言いましても、1000ぐらいまでの数字でしか試しておりません。)また、関係ないとは思いますが、念の為「flush query cache;」もコードには組み込んでいます。しかし、現状では、同じ問題が発生しております。
[質問]
webでは探しましたが、上記の2点以外での同問題の解決方法が見つかりませんでした。
質問は2点あります。
(1)自分でも行いましたが、数字の変更(200,100)を上限なく大きな数字(例えば、200000など)にした場合、問題は解決されるのでしょうか?その場合、別の問題は発生しますでしょうか?
(2)上記の2条件以外での解決方法がありますでしょうか?
大変申し訳ないですが、ご教授をいただけたら幸いです。
よろしくお願いします。