MySQL 5.0.51をソースからインストールする on CentOS5.1

以下の環境にインストールしたばかりですので、メモしておきます。
自分の過去エントリ(MySQL 5.0.45をソースからインストールする on CentOS4.4)を参考にしました。

  • CentOS5.1
  • MySQL5.0.51a

mysqlユーザの追加

# groupadd mysql
# useradd -g mysql mysql

MySQLのダウンロード

MySQLのサイトはこちら
MySQL :: 世界でもっとも普及している、オープン ソース データベース

MySQL5.0のダウンロードはこちらから
MySQL :: MySQL 5.0 Downloads

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

# cd /usr/local/src
# wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51a.tar.gz/from/http://mirror.mysql-partners-jp.biz/

解凍

# tar -zxvf mysql-5.0.51a.tar.gz

解凍先へ移動

# cd mysql-5.0.51a

コンパイル

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

私の環境では、gccの他、ncurses-devel*1が必要になりました。

データベースの初期化

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

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

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

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

# cp -p /usr/local/src/mysql-5.0.51a/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.51a/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.                                       [  OK  ]

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

再度MySQLを起動してから行います。

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

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

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

mysql>

ユーザ情報の確認

mysql> select user,host from user;
+------+-------------------+
| user | host              |
+------+-------------------+
| root | 127.0.0.1         | 
|      | DSV-WS03-CentOS51 | 
| root | DSV-WS03-CentOS51 | 
|      | localhost         | 
| root | localhost         | 
+------+-------------------+
5 rows in set (0.00 sec)


ユーザを追加します。

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         | 
|      | DSV-WS03-CentOS51 | 
| root | DSV-WS03-CentOS51 | 
|      | localhost         | 
| dev  | localhost         | 
| root | localhost         | 
+------+-------------------+
7 rows in set (0.00 sec)

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

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

データベースの作成

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

作成したデータベースに作成したユーザでログインする

# /usr/local/mysql/bin/mysql -udev -pdev00 mydatabase

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

ファイアウォールを有効にしている場合、MySQLのポート(3306)を解除する必要があります。

# system-config-securitylevel-tui

確認は、...Access + ODBC ですかね。
MySQL :: MySQL Connector/ODBC 3.51 Downloads


2008/03/04 修正:php.iniのmbstringの設定が間違っていたので修正しました。

*1:yum -y install ncurses-devel