このページではLinux、Apache/httpd、PHP及びMySQLを用いたLAMPシステムのMySQLのインストールと設定方法について解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
CMS/LAMPシステムの構築

CMS/LAMPシステムとは

ApacheとPHPの設定

MySQLの導入と基本設定

MySQLのコントロール

HTTPSのためのルーター設定

phpMyAdminのインストール

データベースの作成と削除

XOOPS Cubeのインストール

WordPressのインストール

MovableType3のインストール

MovableType4のインストール

MovableType5のインストール

osCommerceのインストール

データベースのバックアップ

データベースのリストア


CMSの導入に最適なMySQLバージョンについて

2008年3月現在、一般的に利用されている MySQL のバージョンは、 "3.23.x" 、 "4.0.x" 、 "4.1.x" 及び "5.0.x〜5.1.x" です。

最新の "6.0.x" はまだ対応する アプリケーション が少ないようです。

WBEL3 及び CentOS3 に標準で インストール される "3.23.58" は、既に開発が終了している安定バージョンで、利用したい CMS がこのバージョンに対応していればそのまま利用するのが簡単で確実です。

しかしながら、これから新しくリリースされる CMS が "3.23.58" を正式にサポートすることはあまり期待できないでしょうし、現在利用できるCMSでも将来のバージョンアップによっては利用できなくなる可能性も否定できません。

もちろんに独自に新しいバージョンのMySQLを入手してWBEL3やCentOS3にインストールすることは可能です。しかしこの場合、WBEL3やCentOS3に標準で提供される Perl との連携プログラムなどがうまく対応できないことがあり、きちんとした動作環境を整えるのは初心者にはかなり難しい作業になる可能性があります。

従って 構築中のLinuxサーバー をCMSを中心とした 公開サーバー 運営に利用したい場合には思い切ってWBEL3やCentOS3の利用に見切りを付け、WBEL4やCentOS4にバージョンアップするのが賢明かもしれません。

一方、WBEL4やCentOS4には標準で比較的新しい安定バージョンの "4.1.2x" がインストールされますから(正しくは4.1.10から yum でアップデートされた後のバージョンです)、特に悩む必要はありません。そのまま付属のMySQLを利用すればOKです。

ちなみにMySQLは "4.0.x" から "4.1.x" にバージョンアップしたときに、2 バイト 文字、つまり私たち日本人にとって重要な 日本語の処理に関して大幅な変更 が行われています。

バージョンの数字に惑わされそうになりますが、実用上のイメージとしては "4.0.x" は "3.23.58" に極めて近く、そこから大きく内容が変わった "4.1.x" は "5.0.x〜5.1.x" 寄りのステップアップバージョンということになるでしょうか。

その相違点の詳細については割愛しますが、現実問題としては "3.23.58" や "4.0.x" の環境を "4.1.x" 以降にバージョンアップするには、それなりの難しさとリスクを背負うことになると理解してください。

一方、 "4.1.x" から "5.0.x〜5.1.x" への環境移行は比較的難易度が低いと思われますし、ひとまず "4.1.x" で利用をスタートしておけば、将来的にOSのバージョンアップを行って "5.0.x〜5.1.x" を利用しなければならなくなったとしてもあまり困ることはないでしょう。

そういう意味では "4.1.2x" を標準とするWBEL4やCentOS4の選択は現時点ではベターといえるでしょう。

従って既に "5.0.45" が標準でインストールされているCentOS5を利用しているのであれば、同じ理由から将来的な問題はあまり考慮する必要はなく、そのまま利用すれば良いということになります。

以上のような理由から、このパートでは、

WBEL3及びCentOS3の場合:

標準のバージョン "3.23.58" を yum を利用してインストールする方法と及び初期設定。

WBEL4及びCentOS4の場合:

インストール済みの "4.1.2x" の初期設定。

CentOS5の場合:

インストール済みの "5.0.45" の初期設定。

のそれぞれについて解説します。

このページの先頭へ↑

WBEL3及びCentOS3へのMySQL"3.23.58"のインストール

WBEL3 や CentOS3 の インストール の際は CMS の動向を見越して適切なバージョンを導入するため、「パッケージグループの選択2 パッケージグループの選択でのMySQLの扱いについて(WBEL3) パッケージグループの選択でのMySQLの扱いについて(CentOS3) 」 では敢えて " MySQL Database" の導入を見送りました。

しかし本来最初からインストールされるべき "3.23.58" であれば、 yum を利用して簡単にインストールを行うことができます。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント で 構築中のLinuxサーバー に ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) 。

それから su コマンド で アカウント を "root" に変更し、引き続き以下のようにコマンドを実行してMySQLをインストールしてください。

