ずっと前、少しだけ MySQL を使ったことはあったのですが、もう殆ど忘れていました。Linux にインストールするところから Visual Studio 2008 のサーバーエクスプローラーを使ってリモートからデータ接続を行うまでの記録です。
環境は、サーバーが、
CentOS 6.2 x86_64
MySQL 5.1.61
クライアントが、
Windows 7 Ultimate SP1 32bit
Visual Studio 2008 Professional Edition SP1
.Net Framework 3.5 SP1
MySQL Connector/Net 6.5.4
サーバー側
MySQLのインストール
あまり時間もなかったので、最も簡単なGNOMEデスクトップからGUIによるインストールを行いました。一応手順を記述します。
-
メニューから[システム]-[管理]-[ソフトウェアのの追加/削除]をクリックします。
- 左側ツリーから
Database
┗MySQLデータベースサーバー
を選択すると右側に現れる
mysql-server-5.1.61-4.el6(x86_64)にチェックし[適用]ボタンをクリックします。 - 指示に従いインストールを続けます。
以下が自動で追加インストールされます。
・perl-DBD-MySQL-4.013-3.el6(x86_64)
・perl-DBl-1.609-4.el6(x86_64)
・mysql-libs-5.1.61-4.el6(x86_64)
・mysql-5.1.61-4.el6(x86_64) - インストールが終わったら、言語セットをUTF8に設定します。
キャラクタセットをUTF8に設定するために “/etc/my.cnf” を編集します。[mysqld] default-character-set=utf8 character-set-server=utf8 [client] default-character-set=utf8
- [mysqld]の中に “default-character-set=utf8″ と
“character-set-server=utf8″ を追加します。 - [client]を追加し、その中に “default-character-set=utf8″ を追加します。
- [mysqld]の中に “default-character-set=utf8″ と
- OSの起動時、サービスが自動起動するようにします。(userは、root)
※ここからは、ターミナルからキャラクタベースでコマンド入力します。$ chkconfig mysqld on
- 確認
$ chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
→ 2,3,4,5 が on になっていることを確認します。
- サービスの手動制御コマンド
$ /etc/rc.d/init.d/mysqld start
【引数説明】
start … 開始
stop … 停止
status … 実行状態を表示
restart … stop, start を順に実行
condrestart … 動作していれば停止し、再起動する
DBユーザの作成
- rootユーザで実施しました。
db_user というDBユーザーを作成します。$mysql mysql> grant select,insert,delete,update,create,drop,file,alter,index on *.* to db_user@'%' identified by 'password'; mysql> grant select,insert,delete,update,create,drop,file,alter,index on *.* to db_user@'localhost' identified by 'password';
- 最初、上の行(to db_user@’%')を実施したのですが、ssh接続したターミナルからdb_userで接続できなかったため下の行(db_user@’localhost’)を実施しました。これでよかったのかどうかはわかりませんが結果オーライでここに記述します。
データベースの作成
- データベースの確認
db_user というDBユーザーで接続します。Linux User は、root 権限のない普通のユーザーで実施しています。$ mysql -u db_user -p mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+
- データベースの作成
user_db というデータベースを作成します。mysql> create database user_db;
- データベースの確認
ちゃんとできているか確認します。最後に “user_db” の一行が追加されているのでOK.mysql> show databases +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | | user_db | +--------------------+ mysql> exit
- 言語セットの確認
作成したデータベースの言語セットがUTF8になっていることを確認します。
作成したデータベースにログインするため、一旦 “\q” で mysql インタプリタを抜けてから以下を実行します。$ mysql -u db_user -D user_db -p mysql> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
テスト用テーブルの作成
- DBユーザ db_user で、データベース user_db に接続し、テスト用のダミーテーブル test_tbl を作成します。
$ mysql -u db_user -D user_db -p mysql> create table test_tbl ( -> id INT NOT NULL AUTO_INCREMENT, -> title VARCHAR(10) NOT NULL, -> update_date DATE, -> PRIMARY KEY (id) -> );
クライアント側
.NET で接続したいので、MySQL用データプロバイダーを入手し、Visual Studio から、作成したデータベースに接続し、テスト用のテーブルにデータを挿入してみる。
ダウンロード& データプロバイダのインストール
- http://dev.mysql.com/downloads/ の Connector/Net をクリックしジャンプしたページの Windows (x86, 32-bit), MSI Installer [Download] をダウンロードする。
- ダウンロードした msi ファイルを実行、ウィザードに従い、インストール
- Visual Studio 2008 – サーバーエクスプローラー を開き、データ接続の上で右クリック
- コンテキストメニューから [接続の追加] を選択
- 接続の追加ダイアログにて、サーバー名(またはIP)、ユーザー名/パスワード、データベース名を入力し、[テスト接続] をクリックし、接続を確認。
- 接続確認がOKなら、言語セットをUTF8に設定するため、[詳細設定(V)]のボタンをクリック
詳細プロパティダイアログにて、Character Set の内容を “utf8″ に設定。後は[OK]クリックでVS2008 サーバーエクスプローラーに戻る。
※このとき、必ず “utf8″ は、小文字で入力してください。 - Server Name に指定したサーバー名(例ではcentos6)でツリーが構成される。テスト用テーブル “test_tbl” をダブルクリックすると、デザインモードで開かれ、また右クリックして「データの取得」を選択するとグリッドがオープンされ、データを挿入したり、修正したり加工ができる。