2010年6月12日土曜日

MySQL を使ってみよう

CentOS で MySQL を使ってみます。

どうやら調べてみると、MySQL はインストール済みのようです。


# rpm -qi mysql

Name : mysql Relocations: (not relocatable)
Version : 5.0.22 Vendor : CentOS
Release : 2.1 Build Date : 2007年01月10日 19時13分08秒
Install Date: 2007年09月15日 04時55分30秒 Build Host : builder4.centos.org
Group : Applications/Databases Source RPM : mysql-5.0.22-2.1.src.rpm
Size : 5748994 License : GPL
Signature : DSA/SHA1, 2007年04月04日 09時25分09秒, Key ID a8a447dce8562897
URL : http://www.mysql.com
Summary : MySQL のクライアントプログラムと共有ライブラリ。
Description :


いま読んでいる書籍によると、最初からインストールされているものは
設定がカスタマイズされていて、使っていく上でつまずくことが多いので
ソースからインストールし直したほうがよい、という様な事が書いてあるのですが、
勉強していく上では、何かしらにつまずいたほうが勉強になるだろう
ということで、このままの設定で行くことにします。

現在のネットワーク環境は外部から隔離されているので、とりあえずセキュリティは
そこまで気を使わずに設定していきます。

んでは現在の設定がどうなっているか調べてみよう。

mysql がどこに入っているのか検索。

# rpm -ql mysql
/etc/ld.so.conf.d/mysql-i386.conf
/etc/my.cnf
/usr/bin/msql2mysql
/usr/bin/mysql
/usr/bin/mysql_config
/usr/bin/mysql_find_rows
/usr/bin/mysql_tableinfo
/usr/bin/mysql_waitpid
/usr/bin/mysqlaccess
/usr/bin/mysqladmin
/usr/bin/mysqlbinlog
/usr/bin/mysqlcheck
/usr/bin/mysqldump
/usr/bin/mysqldumpslow
/usr/bin/mysqlimport
/usr/bin/mysqlshow
/usr/lib/mysql
/usr/lib/mysql/libmysqlclient.so.15
/usr/lib/mysql/libmysqlclient.so.15.0.0
/usr/lib/mysql/libmysqlclient_r.so.15
/usr/lib/mysql/libmysqlclient_r.so.15.0.0
/usr/lib/mysql/mysql_config
/usr/lib/mysql/mysqlbug
/usr/share/doc/mysql-5.0.22
/usr/share/doc/mysql-5.0.22/COPYING
/usr/share/doc/mysql-5.0.22/EXCEPTIONS-CLIENT
/usr/share/doc/mysql-5.0.22/README
/usr/share/info/mysql.info.gz
/usr/share/man/man1/mysql.1.gz
/usr/share/man/man1/mysqlaccess.1.gz
/usr/share/man/man1/mysqladmin.1.gz
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqlshow.1.gz
/usr/share/mysql
/usr/share/mysql/charsets
/usr/share/mysql/charsets/Index.xml
/usr/share/mysql/charsets/README
/usr/share/mysql/charsets/armscii8.xml
/usr/share/mysql/charsets/ascii.xml
/usr/share/mysql/charsets/cp1250.xml
/usr/share/mysql/charsets/cp1251.xml
/usr/share/mysql/charsets/cp1256.xml
/usr/share/mysql/charsets/cp1257.xml
/usr/share/mysql/charsets/cp850.xml
/usr/share/mysql/charsets/cp852.xml
/usr/share/mysql/charsets/cp866.xml
/usr/share/mysql/charsets/dec8.xml
/usr/share/mysql/charsets/geostd8.xml
/usr/share/mysql/charsets/greek.xml
/usr/share/mysql/charsets/hebrew.xml
/usr/share/mysql/charsets/hp8.xml
/usr/share/mysql/charsets/keybcs2.xml
/usr/share/mysql/charsets/koi8r.xml
/usr/share/mysql/charsets/koi8u.xml
/usr/share/mysql/charsets/latin1.xml
/usr/share/mysql/charsets/latin2.xml
/usr/share/mysql/charsets/latin5.xml
/usr/share/mysql/charsets/latin7.xml
/usr/share/mysql/charsets/macce.xml
/usr/share/mysql/charsets/macroman.xml
/usr/share/mysql/charsets/swe7.xml
/usr/share/mysql/czech
/usr/share/mysql/czech/errmsg.sys
/usr/share/mysql/danish
/usr/share/mysql/danish/errmsg.sys
/usr/share/mysql/dutch
/usr/share/mysql/dutch/errmsg.sys
/usr/share/mysql/english
/usr/share/mysql/english/errmsg.sys
/usr/share/mysql/estonian
/usr/share/mysql/estonian/errmsg.sys
/usr/share/mysql/french
/usr/share/mysql/french/errmsg.sys
/usr/share/mysql/german
/usr/share/mysql/german/errmsg.sys
/usr/share/mysql/greek
/usr/share/mysql/greek/errmsg.sys
/usr/share/mysql/hungarian
/usr/share/mysql/hungarian/errmsg.sys
/usr/share/mysql/italian
/usr/share/mysql/italian/errmsg.sys
/usr/share/mysql/japanese
/usr/share/mysql/japanese/errmsg.sys
/usr/share/mysql/korean
/usr/share/mysql/korean/errmsg.sys
/usr/share/mysql/norwegian
/usr/share/mysql/norwegian-ny
/usr/share/mysql/norwegian-ny/errmsg.sys
/usr/share/mysql/norwegian/errmsg.sys
/usr/share/mysql/polish
/usr/share/mysql/polish/errmsg.sys
/usr/share/mysql/portuguese
/usr/share/mysql/portuguese/errmsg.sys
/usr/share/mysql/romanian
/usr/share/mysql/romanian/errmsg.sys
/usr/share/mysql/russian
/usr/share/mysql/russian/errmsg.sys
/usr/share/mysql/serbian
/usr/share/mysql/serbian/errmsg.sys
/usr/share/mysql/slovak
/usr/share/mysql/slovak/errmsg.sys
/usr/share/mysql/spanish
/usr/share/mysql/spanish/errmsg.sys
/usr/share/mysql/swedish
/usr/share/mysql/swedish/errmsg.sys
/usr/share/mysql/ukrainian
/usr/share/mysql/ukrainian/errmsg.sys