ここでインストールするパッケージは、MySQL関係で本来WBEL3及びCentOS3のインストール時に導入されるべきものです。通常は不要なものも含まれますが問題はありません。
ちなみに右は i386 アーキテクチャ でのインストール例です。
x86_64 をお使いの場合はパッケージ名のアーキテクチャ表記が "x86_64" になります。
[tanaka@web1 tanaka]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 root]# yum install mysql-server mysql-devel mysql-bench libdbi-dbd-mysql MySQL-python qt-MySQLEnter
Gathering header information file(s) from server(s)
Server: White Box Enterprise Linux 3.0 - i386 - Basee
Server: White Box Enterprise Linux 3.0 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: mysql-bench 3.23.58-15.RHEL3.1.i386]
[install: mysql-devel 3.23.58-15.RHEL3.1.i386]
[install: MySQL-python 0.9.1-6.i386]
[install: mysql-server 3.23.58-15.RHEL3.1.i386]
[install: libdbi-dbd-mysql 0.6.5-5.i386]
[install: qt-MySQL 1:3.1.2-13.4.i386]
I will install/upgrade these to satisfy the dependencies:
[deps: mx 2.0.3-8.i386]
[deps: libdbi 0.6.5-5.i386]
Is this ok [y/N]: yEnter
Downloading Packages
Getting mysql-bench-3.23.58-15.RHEL3.1.i386.rpm
mysql-bench-3.23.58-15.RH 100% |=========================| 528 kB  00:00
 中略
Installed: mysql-bench 3.23.58-15.RHEL3.1.i386 mysql-devel 3.23.58-15.RHEL3.1.i386 MySQL-python 0.9.1-6.i386 mysql-server 3.23.58-15.RHEL3.1.i386 libdbi-dbd-mysql 0.6.5-5.i386 qt-MySQL 1:3.1.2-13.4.i386
Dep Installed: mx 2.0.3-8.i386 libdbi 0.6.5-5.i386
Transaction(s) Complete
[root@web1 root]#

これでインストール作業は終了しました。

この修正をしなくても、一見きちんと動作します。ところがずっと以前に コスチュームの通販のサイト を作成しているwebクリエータから「高知県と香川県が登録できない」という問題を聞き、解決したのがこの方法というわけです。
まさか意図的なバグとは思えないので、他にも似たような事例はあるかもしれません。

次に、MySQLの初期設定ファイル "/etc/my.cnf" を nanoエディタ で開き nanoエディタでファイルを開く 、以下の一行を挿入してください。

[root@web1 root]# nano /etc/my.cnfEnter
↓
デフォルトの/etc/my.cnf
デフォルトの"/etc/my.cnf"

↓
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=ujis

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

これはMySQLで デフォルト の 文字セット として "ujis" 、すなわち EUC を利用する、という明示的な指定を意味します。

修正が終わったら "/etc/my.cnf" を保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる 。

さて、MySQLは他の多くの サーバー アプリケーション と異なり、WBEL3やCentOSの OS 本体の アカウント とは無関係に動作します。

"root" ユーザーにパスワードをかけないでおくと、理屈としては SSHクライアント などで 構築中のLinuxサーバー に ログイン しているユーザー全員が好き放題にMySQLを使用できることになります。

また、インストールしたばかりのMySQLには、予め準備されている管理アカウントである "root" に対してパスワードが設定されていません。

そこでMySQLを起動したら、以下の要領ですぐに "root" に対してパスワードを設定してください。

ご利用の環境によっては、ホスト "web1.obenri.com" に対してパスワードが設定できない場合があります。
これは "web1.obenri.com" が "localhost" と同じ IPアドレス "127.0.0.1" に名前解決されている場合に起こる現象です。
これを回避するには、 "/etc/hosts" の記述を、 "web1.obenri.com" → "192.168.100.11" になるように修正してください。 WBEL3のhostsファイルの設定 CentOS3のhostsファイルの設定

デフォルトのMySQLでは、 "localhost" とという ループバックアドレス を指し示す対象ホストと、 FQDN である "web1.obenri.com" を指し示す対象 ホスト が設置されていますから、それぞれの "root" に対してパスワードを設定してください。二つのパスワードは同じでかまいません。

[root@web1 root]# /etc/init.d/mysqld startEnter
MySQLデータベースを初期化中:                [ OK ]
MySQLを起動中:                       [ OK ]
[root@web1 root]# mysqladmin -u root password "設定するパスワード" Enter
[root@web1 root]# mysqladmin -u root -h web1.obenri.com password "設定するパスワード" Enter
[root@web1 root]#

引き続き ntsysv コマンドでMySQLの デーモン である mysqld を自動起動登録します。

