「MySQL」タグアーカイブ

【MySQLエラー】Warning: mysql_connect() [function.mysql-connect]: Too many connections in XXX on line XXX


MySQLでToo many connectionsというエラーが出た場合

mysql-error

MySQLからこんなエラーが出る場合があります。
そんな場合の対処方法を纏めておきます。

Warning: mysql_connect() [function.mysql-connect]: Too many connections in XXX on line XXX
I cannot connect to the database because: Too many connections

なお、ブラウザからアクセスして↑のエラーが出ている場合、phpMyAdminにアクセスをしようとしても↓の様なエラーが出てしまいます。

mysql-error-2

 

手っ取り早く解消する方法

レンタルサーバ(Lunarpages)の管理画面にログイン > メニュー > Configuration > Service

mysql-error-3

mysqldの行のStopをクリック してmysqlを一旦停止します。

そして、Startを実行します。つまり、mysqlのプロセスを強制再起動します。再起動すると強制的にmysqlに繋がりっぱなしになっているプロセスをぶった切ってリセットする事が出来ます。

なお、Serviceで表示されている文字列は「mysqld」と最後に「d」が付いています。これは、mysqlのデーモンです。デーモンとは、UNIX系OS(CentOSなど)のバックグラウンドプロセスの事を表しています。WindowsOSでは、サービスと呼ばれています。

根本的に問題を解決する場合

2点の解消を行います。

1点目:最大接続数を増やす

2点目:1回の接続時間を短くする

mysqlの設定を変更すれば、余程多量のアクセスが無い限りはこの様な問題が起こらなくなります。

SSHでサーバに接続します。今回はLunarpagesにTeraTermでSSH接続しました。Lunarpagesでレンタルサーバを借りると、サーバの中にMySQLもインストールされています。さくらインターネットなどでは、DBサーバが分かれていますが、LunarpagesのDedicate Serverでは一体になっていました。

SSHでサーバに繋がったら

mysql

と入力するとmysqlに繋がります。

max_connectionsの確認 →最大接続数の確認が出来ます。
show global variables like’max_connections’;

wait_timeoutの確認 →接続時間を確認できます。
show global variables like’wait_timeout’;

デフォルトでは、 28,800秒 = 480分  = 8時間・・・とても長い、長すぎます。ここでは、60秒に設定します。

それぞれの数字をメモっておきましょう。

Control + C でmysqlを抜けてサーバ接続状態にします。

mysql-checking-1

winSCPでサーバに接続し

/etc/my.cnf

をローカルのデスクトップにコピーします。

mysql-checking-2

こんな感じに設定しました。

# 接続数
max_connections = 1000

# 待機時間
wait_timeout = 60

編集したらサーバの/etc/my.cnfにアップロードします。

以下コマンドを発行し

sudo service mysqld restart

と出ればMySQLの再起動は完了です。

Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]

MySQLのデーモンの再起動をしないと設定ファイルを変更しても反映されないので注意しましょう。

そして再び値をチェックします。

最大接続数:1,000

待機時間:60

にしっかり変更されました。

mysql-setting-finished

 

MySQLでエラーが頻発する場合には、この手順をすれば解決されます。

MySQLでステータス確認でたまに使うコマンドのメモ書き

MySQLで現在設定されている最大接続数を確認

show global variables like’max_connections’;

MySQLで現在の接続数を確認

show status like ‘Threads_connected’;

MySQLの累積のコネクション数を確認

show status like ‘Connections’;

 


MySQL Connectorのダウンロードとインストールまでのメモ書き


MySQL Connectorをインストールする方法

MySQL Connectorをダウンロードする為に
http://dev.mysql.com/downloads/connector/odbc/
基礎からのMySQL 改訂版 (基礎からシリーズ)
にアクセスします。

Select Platform: とあるのでその中から

Windows(X86,64-bit),MSI Installer
(mysql-connector-odbc-5.3.6-winx64.msi)
の行のDownloadをクリックします。

2016/11/3

時点で、ダウンロードしたMySQL Connectorのバージョンはこちらです。

mysql-connector-odbc-5.3.6-winx64.msi

mysql-connector
Windows (x86, 32-bit), MSI Installer  → 32bit版

Windows (x86, 64-bit), MSI Installer → 64bit 版

両方ダウンロードしてインストールしておきましょう。CSEなど昔のDB操作ツールでODBC接続したい場合には、32bit版でないとエラーが発生してしまいます。

 

インストーラー(msi)をキックするとインストールが開始します。

MySQL Connector/ODBC 5.3 – Setup Wizard
The Setup Wizard will install MySQL Connector/ODBC 5.3 release 5.3.6 on yourcomputer. To continue, click Next.
と出るので

Next > をクリック

License Agreement

画面が表示される。表示されたら

I accept the terms in the license agreement

にチェックを入れて

Next > をクリック

Typical  にチェックを入れる

Next > をクリックする。

