!!!MySQLをソースからインストール(RedHat9) MySQLをソースのビルドから行います。 RPMでもいいのですが、どうもUTF-8対応が怪しかったためコンパイラオプションを 指定してMySQLの実行ファイル群を作成する方法を説明します。必ずroot権限で インストール作業を行うようにしてください。 「http://www.mysql.com/」よりソースのtar.gz形式をダウンロードします。 2005/12現在だとちょっと古いバージョンですが、「mysql-4.1.10a.tar.gz」をインストールしたときの手順を書きます。 なお、インストールする際には過去のMySQLのサービスが停止されていること、 関連するRPMなどがアンインストールされていることを確認します。 rpm -qa | grep MySQL のようにすると、RedHat9でのRPM形式でインストールされたMySQL関連のものが インストールされている場合は列挙できます。 !!MySQLのソースをビルド tar.gzを作業ディレクトリにて解凍し、 作成されたディレクトリに移動します。 tar xvfz mysql-4.1.10a.tar.gz cd ./mysql-4.1.10a 設定ファイルを初期化し、ビルドします。 ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charset=all --with-mysqld-user=mysql make make install 「./configure」の指定は1行で書くようにしてください。 ここでは、デフォルトのキャラクタセットをutf8(UTF-8)にしています。 また、インストールされたファイルが置かれるディレクトリは「/usr/local/mysql」になります。 make作業は結構時間がかかります。 なにかエラーが出た場合は、ビルドに必要なパッケージが足りていない場合があります。その場合は一度指摘のあったパッケージなどをインストールしてからMySQLのソースディレクトリにて「make clean」として一度コンパイルしたオブジェクトファイルなどを破棄してから、再度 ./configure〜makeを行ってください。 MySQLビルドには「glibc/glibc-devel/libstdc++/libstdc++devel/gcc-c++/ncurses/ncurses-devel」などが必要です。 make installで「/usr/local/mysql」にビルドした必要なファイル類がコピーされます。まだ「mysql-4.1.10a」内のファイルは必要ですので削除せずに次に進みます。 !!/usr/local/mysqlでの作業 cd /usr/local/mysql でインストールされたディレクトリに移動します。 以下でデータベースを初期生成します。 ./bin/mysql_install_db --user=mysql 以下で、mysqlユーザを追加します(すでに存在している場合は不要)。 groupadd mysql useradd mysql -g mysql 以下で、実行権限をディレクトリに与えます。 chown -R root /usr/local/mysql chown -R mysql /usr/local/mysql/var chown -R mysql /usr/local/mysql !!シンボリックリンクを指定 どのディレクトリに移動してもmysqlのコマンドラインに移動できるようにするには、 以下のようにシンボリックリンクを設定します。 ln -s /usr/local/mysql/bin/mysqld_safe /usr/local/bin/mysqld_safe ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin/mysqladmin ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql !!設定ファイルのコピー MySQLの制御を行うための設定ファイル「/etc/my.cnf」を生成します。 まず、MySQLのソースディレクトリ「mysql-4.1.10a」に移動します。 この中の「./support-files/my-medium.cnf」が設定ファイルです。MySQLの 規模によって設定ファイル(my-xxx.cnf)が複数用意されています。 これを「/etc/my.cnf」としてコピーします。 cp ./support-files/my-medium.cnf /etc/my.cnf 次に「vi /etc/my.cnf」として設定ファイルを編集します。 各セクションにて「default-character-set=utf8」を追加します。 これにより、MySQLの処理を行うときはUTF-8で使うように統一しています。 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8 [mysqld] default-character-set=utf8 これでmy.cnfを保存します。 !!起動スクリプトの作成と自動起動の設定 MySQLのソースディレクトリ「mysql-4.1.10a」に移動した状態で、 「./support-files/mysql.server」を「/etc/rc.d/init.d/mysqld」としてコピーします。 このファイルが起動用のスクリプトファイルです。 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld コピーしたファイルに実行権限を与えます。 chmod 755 /etc/rc.d/init.d/mysqld 最後にOSが起動したときに自動的にmysqldサービスが立ち上がるように、 chkconfigの設定を行います。 chkconfig --add mysqld これで、OS起動時にmysqldサービス(MySQLのサーバプロセス)が起動します。 以上でMySQLのソースファイルは不要となります。 tar.gzを解凍したときに出来た「mysql-4.1.10a」ディレクトリ自身を「rm -rf mysql-4.1.10a」のようにして削除します。 !!MySQLサーバサービスの起動と停止 以下でサービスを起動します。 /etc/rc.d/init.d/mysqld start 以下でサービスを停止します。 /etc/rc.d/init.d/mysqld stop 以下でサービスを再起動します。 /etc/rc.d/init.d/mysqld restart !!MySQLのrootユーザのパスワードを指定 mysqld(MySQLのサービス)を起動した状態で以下を実行することにより、MySQLのrootユーザのパスワードを指定します。 mysqladmin -u root password xxxx ここでは、パスワードを「xxxx」に設定していることになります。 これでインストール作業はすべて完了です。 !!キャラクタセットの確認 mysqldが起動している状態で、「mysql」を実行してMySQLのコマンドラインに移動してください。 mysql -u root -p この後、rootユーザのパスワードを聞いてきます。 上記で設定したパスワードを入力します。 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 73 to server version: 4.1.10a-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> みたいに出れば成功です。 ここで「show variables like 'char%';」と入力してください。 以下のように表示されましたか? +--------------------------+----------------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/mysql/charsets/ | +--------------------------+----------------------------------------+ すべてがUTF-8になっているのが分かります。 これで、MySQLを使う上で 文字コードをUTF-8で統一してIn/Outすることにより、 文字化け不都合および多言語対応ができます。 クライアント・サーバのキャラクタセットが統一されていないと 文字化けする原因になりますので、これはよく確認するようにしてください。 !!ところでデータの実体はどこにあるの? 上記のようにソースよりインストールしたときのMySQLのデータ自身は、 「/usr/local/mysql/var」ディレクトリ内に格納されています。 「create database xxx」で作成したデータベースはディレクトリで表現されているのが分かります。 バックアップを取る場合は、このディレクトリごとを保管しておけばよさそうですね。