デーモン の一覧から mysqld にチェックを入れて OK してください。

mysqldをntsysvで自動起動登録する
"mysqld"を"ntsysv"で自動起動登録する

これでMySQLは常時稼動するようになるわけですが、念のため一度 構築中のLinuxサーバー を reboot コマンドで再起動し、次の「MySQLのコントロール MySQLのコントロール 」のページのを参考に動作状態を確認してください。

このページの先頭へ↑

WBEL4及びCentOS4のMySQL"4.1.2x"の設定

WBEL4 や CentOS4 には既に標準でバージョン "4.1.2x" の MySQL がインストールされているはずです。

従って、最低限の初期設定を行えば、MySQLはすぐ利用することができます。

さて、MySQLは他の多くの サーバー アプリケーション と異なり、WBELやCentOS本体の アカウント とは無関係に動作します。

"root" ユーザーにパスワードをかけないでおくと、理屈としては SSHクライアント などで 構築中のLinuxサーバー に ログイン しているユーザー全員が好き放題にMySQLを使用できることになります。

また、利用開始前のMySQLには、予め準備されている管理アカウントである "root" に対してパスワードが設定されていません。

そこでメッセージに従ってすぐにパスワードを設定したくなるところですが、実はその前にやるべきことがあります。

MySQL "4.1.x" 以降では、 文字セット の扱いがそれまでのバージョンと異なり、従来サーバー側だけで行っていた文字セットの管理をクライアントにも分散し、自動変換するように仕様変更されています。

実はこの点がしばしば古い仕様の CMS との相性を悪くしていて、トラブルの原因になることがありますから、ここでは文字セットを EUC に固定し、更に文字セットの変換をキャンセルする設定を追加しておきます。

また、パスワードの暗号化の強化のため、データベース上のパスワードの記録長が長くなったという変更もありますが、これは デフォルト で "old_passwords=1" と記述され、旧式の暗号化が有効になっていますから、これはそのままにします。

従って "root" のパスワードを設定する前には、必ず初期設定ファイルである "/etc/my.cnf" の設定を行い、その設定を反映させておかなければなりません。

MySQLの初期設定ファイル "/etc/my.cnf" を nanoエディタ で開き nanoエディタでファイルを開く 、以下のように設定を追加してください。

[root@web1 ~]# nano /etc/my.cnfEnter
↓
デフォルトの/etc/my.cnf(WBEL4,CentOS4)
デフォルトの"/etc/my.cnf"(WBEL4,CentOS4)

↓
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=ujis
skip-character-set-client-handshake


