MySQL 5.0.45をソースからインストールする on CentOS4.4

インストール方法は書籍やWebサイト各所にたくさんありますが、以外と一発でいかないものですね。
そんなわけで以下の環境にインストールしたばかりですので、メモしておきたいと思います。

  • MySQL5.0.45
  • OSはCentOS4.4

mysqlユーザの追加

# groupadd mysql
# useradd -g mysql mysql

ダウンロード

ソースのダウンロードを以下URLから行います。

MySQL AB :: MySQL 5.0 Downloads
http://dev.mysql.com/downloads/mysql/5.0.html#source

ここでは5.0.45のソース(tar.gz)をダウンロードします。

# cd /usr/local/src
# wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz/from/http://mirror.mysql-partners-jp.biz/
--09:30:47--  http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz/from/http://mirror.mysql-partners-jp.biz/
           => `index.html'
dev.mysql.com をDNSに問いあわせています... 213.136.52.29
dev.mysql.com|213.136.52.29|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://mirror.mysql-partners-jp.biz/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz [続く]
--09:30:48--  http://mirror.mysql-partners-jp.biz/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz
           => `mysql-5.0.45.tar.gz.1'
mirror.mysql-partners-jp.biz をDNSに問いあわせています... 59.190.130.254
mirror.mysql-partners-jp.biz|59.190.130.254|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 24,433,261 (23M) [application/x-gzip]

100%[====================================================================>] 24,433,261   479.30K/s    ETA 00:00

09:31:43 (444.54 KB/s) - `mysql-5.0.45.tar.gz.1' を保存しました [24433261/24433261]

解凍

# tar zxvf mysql-5.0.45.tar.gz 

解凍先へ移動

# cd mysql-5.0.45

コンパイル

# ./configure --with-charset=ujis --with-extra-charsets=all --with-mysqld-user=mysql --prefix=/usr/local/mysql

...(略)
Thank you for choosing MySQL!

#make
#make install

データベースの初期化

# /usr/local/mysql/bin/mysql_install_db --user=mysql

...(略)
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

mysql領域のパーミッション変更

# chown -R root.mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/var/

コンフィグレーションファイルの作成

# cp -p /usr/local/src/mysql-5.0.45/support-files/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
以下のセクションとキー値を加える

ここではUTF8でデータベースを構築します。

[client]
default-character-set=utf8

[mysqld]
old_passwords = 1
character_set_server=utf8
default-character-set=utf8
skip-character-set-client-handshake

[mysql]
default-character-set=utf8

起動スクリプトの配置

# cp -p /usr/local/src/mysql-5.0.45/support-files/mysql.server /etc/init.d/mysql
# chmod +x /etc/init.d/mysql
# /sbin/chkconfig --add mysql

いよいよ起動

# /sbin/service mysql start
Starting MySQL                                             [  OK  ]

終了も確認

# /sbin/service mysql stop
Shutting down MySQL...STOPPING server from pid file /usr/local/mysql/var/localhost.localdomain.pid
070829 17:05:34  mysqld ended

                                                           [  OK  ]
[1]+  Done                    /usr/local/mysql/bin/mysqld_safe --user=mysql

外部ホストからアクセスできるユーザの追加

# /usr/local/mysql/bin/mysql -u root

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.0.45-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> GRANT ALL PRIVILEGES ON *.* TO dev@localhost IDENTIFIED BY 'dev00' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO dev@"%" IDENTIFIED BY 'dev00' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------+-----------------------+
| user | host                  |
+------+-----------------------+
| dev  | %                     | 
| root | 127.0.0.1             | 
| dev  | localhost             | 
| root | localhost             | 
| root | localhost.localdomain | 
+------+-----------------------+
5 rows in set (0.00 sec)

上記GRANT文で、dev/dev00というmysqlユーザが外部ホストからアクセスできるようになりました。

ここでは開発用途を想定しているので権限はフルアクセスです。

データベースの作成

mysql>create database mydatabase;
Query OK, 1 row affected (0.00 sec)

外部ホストからアクセスできるか確認

...Access + ODBC ですかね。