公開日: 2012年8月14日 02:27:45
最終更新: 2012年9月22日 13:36:38

MySQL インストール

MySQL インストール

最新版は公式サイトからダウンロードします。(要ユーザ登録)

最初に「select paltform」のドロップダウンリストから「source Code」を選択。次のページで一番下に表示された「Generic Linux (Architecture Independent), Compressed TAR Archive」をダウンロードします。
ブラウザによってページ全体が表示されないことがあるかも。要注意!

コンパイル前に、あらかじめ必要なパッケージのインストール。

$ yum -y install ncurses-devel
$ yum -y install gcc gcc-c++
$ yum -y install cmake

mysql 用のディレクトリを作成します。

$ mkdir -p /usr/local/mysql/var

mysql ユーザを作成します。

$ groupadd mysql
$ useradd -g mysql -d /usr/local/mysql/var mysql
useradd: 警告: ホームディレクトリが既に存在します。
skel ディレクトリからのコピーは行いません。

先ほどダウンロードした ソースコードを展開します。

$ tar -zxvf mysql-5.5.27.tar.gz -C /usr/src
$ cd /usr/src/mysql-5.5.27/

準備ができたら cmake でコンパイル & インストール

$ cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/usr/local/mysql/var \
-DENABLED_LOCAL_INFILE=true \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=ON

オプションについては mysql のサイトで確認しておいた方がよさそう。

CMAKE_INSTALL_PREFIX インストール先ディレクトリ
DEFAULT_CHARSET デフォルトの文字コード(utf-8を指定)
DEFAULT_COLLATION 照合順序(utf-8を指定)
MYSQL_DATADIR DB を格納するディレクトリ
ENABLE_LOCAL_INFILES load local data を有効(デフォルトはoff
WITH_EXTRA_CHARSETS デフォルト以外に使用する文字コード
WITH_INNOBASE_STORAGE_ENGINE INNODB エンジンを有効にする
WITH_READLINE readlineライブラリを使用する


失敗する場合は gcc-c++ など必要なパッケージがインストールされているか確認してください。また、失敗した場合はソースディレクトリを一度削除してからやり直してみてください。

$ make && make install

データディレクトリの所有権を変更

$ chown -R mysql. /usr/local/mysql/var

初期化スクリプト実行

$ /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/var

設定ファイルをコピー

$ cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

起動スクリプトをコピー

$ cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
$ chmod +x /etc/rc.d/init.d/mysqld

起動

service mysqld start

$ chkconfig mysqld on
$ chkconfig mysqld --list
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
$ ln -s /usr/local/mysql/bin/mysql /usr/bin/
$ ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/

mysql を起動します。

$ /etc/rc.d/init.d/mysqld start

まず最初に root のパスワードを設定しておきます。

$ mysqladmin -u root password '任意のパスワード'

# ↑ で設定したパスワードを入力
$ mysqladmin -u root -p -h localhost password '任意のパスワード'

# パスワード無しでログインできないことを確認。
$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

念のためですがパスワードが設定されていないユーザについては mysql データベースから削除しておきます。

$ mysql -u root -p'設定したパスワード' mysql

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

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# ユーザ情報を確認
mysql> select user,password,host from user;
+------+-------------------------------------------+-----------------------+
| user | password                                  | host                  |
+------+-------------------------------------------+-----------------------+
| root | *DEC************************************* | localhost             |
| root |                                           | localhost.localdomain |
| root |                                           | 127.0.0.1             |
| root |                                           | ::1                   |
|      |                                           | localhost             |
|      |                                           | localhost.localdomain |
+------+-------------------------------------------+-----------------------+
6 rows in set (0.00 sec)

# パスワードが空のユーザを削除
mysql> delete from user where password like "";
Query OK, 5 rows affected (0.00 sec)

# 再びユーザ情報を確認
mysql> select user,password,host from user;
+------+-------------------------------------------+-----------+
| user | password                                  | host      |
+------+-------------------------------------------+-----------+
| root | *DEC************************************* | localhost |
+------+-------------------------------------------+-----------+
1 row in set (0.00 sec)

mysql>
mysql>\q    # mysql からログアウト