[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=ujis

[mysqldump]
default-character-set=ujis

"default-character-set=ujis" は デフォルト の 文字セット として "ujis" 、すなわち EUC を利用する、という明示的な指定を意味します。

従って使用したいCMSが UTF-8 にしか対応していない場合には、ここを "default-character-set=utf8" にしなければならないことがありますから覚えておいてください。

また、 "skip-character-set-client-handshake" はクライアントから送られる文字セットの変換を抑制する設定です。CMSにもよりますが、この設定を行ったほうが比較的文字種がらみのトラブルは少なくなるようです。

修正が終わったら "/etc/my.cnf" を保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる 。

次にMySQLを起動します。

[root@web1 ~]# /etc/init.d/mysqld startEnter
MySQL データベースを初期化中:              [ OK ]
MySQL を起動中:                     [ OK ]
[root@web1 ~]#

MySQLが起動したら、まず "root" のパスワードを設定します。

ご利用の環境によっては、ホスト "web1.obenri.com" に対してパスワードが設定できない場合があります。
これは "web1.obenri.com" が "localhost" と同じ IPアドレス "127.0.0.1" に名前解決されている場合に起こる現象です。
これを回避するには、 "/etc/hosts" の記述を、 "web1.obenri.com" → "192.168.100.11" になるように修正してください。 WBEL4のhostsファイルの設定 CentOS4のhostsファイルの設定

デフォルトのMySQLでは、 "localhost" とという ループバックアドレス を指し示す対象ホストと、 FQDN である "web1.obenri.com" を指し示す対象 ホスト が設置されていますから、それぞれの "root" に対してパスワードを設定してください。二つのパスワードは同じでかまいません。

[root@web1 ~]# mysqladmin -u root password "設定するパスワード" Enter
[root@web1 ~]# mysqladmin -u root -h web1.obenri.com password "設定するパスワード" Enter
[root@web1 ~]#

最後に、 ntsysv コマンドでMySQLの デーモン である mysqld を自動起動登録します。 デーモン の一覧から mysqld にチェックを入れて OK してください。

mysqlをntsysvで自動起動登録する
"mysqld"を"ntsysv"で自動起動登録する

これでMySQLは常時稼動するようになるわけですが、念のため一度 構築中のLinuxサーバー を reboot コマンドで再起動し、次の「MySQLのコントロール MySQLのコントロール 」のページのを参考に動作状態を確認してください。

このページの先頭へ↑

CentOS5のMySQL"5.0.77"の設定

CentOS5 には既に標準でバージョン "5.0.77" の MySQL がインストールされているはずです。

従って、最低限の初期設定を行えば、MySQLはすぐ利用することができます。

さて、MySQLは他の多くの サーバー アプリケーション と異なり、CentOS本体の アカウント とは無関係に動作します。

"root" ユーザーにパスワードをかけないでおくと、理屈としては SSHクライアント などで 構築中のLinuxサーバー に ログイン しているユーザー全員が好き放題にMySQLを使用できることになります。

また、利用開始前のMySQLには、予め準備されている管理アカウントである "root" に対してパスワードが設定されていません。

そこでメッセージに従ってすぐにパスワードを設定したくなるところですが、実はその前にやるべきことがあります。

MySQL "4.1.x" 以降では、 文字セット の扱いがそれまでのバージョンと異なり、従来サーバー側だけで行っていた文字セットの管理をクライアントにも分散し、自動変換するように仕様変更されています。

実はこの点がしばしば古い仕様の CMS との相性を悪くしていて、トラブルの原因になることがありますから、ここでは文字セットを EUC に固定し、更に文字セットの変換をキャンセルする設定を追加しておきます。

また、パスワードの暗号化の強化のため、データベース上のパスワードの記録長が長くなったという変更もありますが、これは デフォルト で "old_passwords=1" と記述され、旧式の暗号化が有効になっていますから、これはそのままにします。

従って "root" のパスワードを設定する前には、必ず初期設定ファイルである "/etc/my.cnf" の設定を行い、その設定を反映させておかなければなりません。

MySQLの初期設定ファイル "/etc/my.cnf" を nanoエディタ で開き nanoエディタでファイルを開く 、以下のように設定を追加してください。

[root@web1 ~]# nano /etc/my.cnfEnter
↓
デフォルトの/etc/my.cnf(CentOS5)
デフォルトの"/etc/my.cnf(CentOS5)"

↓
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=ujis
skip-character-set-client-handshake


# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysql.server]
user=mysql
basedir=/var/lib


[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=ujis

[mysqldump]
default-character-set=ujis

"default-character-set=ujis" は デフォルト の 文字セット として "ujis" 、すなわち EUC を利用する、という明示的な指定を意味します。

従って使用したいCMSが UTF-8 にしか対応していない場合には、ここを "default-character-set=utf8" にしなければならないことがありますから覚えておいてください。

また、 "skip-character-set-client-handshake" はクライアントから送られる文字セットの変換を抑制する設定です。CMSにもよりますが、この設定を行ったほうが比較的文字種がらみのトラブルは少なくなるようです。

修正が終わったら "/etc/my.cnf" を保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる 。

次にMySQLを起動します。

[root@web1 ~]# /etc/init.d/mysqld startEnter
MySQL データベースを初期化中:              [ OK ]
MySQL を起動中:                     [ OK ]
[root@web1 ~]#

MySQLが起動したら、まず "root" のパスワードを設定します。

ご利用の環境によっては、ホスト "web1.obenri.com" に対してパスワードが設定できない場合があります。
これは "web1.obenri.com" が "localhost" と同じ IPアドレス "127.0.0.1" に名前解決されている場合に起こる現象です。
これを回避するには、 "/etc/hosts" の記述を、 "web1.obenri.com" → "192.168.100.11" になるように修正してください。 CentOS5のhostsファイルの設定

デフォルトのMySQLでは、 "localhost" とという ループバックアドレス を指し示す対象ホストと、 FQDN である "web1.obenri.com" を指し示す対象 ホスト が設置されていますから、それぞれの "root" に対してパスワードを設定してください。二つのパスワードは同じでかまいません。

[root@web1 ~]# mysqladmin -u root password "設定するパスワード" Enter
[root@web1 ~]# mysqladmin -u root -h web1.obenri.com password "設定するパスワード" Enter
[root@web1 ~]#

最後に、 ntsysv コマンドでMySQLの デーモン である mysqld を自動起動登録します。 デーモン の一覧から mysqld にチェックを入れて OK してください。

mysqlをntsysvで自動起動登録する
"mysqld"を"ntsysv"で自動起動登録する

これでMySQLは常時稼動するようになるわけですが、念のため一度 構築中のLinuxサーバー を reboot コマンドで再起動し、次の「MySQLのコントロール MySQLのコントロール 」のページのを参考に動作状態を確認してください。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System