トラブルシュート編この記事は2017年8月20日に書かれたものです。内容が古い可能性がありますのでご注意ください。トラブルシュート編~前回までのあらすじ~Windowsのコマンドプロンプト(文字コード:cp932)からC言語でMySQLにアクセスしたい!!と思い立った勇者筆者はついに実行ファイルを完成させ、魔法の呪文プログラムの内容を解説したのだった。Sample.exeを実行すると様々なトラブルが襲い掛かってきた!!そこで勇者筆者はSample.exe実行時のトラブルシュートをしようと決意するのだった...。コピペでサンプルが動かないなら自力でサンプルを作ればいいじゃない(^お^なお、今回は安全性や動作速度などは一切考えずにあくまでも「Windowsのコマンドプロンプトから直接MySQLを使えるプログラムをC言語で作る」ことに注力しています。セキュリティ面や動作速度、バグの有無などは考慮に入れていませんので参考にする場合はそのあたりにはお気を付けの上、自己責任で利用してください。おまけその2MySQLの環境は以下のものを用意しました。5.5.56(zip形式のものをダウンロード、解凍して使用)Connector/Cは以下のものを用意しました。6.1.10(zip形式のものをダウンロード、解凍して使用)本記事は以上の環境を前提に説明を行います。C言語からMySQLを利用する手順C言語からMySQLを利用する手順C言語からMySQLを利用するための手順は大雑把に書くと以下の通りです。今回はココ他の環境(Javaとか)から簡単に叩けるんだし、楽勝!!・・・と思ったら、コンパイルで思いっきり詰まって悔しかったのでメモに残したのは内緒。前回までで5の実行まで+ソースコードの解説が無事終りました。existとか...って言われたって?それはデータベース側に原因が(モゴモゴ今回はその原因と対処法です。上記4つのエラーの原因と解決法をサクッと載せておきます。※全部を載せているとキリがないので良く出てきそうな4つを挙げてみました。(10061)上記のように出てきた場合はMySQLへの接続に失敗しています。なっていた部分)が間違っている2.そもそもMySQLが起動していないあたりが考えられます。間違いがないかどうかよく確認して、よ~く確認して、よ~~~~~く確認してみましょう。使えない場合はMySQLが起動していない可能性があります。使えない場合、外部からのアクセスを拒否する設定になっていないか確認しましょう。MySQLだけでなく、サーバそのものがアクセスを拒否している可能性もあるので要注意。ファイヤウォールとかファイヤウォールとかファイヤウォールとかといった対処になります。YES)上記のように出てきた場合はMySQLへのアクセスには一応成功していますが、MySQL側にアクセス拒否されています。いやぁぁぁぁぁ(X_X)来ないでぇぇぇぇぇ主な原因としては1.ユーザ名が間違っている2.パスワードが間違っている3.アクセスする相手を間違えているあたりが考えられます。使える場合、MySQLのユーザのアクセス可否の設定を確認しましょう。むやみに許可を出すとセキュリティ上大きなリスクが生じる可能性があります。ソースコードで設定していたものと違うホスト名/IPアドレスだった場合、全く違うPCのMySQLにアクセスしている可能性があります。自身で判断した上で必要な対応をしてください。゚)ミといった対処になります。'table_name'上記のように出てきた場合はMySQLにアクセスしているユーザにはデータベースを操作する権限がありません。文を実行する権限が無いことを表しています。主な原因としては1.該当のユーザの権限が適切に設定されていないあたりが考えられます。GRANT文などを使用して適切に権限を設定するといった対処になります。exist上記のように出てきた場合は該当のテーブルが存在していないことになります。エラーとちょっと似てる?かも主な原因としては1.テーブル名を間違えている2.テーブルが存在しないあたりが考えられます。テーブル名をよ~~~~~~~~~~~~~~~~~~~~く確認しましょう。そもそもテーブルが存在しないと使えません。TABLESを打つなどして、テーブルがあるのかどうか確認しましょう。゚)といった対処になります。実行!!改めて実行の準備が整ったので、もう一度実行してみましょう。