Ready to Install the Program
The Wizard is ready to begin installation.

と出るので、 Install ボタンをクリックする。
詳細! PHP 7+MySQL 入門ノート

Installing MySQL Connector/ODBC 5.3
The program features you selected are beging installed.
Please wait while the Setup Wizard installs MySQL connector/ODBC 5.3.
This may take several minutes.
というメッセージが表示されます。

ざっくりとした意味は、インストールに数分かかる場合がありますという意味です。

この時にWindowsからセキュリティー対策として確認ダイアログが表示される場合があります。

このアプリがデバイスに変更を加える事を許可しますか?
mysql-connector-odbc-5.3.6-winx64.msi
確認済みの発行元: Oracle America, Inc.

と出たら「はい」をクリックします。

するとインストールが進んで Wizard CompletedになればOKです。

mysql-connector-5-3-6-finished
Finishをクリックします。これで MySQL Connectorのインストールは完了です。
エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド


HeidiSQLでSQL文を一発で整形する方法


HeidiSQLの整形機能は微妙

HeidiSQLでSQL整形を行う場合

メニュー > 編集 > SQLの整形(S)

をクリックします。一応整形されますが、正直整形の精度は微妙です。

フリーソフトのCSEの整形機能はしっかりしていたので、基本的なデータベース操作はHeidiSQLを使って、SQLの整形にはCSEを使うといった具合に使い分けると良いでしょう。

heidisql-15

また、ショートカットコマンドもあります。

 

Control + F8

キーです。覚えておくと便利です。

 


datetime型の列をグループ化して年月ごとにレコード数を取得する。


access_logsテーブルの中にaccess_date列があったと過程します。

そしてデータが↓の様に入っている事を想定します。

 

2015-03-02 17:35:25

2015-03-03 17:35:25

2015-04-03 17:35:25

 

この際に年・月ごとの数をgroup化することにより求めるSQLは次の様に記述します。

SELECT YEAR( access_date ) , MONTH( access_date ) , DAY( access_date ) , COUNT( * ) AS COUNT_DAILY
FROM access_logs
GROUP BY YEAR( access_date ) , MONTH( access_date ) , DAY( access_date )
ORDER BY YEAR( access_date ) ASC , MONTH( access_date ) ASC , DAY( access_date ) ASC


MySQLで作成済のビューのSQLコードを確認するには?


phpMyAdmin上で作成済のビューを確認する方法を纏めます。

 

1.データベースを選択する。

2.SQLタブをクリックする。

3.コマンドを発行しデータベースに作成されているテーブル一覧を表示する。

SHOW TABLES

4.ビューの名前が確認出来たら、そのビューを作成する為に必要なSQL分を以下コードを実行し確認する。

show create view `{ビュー名}`

※ビュー名は、バックスラッシュ「`」で囲まなくてはなりません。バックスラッシュの入力は、 Shift + @  を押します。

 

5.実行するとビューを作る為のSQLが一部分だけ表示されます。ただし、この状態だとSQLの全体を確認する事が出来ません。そこで

印刷用画面(全テキストを含む)をクリックします。

クリックすると SQL の結果 という画面が開いてその中にビューを作成する為のSQL分が全て表示された状態になります。

show-create-view


MySQL mysql-5.5.39-winx64.msi をインストールする


関連したメモ

mysql-5.5.39-winx64.msi を事前にダウンロードします。

5.6をWindows 7 にインストールしようとしてもうまくいきません。

安定板の5.5.39をインストールする事を強くおススメします。

参考にしたサイト

インストールを行うと次の画面が表示されます。

mysql_7

 

Next > をクリックします。

次の画面でも再び Next > をクリックすると次の画面が表示されます。

Completed the MySQL Server 5.5 Setup Wizard

Launch the MySQL Instance Configuration Wizard にチェックが入っている事を確認し、 Finish をクリックします。

mysql_8

すると

Welcome to the MySQL Server Instance Configuration Wizard 1.0.17.0 という画面が起動するので Next > をクリックします。

mysql_9

 

 

MySQL Server Instance Configuration 画面が起動したら

Detailed Configuration にチェックが入っている事を確認し Next > をクリックします。

mysql_10

 

 

そこそこのアクセスを想定したWEBアプリの開発を行うのであれば Server Machineを選択し Next > をクリックします。

開発用でかつアクセス数が少ない場合には、 Developer Machine を選択します。

mysql_11

 

 

Multifunction Database にチェックを入れてNext > をクリックします。

mysql_12

MySQLのインストール先を選択します。通常はデフォルトのままで良いです。 Next > をクリックします。

mysql_13

 

 

 

 

同時接続数の想定値が20人位の場合には、

Decision Support(DSS)/OLAP を選択し Next > をクリックします。

mysql_14

 

リモート接続する必要がある場合は、Enable TCP/IP Networkingにチェックを入れます。また、ローカルで運用する場合にはチェックをはずします。リモート接続する場合は、ファイアウォールを開放してやる必要があるのでAdd firewall exception for this portにチェックをします。選択が終了したら、「Next」ボタンをクリックします。

mysql_15

 

MySQLの文字コード設定画面です。

Configure the MySQL Server 5.5 server instacne.

Best Support For Multilingualism

Make UTF8 the default character set.This is the recommended character set for storing text in many different languages.

を選択します。

mysql_20

 

Windows サービスとしてインストールするかと MYSQL の Bin ディレクトリをWindows PATH に含めるかどうかの選択画面です。両方にチェックをしてNext >をクリックします。

mysql_17

 

rootパスワードを入力します。

MySQLの場合、管理者のIDはroot です。別のマシンからコントロールしたい場合は、Enable root access from remote machinesにチェックをしてそうでない場合にはチェックをはずします。

チェックをしない事をおススメします。インストールで失敗する可能性があります。

最後にNext > をクリックします。
注意:以前のバージョンで は、Enable root access from remote machinesにチェックをするとインストールの最後で Error Nr. 1364 Field ‘authentication-string’ doesn’t have a default valueというエラーが発生するバグがありましたが、最近のバージョンでは解消されています。

mysql_18

 

ここまでの作業で MySQL の設定項目の入力が完了し設定の準備ができたという画面が表示されます。最後にExecuteボタンをクリックします。

mysql_19

 

これを実行した時にフリーズしてしまう事があります。原因は不明です。

Processing configuration ...    (応答なし)


Windows7にMySQLをインストールする②


前のページからの続きです。

関連したメモ

ダウンロードした

mysql-5.6.20-winx64.msi

をキックしてインストールを開始します。

開いているファイル-セキュリティの警告

ダイアログが起動しますが実行(R)をクリックします。

Welcom to the MySQL Server 5.6 Setup Wizard 

が出たら Next をクリックする。

mysql_1

 

End-User License Agreement

I accept the terms in the License Agreement

にチェックを入れて Nextをクリックします。

mysql_2

Choose Setup Type

Typicla を選択します。本画面についてはNextは押さなくてもTypicalを選択すると次画面に自動で遷移します。

mysql_3 

Ready to install MySQL Server 5.6

ここまでの操作でMySQLのインストール順位が出来たのでInstall をクリックします。するとインストールが始まります。

mysql_4

 

 


Windows7にMySQLをインストールする①


Windows 7にMySQLをインストールした時の手順を纏めています。

関連したメモ

まず以下からMySQL Community Serverをダウンロードします。

http://dev.mysql.com/downloads/mysql/

Windows 7 64bit にインストールするので

 

2014/09/15

なぜかWindows 7にMySQL 5.6 をインストールしてもうまく動作しませんでした。安定板の5.5のインストールを強くおススメします。以下のメモは、5.6についてのものですが5.5でもインストール方法は同じです。

Windows(x86, 64-bit), MSI Installer の Downloadリンクをクリックします。x86とは32bitマシンを意味します。つまり32bitでも64bitでも使えるモジュールをダウンロードします。

dl_mysql

 

 

モジュールをOracleアカウントに登録する事無くDLする場合

No thanks,just start my download.

をクリックするとOracleへの会員登録をする事なくMySQLのインストールバイナリのダウンロードが始まります。

mysql_6

 

MySQLがOracleに買収されてから以前は無料でダウンロード出来ていましたが、Oracle  Web account を取得しないとダウンロード出来なくなってしまった様です。Sign Up >> をクリックしてOracle Web Accountを取得しましょう。本当にOracleは迷惑です

mysql_account

 

 

アカウント作成が完了するとメッセージが表示されます。

oracle-end

 

Oracleから確認メールが届きます。

oracle-mail

電子メール・アドレスの確認をクリックすると

サイトへログインする為の

ユーザ名

パスワード

の入力を求められます。登録したメールアドレス・パスワードを入力しサインインをクリックします。

ここまで完了すると

電子メール・アドレスは確認されました

Oracleプロファイルは、Oracle.comページの上部にあるリンクからいつでも更新できます。

というガイダンスが表示されます。

 

次へをクリックすると

Begin Your Download -mysql-5.6.20-win64.msi

という画面が表示されます。ダウンロードする前に金に汚いOracleが色々とアンケートをさせてきます。

What is Your Intended Primary Use of MySQL *

Industry

Job Function

No of Employees

Contact me to discuss MySQL commercial products and services ( choose all that apply)

面倒ですが適当に設定しましょう。英語の分からない人はGoogle翻訳とか使ってみてください。

 

Begin Your Download

ページに遷移したら、 Donwload Now >>

mysql-5.6.20-winx64.msi

をクリックしてダウンロードを開始します。

download_mysql

 

 

mysql-5.6.20-winx64.msi

が無事ダウンロード出来ればまず第一関門突破です。

MySQLの実際のインストールから設定方法は次のページに纏めます。

Windows7にMySQLをインストールする②