MySQL導入ガイド

ソース配布でのインストール

簡単インストールコマンドのリスト

MySQLをソースからインストールする際に必要となる、基本的なコマンドを紹介します。

groupadd mysql
useradd -g mysql mysql
gunzip < mysql-VERSION.tar.gz | tar -xvf -
cd mysql-VERSION
./configure --prefix=/usr/local/mysql
make
make install
scripts/mysql_install_db
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/safe_mysqld --user=mysql &


インストール手順

MySQL用のユーザとグループの作成

mysqldデーモンを実行させるためのユーザとグループを作成します。groupaddコマンドは指定した名称のグループを作成し、useraddコマンドは指定した名称のユーザを作成します。-gオプションで作成するユーザのグループを指定することができます。

groupadd mygroup
useradd -g mygroup mysql

システムによっては、useraddの代わりにadduserコマンドが用意されていることがあります。使い方は同じです。

ダウンロードファイルの解凍

MySQL ABのダウンロードページ(http://dev.mysql.com/downloads/)から、ソースファイルのリンクをクリックします。Linuxのソースファイルであれば、Linux (non RPM packages)がダウンロードのリンクです。無償のMySQLをインストールする場合はMySQL Community Server、有償の場合はMySQL Enterpriseを選択します。

ダウンロードしたファイルを作業ディレクトリに移動させます。

mv mysql-VERSION.tar.gz /usr/src/

ファイルを解凍させます。

gunzip < mysql-VERSION.tar.gz | tar xvf -
...mysql-VERSIONディレクトリが作成される

解凍されたディレクトリに移動します。

cd mysql-VERSION

configureコマンドでコンパイル

インストール時に文字セットを指定する場合は、configureコマンドの --with-charset オプションで文字セットを指定します。たとえば文字セットとしてUTF-8を指定するには、下記のようにconfigureコマンドにオプションを与えます。

./configure --with-charset=utf8

configureの実行時、文字セットの指定以外にいくつかのオプションも指定できます。

./configure --with-charset=ujis \
    --prefix=/usr/local \
    --localstatedir=/sql/data

コンパイルが失敗する場合は「コンパイル時の問題」を参照。

configure後はmakeでインストールします。インストール作業はrootで行ってください。

make
make install

MySQL特権テーブルを生成

MySQLを初めてインストールしたサーバであれば、インストール完了後にMySQL特権テーブルを生成します。

./scripts/mysql_install_db

mysql_install_dbスクリプトはmysqlデータベースにuserdbhosttables_privcolumns_privテーブルを作成します。これらの特権はrootユーザーにMySQLの管理者権限を許可し、そして、だれもがtestという名前のデータベースを作成、使用できるように許可されています。

※rootのパスワードの初期値は空です。この状態はセキュリティ的に危険で、全てのユーザがパスワードなしでrootになれることを意味します。

データディレクトリ以下のファイルの所有者をmysqlに、それ以外のファイルの所有者をrootにする手順は以下のとおりです。

chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data

次に必要に応じて下記の操作を行う

  • Perl DBI/DBDインタフェースのサポートをインストールする場合は、 「PerlDBI/DBDインターフェイス」を参照のこと。
  • MySQLをマシン起動時に自動的に開始したい場合、support-files/mysql.server をシステムのスタートアップファイルがある場所にコピーする。詳しくは「自動起動と停止」を参照。

全てがインストールされた後、配布の初期化とテストを行なうべきです。

/usr/local/mysql/bin/safe_mysqld
--user=mysql &

MySQLサーバーを開始

サーバを起動と同時にMySQlを自動起動したい場合は、support-files/mysql.serverをシステムの起動ファイルがあるディレクトリに設置します。

全てがインストールされた後、実行テストを行ないます。MySQLを起動するには、以下のコマンドを使用します。

mysqld_safe --user=ユーザ名 &


インストールオプション

configureスクリプトには、MySQLをコンフィグする際のオプションが多数用意されています。通常は、 configureコマンドラインにオプションを使用して行います。いくつかの環境変数を使用してもconfigureに影響を与えることができます。

configure がサポートするオプションの一覧は、次のコマンドを実行:

./configure --help

コンパイルオプション

1) クライアントだけをコンパイル

./configure --without-server

2) ベンチマークツールをインストールしない

./configure --without-bench

3) ドキュメントをインストールしない

./configure --without-docs

4) ログファイルとデータベースディレクトリを指定する

インストール先ディレクトリの変更:mysqlプログラムを /usr/local/mysql 配下にインストールします。

./configure --prefix=/usr/local/mysql

データベースディレクトリの変更:データベースディレクトリを /usr/local/mysql/data に変更します。

./configure --localstatedir=/usr/local/mysql/data

5) ソケットの位置の変更

ソケットをデフォルト位置(通常は /tmp または /var/run)でなく他のディレクトリに変更します。

./configure --with-unix-socket-path=/path/to/socket/dir

※ /path/to/socket/dir は絶対パス名でないといけません。

6) 静的リンクされたプログラムをコンパイル

./configure --with-client-ldflags=-all-static
\
--with-mysqld-ldflags=-all-static

7) 非NULL項目にデフォルトの項目値を使用しない

非 NULL 値を要求する全ての項目に値を明示的に指定しなければ、INSERT構文はエラーを生成します。デフォルト値の使用を抑えるには、次のようにconfigureを実行しましょう。

CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS
./configure

8) 文字セットの変更

./configure --with-charset=CHARSET

※ 文字セットを変更したい場合は、コンフィグレーション間で make distclean を行なう必要があります。
※ テーブルを生成した後に文字セットを変更する場合、isamchk -r -q を全てのテーブルに実行する必要があります。そうでないと、インデックスは正しくソートされません。


パッチの適用

MySQLのパッチは以下の場所に公開されています。

パッチエリア

FTP サイトに配布されるパッチはテキストか gzip 圧縮されたファイルです。
テキストの場合は、上に示したメーリングリストからのパッチと同じにします。 圧縮されたパッチを適用するには、 MySQLソースツリーのトップレベルに移動し、以下のコマンドを実行します。

> gunzip < patch-file-name.gz | patch
-p1
> rm config.cache
> make clean

それから通常のソースインストールの指示をconfigureから始めます。現在実行しているMySQLをシャットダウンし、make install実行後、MySQLサーバを再起動します。 

メーリングリストのパッチを適用するには、そのメッセージをファイルに保存した後、MySQLソースツリーに移動して、以下のコマンドを実行します。

> patch -p1 < patch-file-name
> rm config.cache
> make clean

関連記事