MySQLのコマンド

MySQLの使い始めに確認するコマンドの一覧です。以下のコマンド以降は通常のSQL文で操作します。

MySQLにログイン

# /usr/local/mysql/bin/mysql [DB名] -u [ユーザー名]

データベースの一覧を表示

> SHOW DATABASES;

データベースの切り替え

> USE [DB名]

テーブルの一覧

> SHOW TABLES;

フィールドの一覧

> SHOW FIELDS FROM [テーブル名];

ログアウト

> QUIT

MySQLをC言語から使う

PerlやPHPからではDBIや内蔵ライブラリ任せで良いのですが、C言語では直接MySQLのライブラリを使用します。

まずは、必要なヘッダやライブラリがどこにあるかを調べる。
# find / -name mysql.h
/usr/local/src/mysql-5.0.18/include/mysql.h
/usr/local/mysql/include/mysql/mysql.h

# find / -name libmysqlclient.so
/usr/local/src/mysql-5.0.18/libmysql/.libs/libmysqlclient.so
/usr/local/mysql/lib/mysql/libmysqlclient.so

# find / -name libmysqlclient.a
/usr/local/src/mysql-5.0.18/libmysql/.libs/libmysqlclient.a
/usr/local/mysql/lib/mysql/libmysqlclient.a

コンパイル・リンク時に-Iや-Lで指定が必要になります。
# gcc -c -I /usr/local/mysql/include/mysql/ myclient.c
# gcc -o myclient -L /usr/local/mysql/lib/mysql/ -l mysqlclient

一気にやるならこっち
# gcc -o myclient
-I /usr/local/mysql/include/mysql/
-L /usr/local/mysql/lib/mysql/
-l mysqlclient
myclient.c

実際のプログラムに関してはメルマガで紹介しますが、Linuxの場合出来上がったプログラムを使用する際に/usr/local/mysql/lib/mysql/をldconfigで登録しないとだめだったので動的リンクだったかも。
FreeBSDにも同じコマンドがあるのでメルマガ発行前にもう一度検証してみます。

MySQLの自動起動

MySQLの自動起動をRedHatLinuxとFreeBSDの場合ではどのようにするのか、MySQLの場合ソースの中の起動スクリプトmysql.serverを使用する。

Red Hat Linuxの場合(version4.0.20の時の記録)
# cd /usr/local/src/mysql-4.0.20/support-files
# cp mysql.server /etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig –add mysqld
# cp my-medium.cnf /etc/my.cnf

FreeBSDの場合
# /usr/local/src/mysql-5.0.18/support-files
# cp mysql.server /usr/local/etc/rc.d/mysqld.sh
# chmod 755 /usr/local/etc/rc.d/mysqld.sh