設定ファイルはどこにある?

# find / -name "my.cnf"
/etc/my.cnf


起動の設定

# chkconfig --list | grep mysql
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off


起動時の設定ファイルの指定

# cat /etc/init.d/mysqld | grep my.cnf
# config: /etc/my.cnf
# extract value of a MySQL option from /etc/my.cnf
get_mysql_option /etc/my.cnf datadir "/var/lib/mysql"
get_mysql_option /etc/my.cnf socket "$datadir/mysql.sock"
get_mysql_option /etc/my.cnf log-error "/var/log/mysqld.log"
get_mysql_option /etc/my.cnf pid-file "/var/run/mysqld/mysqld.pid"
# be no such entry in my.cnf, and the default behavior will be to not
# was not an entry in my.cnf.
/usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file="$mypidfile" --log-error="$errlogfile" >/dev/null 2>&1 &


設定ファイルの中身

# cat /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



まとめ

my.cnf /etc/my.cnf
basedir /var/lib
datadir /var/lib/mysql
socket /var/lib/mysql/mysql.sock
pid-file /var/run/mysqld/mysqld.pid



データベースの初期化

# ls -la /var/lib/mysql
合計 16
drwxr-xr-x 2 mysql mysql 4096 1月 10 2007 .
drwxr-xr-x 28 root root 4096 9月 15 2007 ..
# mysql_install_db --user=mysql
Installing all prepared tables
Fill help tables

To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h cent.lina password 'new-password'
See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
# ls -la /var/lib/mysql
合計 24
drwxr-xr-x 4 mysql mysql 4096 6月 12 06:32 .
drwxr-xr-x 28 root root 4096 9月 15 2007 ..
drwx------ 2 mysql root 4096 6月 12 06:32 mysql
drwx------ 2 mysql root 4096 6月 12 06:32 test


mysql ディレクトリ以下に mysql ディレクトリができてなんか気持ち悪い。。。