mysql 基本

エラー

```
1　 エラーの原因⇨直前に実行した命令に対する権限がない
■エラーコード
⇒1044

■エラーメッセージ例
⇒Access denied for user 'ユーザ名'@'ホスト名' to database 'データベース名'

■エラーの原因
⇒直前に実行した命令に対する権限がない。

■エラーへの対処法
⇒使用するユーザに権限を設定する。


２　エラー 1045（28000）の原因と対処法
⇒エラーコード：1045

■SQLSTATE：28000

エラーメッセージ例
⇓
Access denied for user 'ユーザ名'@'ホスト名' (using password: [YES／NO])

■エラーの原因
⇒（YESの場合）権限などのユーザ設定が間違えている。
（NOの場合）ログイン時にパスワードを入力していない、または、入力したパスワードが間違えている。

■エラーへの対処法
（YESの場合）⇒権限の設定が問題ないか確認する。それでもできない場合は、ユーザを一度削除して再度作成してみる。

（NOの場合）⇒ログイン時にオプション「-p」を付け、パスワードを入力する。その上でエラーになる場合、パスワードが間違えていないか確認する。

３エラー 1046（3D000）の原因と対処法

■SQLSTATE：3D000

エラーメッセージ例
⇓
No database selected

■エラーの原因
⇒データベースのインポート時などに、対象のデータベースが選択されていない。

■エラーへの対処法
⇒テーブル名の指定時に「データベース名.テーブル名」とするか、先に「use [データベース名];」を実行しておく。



４　エラー 1054（42S22）の原因と対処法

■SQLSTATE：42S22

エラーメッセージ例
⇓
Unknown column 'カラム名' in 'field list'

■エラーの原因
⇒指定したカラムが見つからない。SQL文が間違えているなど。

■エラーへの対処法
⇒SQL文を見直す。クォーテーションのつけ方など、区切り文字に注意する。

５エラー 1062（23000）の原因と対処法
■SQLSTATE：23000

エラーメッセージ例
⇓
Duplicate entry '値' for key '主キー'

■エラーの原因
⇒主キーが重複するデータを登録しようとしている。

■エラーへの対処法
⇒主キーの重複を回避する。
レプリケーション時に発生する場合は、不要なレコードをスキップするよう設定する。


６　エラー 1064（42000）の原因と対処法
■エラーの原因：
⇒SQLの文法に誤りがある。

■SQLSTATE：42000

エラーメッセージ例
⇓
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near [入力したSQL文の一部].

■エラーへの対処法
⇒MySQLのバージョンとマニュアルを確認し、SQL文を見直す。 こちらもクォーテーションなど区切り文字には注意が必要。

７エラー 1067（―）の原因と対処法
■SQLSTATE：なし

エラーメッセージ例
⇓
Fatal error: Can't open and lock privilege tables:Table 'mysql.user' doesn't exist

■エラーの原因
⇒MySQL Serverをインストール後初回起動時に、設定ファイル（my.ini）を上手く読み込めないなどが原因でサービスが起動できない。

■エラーへの対処法
⇒このエラーはMySQL Serverをデフォルトでない場所にインストールした場合や、設定ファイルを手動で作成した場合に発生することが多い。古いMySQLの設定ファイルがアンインストール後も残っている場合があるので、あれば削除する。WINDIR環境変数を調べて、設定ファイルをWINDIR直下に置いてみる。設定ファイルを手動で作成した場合は、コマンドとバージョンが一致しているかを見直す。それらの対処法でも解決できない場合、再インストールで解決する場合がある。

８エラー 1146（42S02）の原因と対処法
■SQLSTATE：42S02

エラーメッセージ例
⇓
Table 'データベース名.テーブル名' doesn't exist

■エラーの原因
⇒指定したテーブル名が解決できない。

■エラーへの対処法
⇒テーブル名や区切り文字の見直しを行う。「mysql.servers」などシステム関連のテーブルが対象となっている場合は、テーブルを作成する。インストーラを使用した場合は、再インストールを行うと解決する場合がある。

９エラー 1918（―）の原因と対処法
■SQLSTATE：なし

エラーメッセージ例
⇓
Error installing ODBC driver MySQL ODBC [ODBCのバージョン] Driver, ODBC error [エラー内容]

■エラーの原因
⇒MySQL Connector（ODBCドライバ）のインストールに失敗している。DLLが足りないなどの原因が考えられる。

■エラーへの対処法
⇒該当するDLLを先にインストールする。Microsoft Visual C++ Redistributable Packageが事前にインストールされていない場合は、インストールすることで解決できる場合がある。

１０エラー 2002（―）の原因と対処法
■SQLSTATE：なし

エラーメッセージ例
⇓
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'（Linuxの場合）

■エラーの原因
⇒ソケットファイルがないため、ソケットエラーが発生している。

■エラーへの対処法
⇒MySQL Sererを再起動してもソケットファイルが（mysql.sock）が該当のパスに自動生成されず、かつどこにも存在しない場合は、手動で作成する。異なるパスに存在する場合は、次のようにソケットファイルの場所を指定するオプションを付けて起動する。

mysql --socket=指定するパス/mysql.sock -u 'ユーザ名'@'ホスト名' -p

11　エラー 2003（―）の原因と対処法

■エラーの原因
⇒指定したホストに接続できない。

■エラーへの対処法
⇒指定したサーバがそのホストで稼働しているかを確認する。
「--skip-networking」を使用しないようにする。（このオプションを使用する場合、TCP/IPを使用して接続することができない）

■SQLSTATE：

エラーメッセージ例
⇓
Can't connect to MySQL server on 'ホスト名'


１２　エラー 2006（―）の原因と対処法
■SQLSTATE：なし

エラーメッセージ例
⇓
MySQL server has gone away

■エラーの原因
⇒サーバがタイムアウトして、接続がクローズしている。設定を超える大きさのクエリを実行しようとしている。など

■エラーへの対処法
⇒タイムアウトの場合は、タイムアウトまでの時間を変更する。（デフォルト：8時間）
設定ファイルの[mysqld]配下に次の一行を追加する。

wait_timeout = [タイムアウトまでの時間（単位：秒）]

クエリのサイズが大きすぎる場合は、最大サイズの設定を変更する。（デフォルト：1MB）
設定ファイルの[mysqld]配下に次の一行を追加する。

max_allowed_packet = [最大サイズ（入力例：8MB）]　※最大16MBまで設定可能

```