C言語(Windows環境)からMySQL #1 環境導入編
C言語(Windows環境)からMySQL #1 環境導入編
C言語(Windows環境)からMySQL #1 環境導入編
Windows環境でC言語を使っていて不意にMySQLとの接続をしたくなったものの、検索してもWindowsのコマンドプロンプト(文字コード:cp932)からC言語でMySQLにアクセスしているサンプルがあまり見当たらない(見つかってもコンパイラが違っていたり、Visual Studioを使っていたり、コマンドプロンプトベースじゃなかったりして筆者の環境に合わない)ので、試行錯誤をした結果を備忘録代わりにメモ。
コピペでサンプルが動かないなら自力でサンプルを作ればいいじゃない
なお、今回は安全性や動作速度などは一切考えずにあくまでも「Windowsのコマンドプロンプトから直接MySQLを使えるプログラムをC言語で作る」ことに注力しています。
セキュリティ面や動作速度、バグの有無などは考慮に入れていませんので参考にする場合はそのあたりにはお気を付けの上、自己責任で利用してください。
開発環境
C言語
MySQLの環境は以下のものを用意しました。
MySQL 5.5.56(zip形式のものをダウンロード、解凍して使用)
Connector/Cは以下のものを用意しました。
Connector/C 6.1.10(zip形式のものをダウンロード、解凍して使用)
本記事は以上の環境を前提に説明を行います。
C言語からMySQLを利用する手順
C言語からMySQLを利用する手順
C言語からMySQLを利用するための手順は大雑把に書くと以下の通りです。
1.MySQLの初期設定をする ← 今回はココと
2.Connector/Cを準備する ← ココ
他の環境(Javaとか)から簡単に叩けるんだし、楽勝!!・・・と思ったら、コンパイルで思いっきり詰まって悔しかったのでメモに残したのは内緒。
1.MySQLの初期設定をする
まずはMySQLを使えるようにする必要があるのでダウンロードしてきます。
MySQLのページからダウンロードしてきます。この際、msi形式(Windows用のインストーラー)とzip形式は、どちらを利用しても構いません。
筆者はzip形式を利用しています。なお、iniファイルの作成などに自信が無い場合はmsi形式をおすすめします。規約をよく読んだうえでダウンロードと導入を行ってください。
今回筆者は以下のようなフォルダ構成になる用にフォルダを配置しました。
MySQLサンプル用フォルダ
┠Sample.c(ソースコード)
┠Makefile(makeファイル)
┃
┗mysql-5.5.56-winx64(MySQL本体のフォルダ)
┣(省略)
┠my.ini
┣bin(★)
┣include(★)
┗lib(★)
msi形式を利用した場合などはフォルダ構成やインストールフォルダが筆者と異なる場合があります。その場合、コンパイルなどでmysql-5.5.56-winx64というフォルダの場所を指定する際に該当のフォルダを指定するようにしてください。
以降の説明は上記のフォルダ構成の前提で進めます。
1-2.MySQLの文字コードを設定する
MySQLを利用する際に、文字コードの設定でトラブルを起こしたという例は非常によく聞きます。そのため、フォルダの配置/インストール作業が完了したら文字コードを設定します。
とりあえず、コマンドプロンプトがcp932なので、client側の文字コードがcp932になるように※設定します。
※通常はトラブルの原因になるので windowsのコマンドプロンプトからC言語で作ったプログラムを利用してMySQLを叩きたいなんていう変態でもない限りは utf8あたりで統一することをおすすめします。
抜粋するとこんな感じ↓
[client] default-character-set=cp932 [mysql] default-character-set=cp932
・・・ほんとは試行錯誤したけれど、結局この2か所だけいじったらうまくいったからそれ以上いじるのをやめたのは内緒
2.Connector/Cを準備する
C言語に限らず、プログラミング言語からMySQLを利用する場合、言語とMySQLの間を取り持つ役割を果たすドライバを利用すると比較的手軽にMySQLを利用することができます。
C言語の場合はConnector/Cというドライバがあるため、これをダウンロードします。こちらも規約をよく読んだうえでダウンロードと導入を行ってください。
MySQLの公式ページのConnector/Cのページに行きます。
DOWNLOADSの項目を選び、画面下の方にスクロールするとこんな感じ↓の画面になるので、使っている環境にあったものを選びます。zipとmsi形式はどちらでも大丈夫です。
(筆者はまるで囲んだx86-64用のzip形式のものを選択しました。)
次の画面では、一番下の「No thanks, just start my download.」を選択するとすぐにダウンロードが始まります。
ダウンロードが終わったら、zipファイルを解凍します。msi形式を利用した方はそのままインストールをして下さい。
解凍が終わったら、フォルダを配置します。筆者は先ほどのMySQL本体と併せて以下のように配置しました。
MySQLサンプル用フォルダ
┠Sample.c(ソースコード)
┠Makefile(makeファイル)
┃
┣mysql-5.5.56-winx64(MySQL本体のフォルダ)
┃ ┣(省略)
┃ ┣bin(★)
┃ ┣include(★)
┃ ┗lib(★)
┃
┗mysql-connector-c-6.1.10-winx64(connector Cのフォルダ)
┣(省略)
┣bin(※)
┣include(※)
┗lib(※)
MySQL本体と同様Connector/Cも、msi形式を利用した場合などはフォルダ構成やインストールフォルダが筆者と異なる場合があります。その場合、コンパイルなどでmysql-connector-c-6.1.10-winx64というフォルダの場所を指定する際に該当のフォルダを指定するようにしてください。
以降の説明は上記のフォルダ構成の前提で進めます。
これでひとまず必要なものがそろいました。(C言語の環境導入はこちらー>前編 後編 おまけその1 おまけその2)
いよいよソースコードを書き始めます。
。。。が、長くなりそうなのでここでいったん休憩(^^
次回をお楽しみに!
筆者のおすすめ記事
MinGW-w64とmsys2で作るC言語環境構築
C言語練習問題一覧
C言語でBINGOを作ろうシリーズ記事一覧
実践力が身につくC言語講座 連載リンク
競技プログラミングをイメージしたライブラリ活用講座
競技プログラミング風-標準Cライブラリ入門 連載
アルゴリズムをマスターして技術力アップ!
実践アルゴリズム講座 連載
パズルゲームの解析をテーマにしたC++講座
ゲーム解析プログラミング 連載