MySQL 5.6.11 のインストールまたはアップグレードを行うには、このセクションの最後にある特記事項を必ずお読みください。
glibc
を使用する RPM ベースの Linux 配布に MySQL をインストールするために推奨される方法は、MySQL が提供する RPM パッケージを使用することです。RPM パッケージの Community バージョンを取得するには 2 つのソースがあります。
-
次のプラットフォームでは、MySQL ソフトウェアリポジトリから:
EL5、EL6、または EL7 ベースのプラットフォームおよび Fedora 20 または 21 では、MySQL Yum リポジトリを使用します (詳細はセクション2.5.1「MySQL Yum リポジトリを使用して MySQL を Linux にインストールする」を参照してください)。
SUSE Enterprise Linux Server では、MySQL SLES リポジトリを使用します (詳細はセクション2.5.4「MySQL SLES リポジトリを使用して MySQL を Linux にインストールする」を参照してください)。
MySQL Developer Zone の MySQL Downloads ページ から。ここでは、異なるプラットフォームで機能するさまざまな RPM パッケージを提供しています。
このセクションの議論は、MySQL Developer Zone から直接ダウンロードした RPM パッケージのみに適用されます。これらのパッケージで作成されたインストールは、次の表に示すシステムディレクトリのファイルになります。
表 2.6 MySQL Developer Zone からの Linux RPM パッケージの MySQL インストールレイアウト
ディレクトリ | ディレクトリの内容 |
---|---|
/usr/bin |
クライアントプログラムおよびスクリプト |
/usr/sbin |
mysqld サーバー |
/var/lib/mysql |
ログファイル、データベース |
/usr/share/info |
Info 形式のドキュメント |
/usr/share/man |
Unix マニュアルページ |
/usr/include/mysql |
インクルード (ヘッダー) ファイル |
/usr/lib/mysql |
ライブラリ |
/usr/share/mysql |
エラーメッセージ、文字セットファイル、サンプル構成ファイル、データベースインストールのための SQL を含む種々のサポートファイル |
/usr/share/sql-bench |
ベンチマーク |
MySQL の RPM 配布はほかのベンダーからも提供されています。それらは、弊社によってビルドされたものとは (通信セットアップなどの) 機能や規則が異なる場合があり、それらのインストールにはこのマニュアルの説明が必ずしも適用されないことに注意してください。代わりに、ベンダーの説明書を参照してください。これらの違いのため、弊社がビルドした RPM パッケージは、ほかのベンダーによってビルドされたこのような RPM がインストールされているかどうかをチェックします。その場合、RPM はインストールを実行せず、そのことを説明するメッセージを生成します。
ほかのベンダーからの RPM がすでにインストールされている場合、どのファイルがサーバーに属し、どれがクライアントライブラリに属するかに関するベンダーの表記が、Oracle パッケージで使用される内訳と異なるなどの不一致が生じる場合があります。このような場合は、Oracle RPM を rpm -i でインストールしようとすると、インストールされる RPM 内のファイルが、インストール済みのパッケージ (次の段落では mysql-libs
と表されます) と不一致であるというメッセージになります。
弊社は、MySQL の各リリースに MySQL-shared-compat
パッケージを提供します。このパッケージは mysql-libs
に代わるものであり、古い MySQL シリーズに置換可能な互換クライアントライブラリを提供します。MySQL-shared-compat
は、mysql-libs
を無効にするようにセットアップされていますが、rpm は、(-U
とは異なり) -i
とともに起動された場合は無効パッケージを置換することを明示的に拒否します。rpm -i によるインストールが不一致を生ずるのはこのためです。
MySQL-shared-compat
は、ライブラリが別の場所にインストールされるため、mysql-libs
とともに安全にインストールできます。したがって、shared-compat を先にインストールしてから、インストールを続行する前に手動で mysql-libs
を削除できます。mysql-libs が削除されたあと、ダイナミックリンカーは mysql-libs
がクライアントライブラリを配置する場所でそれらを探すのを停止し、MySQL-shared-compat
パッケージによって提供されるライブラリが引き継ぎます。
もう 1 つの選択肢は、yum を使用してパッケージをインストールすることです。MySQL リリースのすべての RPM パッケージを含むディレクトリで、yum install MySQL*rpm を実行すると、一度で不一致なくそれらを正しい順序でインストールし、mysql-libs
を削除します。
ほとんどの場合、機能する MySQL インストールを取得するためにインストールする必要があるのは MySQL-server
および MySQL-client
パッケージのみです。その他のパッケージは、標準インストールには必要ありません。
MySQL 5.6.8 では、RPM の (アップグレードではなく) インストール操作は、mysql_install_db をよりセキュアな MySQL インストールを提供する --random-passwords
オプションで起動します。--random-passwords
を付けて mysql_install_db を呼び出すと、ランダムなパスワードを MySQL root
アカウントに割り当て、これらのアカウントについて「パスワードが期限切れである」ことを示すフラグを設定し、匿名ユーザー MySQL アカウントを作成しません。インストール後、サーバーを起動して $HOME/.mysql_secret
ファイルに書き込まれたパスワードを使用して root
として接続し、新しい root
パスワードを割り当てることが必要になります。これを行うまで、root
はそれ以外何もできません。これは、使用するすべての root
アカウントについて実行する必要があります。パスワードを変更するには、SET PASSWORD
ステートメントを (たとえば mysql クライアントとともに) 使用します。mysqladmin または mysql_secure_installation も使用できます。追加情報についてはセクション4.4.3「mysql_install_db — MySQL データディレクトリの初期化」を参照してください。(Unbreakable Linux Network での RPM を使用したインストール操作は mysql_install_db を使用しないため、影響されません。)
MySQL クラスタ用の RPM
MySQL によってビルドされた標準の MySQL Server RPM は、NDBCLUSTER
ストレージエンジンをサポートしません。RPM から MySQL Cluster をインストールする方法の詳細は、セクション18.2「MySQL Cluster のインストール」を参照してください。
MySQL Cluster RPM インストールをアップグレードするときは、サーバー
およびクライアント
の RPM を含め、インストールしたすべての RPM をアップグレードする必要があります。
もともと複数の RPM パッケージをインストールして作成されたインストールの場合は、アップグレードでは、一部だけでなくすべてのパッケージをアップグレードするのが最善です。たとえば、以前にサーバーおよびクライアントの RPM をインストールした場合は、サーバーの RPM だけをアップグレードすることはしないでください。
RPM インストール時にデータディレクトリが存在する場合は、インストールプロセスは既存のデータを変更しません。これは、たとえば付与テーブル内のアカウントがアカウントのデフォルトセットに初期化されないという効果があります。
MySQL パッケージをインストールしようとして依存関係エラーが生じる場合は (たとえば、error: removing these packages would break dependencies: libmysqlclient.so.10 is needed by ...
)、MySQL-shared-compat
パッケージもインストールしてください。これには後方互換性のための古いリリースの共有ライブラリが含まれます。
次のリストに示す RPM パッケージが利用できます。ここに示した名前は、.linux_glibc2.5.i386.rpm
というサフィクスを使用しますが、特定のパッケージではサフィクスが異なる場合があります。以降で説明します。複数の RPM パッケージをインストールする計画の場合は、RPM バンドル tar ファイルを代わりにダウンロードするとよいでしょう。これには複数の RPM パッケージが含まれるため、個別にダウンロードする必要がありません。
-
MySQL-server-
VERSION
.linux_glibc2.5.i386.rpmMySQL Server。別のマシンで動作している MySQL サーバーに接続するのみでなければ、これが必要です。
-
MySQL-client-
VERSION
.linux_glibc2.5.i386.rpm標準の MySQL クライアントプログラム。通常は、このパッケージをインストールします。
-
MySQL-devel-
VERSION
.linux_glibc2.5.i386.rpmPerl モジュールなど、ほかの MySQL クライアントをコンパイルする場合に必要なライブラリおよびインクルードファイル。C API アプリケーションをコンパイルする予定である場合はこの RPM をインストールします。
-
MySQL-shared-
VERSION
.linux_glibc2.5.i386.rpmこのパッケージには、MySQL を動的にロードして使用するために、一部の言語およびアプリケーションが必要とする共有ライブラリ (
libmysqlclient.so*
) が含まれます。それにはシングルスレッドとスレッドセーフのライブラリが含まれます。共有クライアントライブラリに依存する C API アプリケーションをコンパイルして実行する予定である場合はこの RPM をインストールします。 -
MySQL-shared-compat-
VERSION
.linux_glibc2.5.i386.rpmこのパッケージは古いリリースの共有ライブラリを含みますが、現在のリリースのライブラリは含みません。それにはシングルスレッドとスレッドセーフのライブラリが含まれます。古いバージョンの MySQL にダイナミックリンクするアプリケーションをインストールしていて、ライブラリの依存関係を壊すことなく最新バージョンにアップグレードする場合には、このパッケージをインストールします。
MySQL 5.6.5 では、
MySQL-shared-compat
RPM パッケージにより、Red Hat が提供するmysql-*-5.1
RPM パッケージのユーザーが、オラクルが提供するMySQL-*-5.5
パッケージに移行できます。MySQL-shared-compat
は、後者のパッケージのlibmysqlclient.so
ファイルを置換して、mysql-libs
へのほかのパッケージの依存関係を満たすことによって、Red Hatmysql-libs
パッケージを置換します。この変更は、Red Hat (または Red Hat 互換の) RPM パッケージのユーザーのみに影響します。Oracle RPM パッケージのユーザーにとっては何も変更はありません。 -
MySQL-embedded-
VERSION
.linux_glibc2.5.i386.rpm組み込み MySQL サーバーライブラリ。
-
MySQL-test-
VERSION
.linux_glibc2.5.i386.rpmこのパッケージには、MySQL のテストスイートが含まれています。
-
MySQL-
VERSION
.src.rpmこれにはすべての旧パッケージのソースコードが含まれています。ほかのアーキテクチャー (たとえば、Alpha あるいは SPARC) で RPM をビルドする際にも使用できます。
RPM パッケージ名のサフィクス (VERSION
値に続く) の構文は次のとおりです。
.PLATFORM.CPU.rpm
PLATFORM
および CPU
値は、パッケージのビルド対象になっているシステムのタイプを示します。PLATFORM
はプラットフォームを示し、CPU
はプロセッサのタイプまたはファミリを示します。
すべてのパッケージは glibc
2.5 にダイナミックリンクされます。PLATFORM
値は、次の表に示すように、パッケージがプラットフォームから独立しているか、または特定のプラットフォームを目的としているかを示します。
表 2.7 MySQL Linux インストールパッケージ
PLATFORM 値 |
使用目的 |
---|---|
linux_glibc25 |
プラットフォームから独立。glibc 2.5 をサポートする任意の Linux 配布で動作します。 |
rhel5 、rhel6
|
Red Hat Enterprise Linux 5 または 6 |
el6 、el7
|
Enterprise Linux 6 または 7 |
sles10 、sles11
|
SUSE Linux Enterprise Server 10 または 11 |
MySQL 5.6 では、現在 linux_glibc2.5
パッケージのみ使用可能です。
CPU
値は、パッケージのビルド対象になっているプロセッサのタイプまたはファミリを示します。
表 2.8 Linux 用 MySQL インストールパッケージの CPU 識別子
CPU 値 |
対象のプロセッサタイプまたはファミリ |
---|---|
i386 、i586 、i686
|
Pentium プロセッサ以上、32 ビット |
x86_64 |
64 ビットの x86 プロセッサ |
ia64 |
Itanium (IA-64) プロセッサ |
RPM パッケージ (MySQL-server
RPM など) のすべてのファイルを表示するには、次のようなコマンドを実行します。
shell> rpm -qpl MySQL-server-VERSION.linux_glibc2.5.i386.rpm
標準の最低限のインストールには、サーバーとクライアント RPM をインストールします。
shell> rpm -i MySQL-server-VERSION.linux_glibc2.5.i386.rpm
shell> rpm -i MySQL-client-VERSION.linux_glibc2.5.i386.rpm
クライアントプログラムのみをインストールする場合は、クライアント RPM のみインストールします。
shell> rpm -i MySQL-client-VERSION.linux_glibc2.5.i386.rpm
RPM には、インストールするパッケージの完全性および信憑性を検証する機能があります。この機能の詳細は、セクション2.1.4「MD5 チェックサムまたは GnuPG を用いたパッケージの完全性の確認」を参照してください。
サーバー RPM はデータを /var/lib/mysql
ディレクトリに格納します。RPM はまた、MySQL Server を実行するために使用するユーザー mysql
という名前のログインアカウントを作成し (存在しない場合)、サーバーがブート時に自動的に起動するように適切なエントリを /etc/init.d/
に作成します。(これは、以前にインストールを実行し、スタートアップスクリプトに変更を加えた場合、新しい RPM をインストールするときにスクリプトを失わないように、コピーをとる方がよいことを意味します。)システム起動時に MySQL を自動的に起動する方法の詳細は、セクション2.10.1.2「MySQL を自動的に起動および停止する」を参照してください。
MySQL 5.6 では、新規インストール中にサーバーブートスクリプトがインストールされますが、MySQL Server はインストールの最後には起動されません。これは、無人インストール中のサーバーのステータスがわからないためです。
MySQL 5.6 では、RPM パッケージを使用するアップグレードインストール中に、アップグレードが行われたときに MySQL Server が実行中である場合は、MySQL Server は停止され、アップグレードが実行され、MySQL Server が再起動されます。RPM アップグレードの実行時に MySQL Server がすでに実行中ではなかった場合は、インストールの最後に MySQL Server は起動されません。
MySQL のコミュニティーバージョンから商用バージョンにアップグレードする場合は (これは実際には、まずコミュニティーバージョンをアンインストールしてから商用バージョンをインストールする必要があります)、アップグレード後に手動でサーバーを再起動する必要があります。
うまくいかない場合には、バイナリのインストールのセクションに詳細情報があります。セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」を参照してください。
MySQL の付与テーブルにリストされているアカウントには、最初はパスワードがありません。サーバーの起動後に、セクション2.10「インストール後のセットアップとテスト」の説明に従って、それらにパスワードを設定する必要があります。
RPM のインストール時に、mysql
というユーザーと mysql
というグループがシステムに作成されます。これは、useradd、groupadd、および usermod コマンドを使用して行われます。これらのコマンドは適切な管理者権限を必要とします。これは、root
によって実行される RPM インストールプロセスによってローカルに管理されるユーザーおよびグループ (/etc/passwd
および /etc/group
ファイルにリストされています) に必要です。
mysql
ユーザーとしてログインすると、MySQL が「Invalid (old?) table or database name」エラーを表示し、.mysqlgui
、lost+found
、.mysqlgui
、.bash_history
、.fonts.cache-1
、.lesshst
、.mysql_history
、.profile
、.viminfo
、および MySQL またはオペレーティングシステムのユーティリティーによって作成された同様のファイルが示されます。これらのエラーメッセージは無視しても、エラーメッセージの原因となっているファイルまたはディレクトリが不要であれば削除しても、安全です。
ローカル以外のユーザー管理 (LDAP、NIS、など) では、管理ツールが追加の認証 (パスワードなど) を要求することがあり、インストールを行うユーザーがその認証情報を提供しない場合は失敗します。失敗しても、RPM インストールは中止されずに正常に行われます。これは意図したものです。失敗した場合は意図した所有権の移動の一部が実行されておらず、システム管理者は、適切なユーザーおよびグループが存在することを手動で確認し、RPM spec ファイルのアクションに従って所有権を手動で移動することが推奨されます。
MySQL 5.6.11 では RPM spec ファイルが更新され、次のような影響があります。
アップグレードでないインストール (既存の MySQL バージョンはインストールされていない) の場合、MySQL を yum を使用してインストールできます。
アップグレードの場合、それまでの MySQL インストールがあればクリーンアップする必要があります。実際には、アップデートは古いインストールを削除して新しいものをインストールすることによって実行されます。
追加の詳細は、あとの方で説明します。
MySQL 5.6.11 以降のアップグレードでないインストールの場合、MySQL を yum を使用してインストールできます。
shell> yum install MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm
MySQL 5.6.11 以降へのアップグレードの場合、アップグレードは古いインストールを削除して新しいものをインストールすることによって実行されます。そうするには、次の手順に従います。
-
既存の 5.6.
X
インストールを削除します。OLDVERSION
は削除するバージョンです。shell> rpm -e MySQL-server-OLDVERSION.linux_glibc2.5.i386.rpm
この手順をすべてのインストール済み MySQL RPM に対して繰り返します。
-
新しいバージョンをインストールします。
NEWVERSION
はインストールするバージョンです。shell> rpm -ivh MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm
あるいは、削除とインストールは yum を使用して実行できます。
shell> yum remove MySQL-server-OLDVERSION.linux_glibc2.5.i386.rpm
shell> yum install MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm