【トラブル】【MySQL】 MySQL に関するトラブルシューティング

■ エラー「Access denied for user xxx@yyy (using password: YES) 」が表示

 * 「xxx : ユーザ名」「yyy : ホスト名」

原因1

 * 権限が付与されていなかったため。

解決策1

 * GRANTで、権限を付与する

# GRANT ALL ON 【対象DB】.* to '【ユーザ名】'@'%' IDENTIFIED BY '【ユーザー名に対するパスワード】';

 * 以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/36202945.html

原因2

 * 「【User ID】@'%'」と「【User ID】@'localhost'」とあり、それぞれ別のパスワードが設定されており
   「【User ID】@'%'」のパスワードに対して、「【User ID】@'localhost'」のパスワードを入力していた

# 「【User ID】@'%'」と「【User ID】@'localhost'」は別ユーザで別々のパスワードを持つことが可能

解決策2

 * 正しいパスワードを入力

# パスワードを忘れてしまったならば、変更し試してみる

参考文献

http://www.goofoo.jp/2011/11/1457
http://www.aipacommander.com/entry/2014/05/26/152247
http://b.l0g.jp/mysql/user-at-localhost/
http://blog.codebook-10000.com/entry/20130806/1375794910
権限について
http://qiita.com/pinohara/items/481c95dc4c8c2568bf8d
http://qiita.com/shuntaro_tamura/items/2fb114b8c5d1384648aa
http://takuya-1st.hatenablog.jp/entry/2015/03/22/120618

■ 「sudo rpm -ivh xxxx」を行った際に、「ファイルと競合しています。」が表示される

 * 「sudo rpm -ivh xxxx」を行った際に、以下のエラー内容「ファイルと競合しています。」が表示される

エラー内容

[admin@localhost ~]$ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm を取得中
準備しています...              ################################# [100%]
	ファイル /etc/yum.repos.d/mysql-community-source.repo (パッケージ mysql57-community-release-el7-8.noarch から) は、パッケージ mysql57-community-release-el7-7.noarch からのファイルと競合しています。
	ファイル /etc/yum.repos.d/mysql-community.repo (パッケージ mysql57-community-release-el7-8.noarch から) は、パッケージ mysql57-community-release-el7-7.noarch からのファイルと競合しています。

原因

 * 古いパッケージがあったため

解決策

 * パッケージをアップデートする

sudo rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

■ Too many connections が発生する

原因

 * 接続最大接続数(max_connections)を超えた場合

解決策

1) 最大同時接続数を増やす
set global max_connections=250;
別解
vi /etc/my.cnfで以下を追加・修正

max_connections = 200
2) 接続タイムアウトを短くする
set global wait_timeout=60;
別解
vi /etc/my.cnfで以下を追加・修正

wait_timeout = 60

確認方法

* コネクション数
show processlist;
* 現在の接続数
show global status like 'Threads_connected';
* 最大接続数
show global variables like 'max_connections';
* 接続タイムアウト
show global variables like 'wait_timeout';

参考文献

http://tamata78.hatenablog.com/entry/2015/10/30/140000
http://d.hatena.ne.jp/rougeref/20130305
http://piyopiyocs.blog115.fc2.com/blog-entry-1067.html
AWS関連
https://www.crunchtimer.jp/blog/technology/aws/2234/

関連記事

権限に関するあれこれ

http://blogs.yahoo.co.jp/dk521123/36202945.html