MySQL のインストール方法(コンパイルでのインストール方法です)
バージョンは 5.1.30 で解説しますがバージョンが違ってもやり方は同じです。
また、この方法で 4.1.22 もインストールできました。
1.mysqlユーザの作成
mysql のグループを作成します。
# groupadd mysql
mysq ユーザを作成します。
# useradd -g mysql -d /home/mysql mysql
2.ソースの入手MySQLの公式サイトからダウンロードします。
http://dev.mysql.com/downloads/mysql/5.1.html
Source downloads の Compressed GNU TAR archive (tar.gz)
をダウンロードしてください。
3.ダウンロードと解凍
root で作業します。
# cd /usr/local/src/
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.30.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/
# tar zxvf mysql-5.1.30.tar.gz
# cd mysql-5.1.30
4.configure (コンパイル前のチェック)
今回のオプションで必要のないはなくても問題ありませんが、prefix の指定はしておくのはお勧めになります。
–prefix インストール先の指定
–with-charset デフォルトのキャラクタセットを指定
–with-extra-charsets 全てのキャラクタセットを使用可能にします。
–with-plugins
- innobase innodb を有効にします。
- partition partition 機能を有効にします。
同じサーバに2サービスインストールする場合、
–with-unix-socket-path=/tmp/mysql2.sock ソケット名を指定してください。
–with-tcp-port=23306 ポートを各自決めて指定してください。
# ./configure –prefix=/usr/local/mysql –with-charset=utf8 –with-extra-charsets=all –with-plugins=innobase,partition
オプション指定なしの場合は
# ./configure
prefixのみの場合は
# ./configure –prefix=/usr/local/mysql
下記エラーの場合
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details.
yum を使用して gcc-c++ をインストールしてください。
# yum install gcc-c++
下記エラーの場合
error: No curses/termcap library found
yum を使用して ncurses-devel をインストールしてください。
# yum install ncurses-devel
5.make と make install (コンパイルとインストール)
# make
# make install
下記エラーの場合
make: command not found
yum を使用して ncurses-devel をインストールしてください。
# yum install make
6.データベースの初期化
# /usr/local/mysql/bin/mysql_install_db
7.my.cnf のコピー(後で環境にあわせて設定してください。)
# cp -p /usr/local/src/mysql-5.1.30/support-files/my-medium.cnf /usr/local/mysql/var/my.cnf
8.権限の変更
# chown -R mysql:mysql /usr/local/mysql
9.MySQLの起動
# /usr/local/mysql/share/mysql/mysql.server start
10.起動できない場合
# less /usr/local/mysql/var/[hostname].err
にエラーの内容が表示されます。
今回は下記の内容が出て起動に失敗しました。
/usr/local/mysql/libexec/mysqld: unknown option ‘–skip-federated’
今回は、ファイルを開き
vi /usr/local/mysql/var/my.cnf
下記をコメントアウトすることで対応しました。
skip-federated
以上になります。