第 2 章 MySQL のインストールと更新

目次

2.1 一般的なインストールガイド
2.1.1 MySQL Community Server がサポートしているオペレーティングシステム
2.1.2 インストールする MySQL のバージョンと配布の選択
2.1.3 MySQL の取得方法
2.1.4 MD5 チェックサムまたは GnuPG を用いたパッケージの完全性の確認
2.1.5 インストールのレイアウト
2.1.6 コンパイラ固有のビルドの特徴
2.2 一般的なバイナリを使用した MySQL の Unix/Linux へのインストール
2.3 Microsoft Windows に MySQL をインストールする
2.3.1 Microsoft Windows 上での MySQL のインストールレイアウト
2.3.2 インストール用パッケージの選択
2.3.3 MySQL Installer を使用した MySQL の Microsoft Windows へのインストール
2.3.4 MySQL Notifier
2.3.5 非インストール Zip アーカイブを使用して Microsoft Windows に MySQL をインストールする
2.3.6 Microsoft Windows MySQL Server インストールのトラブルシューティング
2.3.7 Windows 上の MySQL をアップグレードする
2.3.8 Windows でのインストール後の手順
2.4 OS X に MySQL をインストールする
2.4.1 OS X への MySQL のインストールに関する一般的な注記
2.4.2 ネイティブパッケージを使用して OS X に MySQL をインストールする
2.4.3 MySQL 起動デーモンのインストール
2.4.4 MySQL 起動アイテムのインストール
2.4.5 MySQL Preference Pane のインストールと使用
2.5 Linux に MySQL をインストールする
2.5.1 MySQL Yum リポジトリを使用して MySQL を Linux にインストールする
2.5.2 サードパーティーの MySQL 配布を MySQL Yum リポジトリを使用して置換する
2.5.3 MySQL APT リポジトリを使用して MySQL を Linux にインストールする
2.5.4 MySQL SLES リポジトリを使用して MySQL を Linux にインストールする
2.5.5 RPM パッケージを使用して MySQL を Linux にインストールする
2.5.6 オラクルからの Debian パッケージを使用して MySQL を Linux にインストールする
2.5.7 ネイティブソフトウェアリポジトリから MySQL を Linux にインストールする
2.6 Unbreakable Linux Network (ULN) を使用した MySQL のインストール
2.7 Solaris および OpenSolaris に MySQL をインストールする
2.7.1 Solaris PKG を使用して Solaris に MySQL をインストールする
2.7.2 IPS を使用して MySQL を OpenSolaris にインストールする
2.8 FreeBSD に MySQL をインストールする
2.9 ソースから MySQL をインストールする
2.9.1 ソースインストールの MySQL のレイアウト
2.9.2 標準ソース配布を使用して MySQL をインストールする
2.9.3 開発ソースツリーを使用して MySQL をインストールする
2.9.4 MySQL ソース構成オプション
2.9.5 MySQL のコンパイルに関する問題
2.9.6 MySQL の構成とサードパーティーツール
2.10 インストール後のセットアップとテスト
2.10.1 Unix 類似システムでのインストール後の手順
2.10.2 最初の MySQL アカウントのセキュリティー設定
2.11 MySQL のアップグレードとダウングレード
2.11.1 MySQL のアップグレード
2.11.2 MySQL のダウングレード
2.11.3 テーブルまたはインデックスの再構築が必要かどうかのチェック
2.11.4 テーブルまたはインデックスの再作成または修復
2.11.5 MySQL データベースのほかのマシンへのコピー
2.12 環境変数
2.13 Perl のインストールに関する注釈
2.13.1 Unix に Perl をインストールする
2.13.2 Windows に ActiveState Perl をインストールする
2.13.3 Perl DBI/DBD インタフェース使用の問題

この章では MySQL の取得とインストールの方法を説明します。最初に手順の概要を、後半のセクションで詳細を説明します。MySQL をはじめてインストールするのではなく、現行のバージョンの MySQL を新しいバージョンにアップグレードする場合は、セクション2.11.1「MySQL のアップグレード」 を参照してください。アップグレードの手順およびアップグレード前に考慮すべき問題点に関する情報を記載しています。

別のデータベースシステムから MySQL に移行する場合には セクションA.8「MySQL 5.6 FAQ: 移行」 を参照してください。この資料に中には、移行の問題に関する一般的な質問に対する解答が含まれています。

MySQL のインストールは、一般に次の手順に従います。

  1. 使用しているプラットフォームで MySQL が動作し、サポートされているかどうかを判断します。

    どのプラットフォームも同じように MySQL の実行に適しているわけではありません。また、MySQL が動作するといわれているプラットフォームのすべてをオラクル社が公式にサポートしているわけでもありません。

  2. インストールする配布を選択します。

    MySQL には使用可能なバージョンがいくつかあり、ほとんどが複数の配布形式で使用可能です。バイナリ (コンパイル済み) プログラムあるいはソースコードを含むパッケージ済み配布を選択できます。不確かな場合にはバイナリ配布をご使用ください。また、弊社の最新の開発に興味があり、新しいコードのテストにご協力頂ける方に最新のソースツリーを公開しています。どのバージョンのどの配布を選択したらよいかは セクション2.1.2「インストールする MySQL のバージョンと配布の選択」 を参照してください。

  3. インストールする配布をダウンロードします。

    その手順は、セクション2.1.3「MySQL の取得方法」 を参照してください。配布の完全性を確認するには、セクション2.1.4「MD5 チェックサムまたは GnuPG を用いたパッケージの完全性の確認」 の指示に従ってください。

  4. 配布をインストールします。

    MySQL をバイナリの配布からインストールするには、セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」 を参照してください。

    MySQL をソースの配布からインストールする、あるいは現在の開発ソースツリーからインストールする場合は、セクション2.9「ソースから MySQL をインストールする」 を参照してください。

  5. インストール後のセットアップが必要な場合は実行します。

    MySQL のインストール後に、MySQL サーバーが正しく動作していることを確認するには、セクション2.10「インストール後のセットアップとテスト」 を参照してください。セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」 の情報も参照してください。このセクションでは、MySQL 初期アカウントの安全性確保の方法を説明します。ユーザーがパスワードを割り当てるまで、このアカウントにはパスワードがありません。このセクションはバイナリ配布およびソース配布の MySQL のインストールの両方に適用されます。

  6. MySQL のベンチマークスクリプトを実行する場合、Perl の MySQL サポートが必要になります。セクション2.13「Perl のインストールに関する注釈」 を参照してください。

さまざまなプラットフォームおよび環境での MySQL のインストール手順は、プラットフォーム別に提供されます。

2.1 一般的なインストールガイド

次の数セクションには、配布の選択、ダウンロード、および確認に必要な情報が含まれています。この章の次のセクション以降で、選択した配布のインストールの方法を説明します。バイナリ配布については、セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」 の指示、または使用しているプラットフォームに対応するセクションがあればそちらを参照してください。MySQL をソースからビルドするには、セクション2.9「ソースから MySQL をインストールする」 を参照してください。

2.1.1 MySQL Community Server がサポートしているオペレーティングシステム

MySQL は、多数のオペレーティングシステムおよびプラットフォームで使用可能です。公式にサポートされているプラットフォームの詳細は、MySQL Web サイトの https://www.mysql.com/support/supportedplatforms/database.html を参照してください。

2.1.2 インストールする MySQL のバージョンと配布の選択

MySQL のインストールを準備する際、使用するバージョン、およびインストールに使用する配布の形式 (バイナリまたはソース) を決定してください。

まず、開発リリースまたは GA リリースのどちらをインストールするかを決定します。開発リリースには最新の機能がありますが、本番での使用は推奨されません。GA (一般提供) リリースは本番または安定リリースとも呼ばれ、本番での使用を意図しています。最新の GA リリースを使用することを推奨します。

MySQL 5.6 の命名スキームでは、mysql-5.6.1-m1 のように 3 つの数字とサフィクスで構成されるリリース名を使用します。リリース名の番号は次のように解釈されます。

  • 最初の (5) はメジャーバージョンおよびファイル形式を表します。MySQL 5 のすべてのリリースのファイル形式は同じです。

  • 2 番目の番号 (6) はリリースレベルです。メジャーバージョン番号とリリースレベルは、合わせてリリースのシリーズ番号を表します。

  • 3 番目の番号 (1) はリリースシリーズ内でのバージョン番号です。これは新しいリリース毎に数が増えます。一般的には、選択したシリーズの最新のバージョンを使用します。

マイナーな更新が行われるたびに、バージョン文字列の最後の数字が大きくなります。メジャーな機能の追加あるいは旧バージョンとのマイナーな非互換性が加えられた場合には、バージョン文字列の 2 番目の番号が大きくなります。ファイル形式が変更になった場合、最初の番号の値が増えます。

リリース名には、リリースの安定性を示すサフィクスが含まれる場合もあります。シリーズ内のリリースは、サフィクスが順に進展していくことで、安定性レベルの改善を示します。サフィクスには次のようなものがあります。

  • サフィクスがない場合、そのリリースは一般提供 (GA) すなわち本番リリースを意味します。GA リリースは安定しており、それまでのリリース段階をすべて合格したもので、信頼性があり重大なバグのない、本番システムの使用に適したものだと認識されています。そのリリースには、重大なバグ修正のみが適用されます。

  • mN (m1m2m3、など) は、マイルストーン番号を表します。MySQL の開発では、マイルストーンモデルを使用し、各マイルストーンは、徹底的にテストされた機能の小規模なサブセットにしっかりと焦点を当てた、少数のバージョンを進展していきます。あるマイルストーンのリリース後、開発は次の小規模な機能セット (これも徹底的にテストされます) に焦点を当てて、別の少数のリリースに進みます。マイルストーンリリース内の機能は、試作レベルの品質であるとみなされます。

  • rc はリリース候補を意味します。リリース候補は安定しているとみなされ、MySQL の社内のすべてのテストに合格したもので、すべての既知の致命的なランタイムのバグは修正されています。しかしながら、これらのリリースはすべてのバグが特定されたと確信するに足る広範な使用事例を経たものではありません。マイナーな修正のみが追加されています。

インストールする MySQL のバージョンが決まったら、オペレーティングシステムにインストールする配布を決定しなければなりません。ほとんどのユースケースでは、バイナリ配布を選択するのが適切です。バイナリ配布は、Linux の RPM パッケージや OS X の DMG パッケージなど、多くのプラットフォームでネイティブ形式が利用可能です。配布は、Zip アーカイブや圧縮 tar ファイルなど、より一般的な形式でも利用可能です。Windows では、MySQL Installer を使用してバイナリ配布をインストールできます。

環境によっては、MySQL をソースの配布でインストールしたほうがよい場合もあります。

  • MySQL を明示的な場所にインストールしたい場合。標準のバイナリの配布はインストールの場所にかかわらずすぐに動作しますが、MySQL コンポーネントを希望する場所に配置することで柔軟性をさらに向上させる必要に駆られる場合があります。

  • mysqld を、標準のバイナリの配布には含まれていない機能が確実に使用できるように構成したい場合。機能が確実に使用できるようにするためのもっとも一般的な予備オプションの一覧を次に示します。

    • TCP ラッパーサポートのための -DWITH_LIBWRAP=1

    • 圧縮に依存する機能のための -DWITH_ZLIB={system|bundled}

    • デバッグサポートのための -DWITH_DEBUG=1

    詳細は セクション2.9.4「MySQL ソース構成オプション」 を参照してください。

  • mysqld を、標準のバイナリの配布に含まれる一部の機能を使用しないように構成する場合。たとえば、配布は通常すべての文字セットをサポートするようにコンパイルされています。小規模な MySQL Server を希望される場合、必要な文字セットのみのサポートで再コンパイルできます。

  • いずれかの Git リポジトリから最新のソースを使用して、現在のすべてのバグ修正にアクセスできるようにする場合。たとえば、バグが見つかりそれを MySQL の開発チームにレポートすると、バグ修正がソースのリポジトリにコミットされ、そこにアクセスできます。バグの修正は、リリースが実際に公開されるまでそのリリースには表示されません。

  • MySQL を構成する C および C++ コードを読んだり修正したりする場合。この目的のためには、ソースの配布を取得するとよいでしょう。

  • ソースの配布には、バイナリの配布より多くのテストおよび例が含まれています。

2.1.3 MySQL の取得方法

MySQL の最新バージョンおよびダウンロードの説明書については、ダウンロードページ https://dev.mysql.com/downloads/ を参照してください。MySQL のダウンロードのミラーサイトの最新の完全なリストは、https://dev.mysql.com/downloads/mirrors.html を参照してください。そこには、MySQL ミラーサイトになる方法および不良ミラーおよび旧式ミラーのレポート方法に関する情報もあります。

パッケージ管理システムとして Yum を使用する RPM ベースの Linux プラットフォームでは、MySQL Yum Repository を使用して MySQL をインストールできます。詳細は、セクション2.5.1「MySQL Yum リポジトリを使用して MySQL を Linux にインストールする」 を参照してください。

多くの Debian ベースの Linux プラットフォームでは、MySQL APT Repository を使用して MySQL をインストールできます。詳細は、セクション2.5.3「MySQL APT リポジトリを使用して MySQL を Linux にインストールする」 を参照してください。

SUSE Linux Enterprise Server (SLES) プラットフォームでは、MySQL SLES Repository を使用して MySQL をインストールできます。詳細は、セクション2.5.4「MySQL SLES リポジトリを使用して MySQL を Linux にインストールする」 を参照してください。

最新の開発ソースの取得については、セクション2.9.3「開発ソースツリーを使用して MySQL をインストールする」 を参照してください。

2.1.4 MD5 チェックサムまたは GnuPG を用いたパッケージの完全性の確認

お客様の要件に適した MySQL のパッケージをダウンロードしてインストールする前に、そのパッケージが元のままで改ざんされていないことを確認する必要があります。完全性の確認には 3 つの方法があります。

  • MD5 チェックサム

  • GnuPG (GNU Privacy Guard) を使用した暗号署名

  • RPM パッケージの場合、内蔵 RPM 完全性確認メカニズム

次のセクションではこれらの方法の使用方法について説明します。

MD5 チェックサムまたは GPG 署名が一致しない場合には、別のミラーサイトから対応するパッケージを再度ダウンロードします。

2.1.4.1 MD5 チェックサムの確認

MySQL パッケージをダウンロードしたら、MD5 チェックサムが MySQL のダウンロードページのチェックサムと一致することを確認してください。各パッケージには固有のチェックサムがあり、ダウンロードしたパッケージに対して確認できます。各 MySQL 製品に対して、正しい MD5 チェックサムがダウンロードページに記載されているので、ダウンロードしたファイル (製品) の MD5 チェックサムと比較します。

各オペレーティングシステムおよびセットアップで、MD5 チェックサムをチェックするための独自のツールが提供されています。通常、このコマンドは md5sum という名前か、または md5 という名前で、一部のオペレーティングシステムではまったく提供されていません。Linux の場合は GNU テキストユーティリティーパッケージの一部で、さまざまなプラットフォームに利用できます。ソースコードを http://www.gnu.org/software/textutils/ からダウンロードすることもできます。OpenSSL がインストールされている場合は、代わりにコマンド openssl md5 package_name を使用できます。md5 コマンド行ユーティリティーの Windows 実装は、http://www.fourmilab.ch/md5/ から入手できます。winMd5Sum はグラフィカルな MD5 チェックツールで、http://www.nullriver.com/index/products/winmd5sum から入手できます。Microsoft Windows の例では、名前は md5.exe であるものとします。

Linux および Microsoft Windows の例

shell> md5sum mysql-standard-5.6.23-linux-i686.tar.gzaaab65abbec64d5e907dcd41b8699945 mysql-standard-5.6.23-linux-i686.tar.gz
shell> md5.exe mysql-installer-community-5.6.23.msiaaab65abbec64d5e907dcd41b8699945 mysql-installer-community-5.6.23.msi

結果のチェックサム (16 進数の文字列) が、ダウンロードページの対応するパッケージの真下のチェックサムと一致していることを確認してください。

注記

アーカイブファイルの内部に含まれるファイルではなく、アーカイブファイル (たとえば .zip.tar.gz、または .msi ファイル) のチェックサムを必ず確認してください。つまり、内容を抽出する前のファイルを確認します。

2.1.4.2 GnuPG を使用した署名確認

パッケージの完全性および信憑性を確認する別の方法は、暗号署名を使用するものです。これは、MD5 チェックサムを使用するより信頼性が高いですが、手間がかかります。

MySQL のダウンロード可能なパッケージは、GnuPG (GNU Privacy Guard) を使用して署名されます。GnuPG は、Phil Zimmerman 氏の周知の Pretty Good Privacy (PGP) のオープンソース版です。GnuPG の詳細とその取得およびシステムへのインストール方法については、http://www.gnupg.org/ を参照してください。ほとんどの Linux の配布にはデフォルトで GnuPG がインストールされています。GnuPG の詳細は、http://www.openpgp.org/ を参照してください。

特定のパッケージの署名を確認するには、まず公開 GPG ビルド鍵を取得する必要があります。これは http://pgp.mit.edu/ からダウンロードできます。取得する鍵は mysql-build@oss.oracle.com という名前です。また、次のテキストから直接鍵をカット&ペーストできます。

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (SunOS)
mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q2TXlTUUwgUmVs
ZWFzZSBFbmdpbmVlcmluZyA8bXlzcWwtYnVpbGRAb3NzLm9yYWNsZS5jb20+iGkE
ExECACkCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAIZAQUCUwHUZgUJGmbLywAK
CRCMcY07UHLh9V+DAKCjS1gGwgVI/eut+5L+l2v3ybl+ZgCcD7ZoA341HtoroV3U
6xRD09fUgeq0O015U1FMIFBhY2thZ2Ugc2lnbmluZyBrZXkgKHd3dy5teXNxbC5j
b20pIDxidWlsZEBteXNxbC5jb20+iG8EMBECAC8FAk53Pa0oHSBidWlsZEBteXNx
bC5jb20gd2lsbCBzdG9wIHdvcmtpbmcgc29vbgAKCRCMcY07UHLh9bU9AJ9xDK0o
xJFL9vTl9OSZC4lX0K9AzwCcCrS9cnJyz79eaRjL0s2r/CcljdyIZQQTEQIAHQUC
R6yUtAUJDTBYqAULBwoDBAMVAwIDFgIBAheAABIJEIxxjTtQcuH1B2VHUEcAAQGu
kgCffz4GUEjzXkOi71VcwgCxASTgbe0An34LPr1j9fCbrXWXO14msIADfb5piEwE
ExECAAwFAj4+o9EFgwlmALsACgkQSVDhKrJykfIk4QCfWbEeKN+3TRspe+5xKj+k
QJSammIAnjUz0xFWPlVx0f8o38qNG1bq0cU9iEwEExECAAwFAj5CggMFgwliIokA
CgkQtvXNTca6JD+WkQCgiGmnoGjMojynp5ppvMXkyUkfnykAoK79E6h8rwkSDZou
iz7nMRisH8uyiEYEEBECAAYFAj+s468ACgkQr8UjSHiDdA/2lgCg21IhIMMABTYd
p/IBiUsP/JQLiEoAnRzMywEtujQz/E9ono7H1DkebDa4iEYEEBECAAYFAj+0Q3cA
CgkQhZavqzBzTmbGwwCdFqD1frViC7WRt8GKoOS7hzNN32kAnirlbwpnT7a6NOsQ
83nk11a2dePhiEYEEBECAAYFAkNbs+oACgkQi9gubzC5S1x/dACdELKoXQKkwJN0
gZztsM7kjsIgyFMAnRRMbHQ7V39XC90OIpaPjk3a01tgiEYEExECAAYFAkTxMyYA
CgkQ9knE9GCTUwwKcQCgibak/SwhxWH1ijRhgYCo5GtM4vcAnAhtzL57wcw1Kg1X
m7nVGetUqJ7fiEwEEBECAAwFAkGBywEFgwYi2YsACgkQGFnQH2d7oexCjQCcD8sJ
NDc/mS8m8OGDUOx9VMWcnGkAnj1YWOD+Qhxo3mI/Ul9oEAhNkjcfiEwEEBECAAwF
AkGByzQFgwYi2VgACgkQgcL36+ITtpIiIwCdFVNVUB8xe8mFXoPm4d9Z54PTjpMA
niSPA/ZsfJ3oOMLKar4F0QPPrdrGiEwEEBECAAwFAkGBy2IFgwYi2SoACgkQa3Ds
2V3D9HMJqgCbBYzr5GPXOXgP88jKzmdbjweqXeEAnRss4G2G/3qD7uhTL1SPT1SH
jWUXiEwEEBECAAwFAkHQkyQFgwXUEWgACgkQfSXKCsEpp8JiVQCghvWvkPqowsw8
w7WSseTcw1tflvkAni+vLHl/DqIly0LkZYn5jzK1dpvfiEwEEBECAAwFAkIrW7oF
gwV5SNIACgkQ5hukiRXruavzEwCgkzL5QkLSypcw9LGHcFSx1ya0VL4An35nXkum
g6cCJ1NP8r2I4NcZWIrqiEwEEhECAAwFAkAqWToFgwd6S1IACgkQPKEfNJT6+GEm
XACcD+A53A5OGM7w750W11ukq4iZ9ckAnRMvndAqn3YTOxxlLPj2UPZiSgSqiEwE
EhECAAwFAkA9+roFgwdmqdIACgkQ8tdcY+OcZZyy3wCgtDcwlaq20w0cNuXFLLNe
EUaFFTwAni6RHN80moSVAdDTRkzZacJU3M5QiEwEEhECAAwFAkEOCoQFgwaWmggA
CgkQOcor9D1qil/83QCeITZ9wIo7XAMjC6y4ZWUL4m+edZsAoMOhRIRi42fmrNFu
vNZbnMGej81viEwEEhECAAwFAkKApTQFgwUj/1gACgkQBA3AhXyDn6jjJACcD1A4
UtXk84J13JQyoH9+dy24714Aniwlsso/9ndICJOkqs2j5dlHFq6oiEwEExECAAwF
Aj5NTYQFgwlXVwgACgkQLbt2v63UyTMFDACglT5G5NVKf5Mj65bFSlPzb92zk2QA
n1uc2h19/IwwrsbIyK/9POJ+JMP7iEwEExECAAwFAkHXgHYFgwXNJBYACgkQZu/b
yM2C/T4/vACfXe67xiSHB80wkmFZ2krb+oz/gBAAnjR2ucpbaonkQQgnC3GnBqmC
vNaJiEwEExECAAwFAkIYgQ4FgwWMI34ACgkQdsEDHKIxbqGg7gCfQi2HcrHn+yLF
uNlH1oSOh48ZM0oAn3hKV0uIRJphonHaUYiUP1ttWgdBiGUEExECAB0FCwcKAwQD
FQMCAxYCAQIXgAUCS3AvygUJEPPzpwASB2VHUEcAAQEJEIxxjTtQcuH1sNsAniYp
YBGqy/HhMnw3WE8kXahOOR5KAJ4xUmWPGYP4l3hKxyNK9OAUbpDVYIh7BDARAgA7
BQJCdzX1NB0AT29wcy4uLiBzaG91bGQgaGF2ZSBiZWVuIGxvY2FsISBJJ20gKnNv
KiBzdHVwaWQuLi4ACgkQOcor9D1qil/vRwCdFo08f66oKLiuEAqzlf9iDlPozEEA
n2EgvCYLCCHjfGosrkrU3WK5NFVgiI8EMBECAE8FAkVvAL9IHQBTaG91bGQgaGF2
ZSBiZWVuIGEgbG9jYWwgc2lnbmF0dXJlLCBvciBzb21ldGhpbmcgLSBXVEYgd2Fz
IEkgdGhpbmtpbmc/AAoJEDnKK/Q9aopfoPsAn3BVqKOalJeF0xPSvLR90PsRlnmG
AJ44oisY7Tl3NJbPgZal8W32fbqgbIkCIgQQAQIADAUCQYHLhQWDBiLZBwAKCRCq
4+bOZqFEaKgvEACCErnaHGyUYa0wETjj6DLEXsqeOiXad4i9aBQxnD35GUgcFofC
/nCY4XcnCMMEnmdQ9ofUuU3OBJ6BNJIbEusAabgLooebP/3KEaiCIiyhHYU5jarp
ZAh+Zopgs3Oc11mQ1tIaS69iJxrGTLodkAsAJAeEUwTPq9fHFFzC1eGBysoyFWg4
bIjz/zClI+qyTbFA5g6tRoiXTo8ko7QhY2AA5UGEg+83Hdb6akC04Z2QRErxKAqr
phHzj8XpjVOsQAdAi/qVKQeNKROlJ+iq6+YesmcWGfzeb87dGNweVFDJIGA0qY27
pTb2lExYjsRFN4Cb13NfodAbMTOxcAWZ7jAPCxAPlHUG++mHMrhQXEToZnBFE4nb
nC7vOBNgWdjUgXcpkUCkop4b17BFpR+k8ZtYLSS8p2LLz4uAeCcSm2/msJxT7rC/
FvoH8428oHincqs2ICo9zO/Ud4HmmO0O+SsZdVKIIjinGyOVWb4OOzkAlnnhEZ3o
6hAHcREIsBgPwEYVTj/9ZdC0AO44Nj9cU7awaqgtrnwwfr/o4V2gl8bLSkltZU27
/29HeuOeFGjlFe0YrDd/aRNsxbyb2O28H4sG1CVZmC5uK1iQBDiSyA7Q0bbdofCW
oQzm5twlpKWnY8Oe0ub9XP5p/sVfck4FceWFHwv+/PC9RzSl33lQ6vM2wIkCIgQT
AQIADAUCQp8KHAWDBQWacAAKCRDYwgoJWiRXzyE+D/9uc7z6fIsalfOYoLN60ajA
bQbI/uRKBFugyZ5RoaItusn9Z2rAtn61WrFhu4uCSJtFN1ny2RERg40f56pTghKr
D+YEt+Nze6+FKQ5AbGIdFsR/2bUk+ZZRSt83e14Lcb6ii/fJfzkoIox9ltkifQxq
Y7Tvk4noKu4oLSc8O1Wsfc/y0B9sYUUCmUfcnq58DEmGie9ovUslmyt5NPnveXxp
5UeaRc5Rqt9tK2B4A+7/cqENrdZJbAMSunt2+2fkYiRunAFPKPBdJBsY1sxeL/A9
aKe0viKEXQdAWqdNZKNCi8rd/oOP99/9lMbFudAbX6nL2DSb1OG2Z7NWEqgIAzjm
pwYYPCKeVz5Q8R+if9/fe5+STY/55OaI33fJ2H3v+U435VjYqbrerWe36xJItcJe
qUzW71fQtXi1CTEl3w2ch7VF5oj/QyjabLnAlHgSlkSi6p7By5C2MnbCHlCfPnIi
nPhFoRcRGPjJe9nFwGs+QblvS/Chzc2WX3s/2SWm4gEUKRX4zsAJ5ocyfa/vkxCk
SxK/erWlCPf/J1T70+i5waXDN/E3enSet/WL7h94pQKpjz8OdGL4JSBHuAVGA+a+
dknqnPF0KMKLhjrgV+L7O84FhbmAP7PXm3xmiMPriXf+el5fZZequQoIagf8rdRH
HhRJxQgI0HNknkaOqs8dtrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWs
EN/lxaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLm
RDRiRjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hk
AWzE7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkb
f4fmLe11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHb
uE5p/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+
Lwqqa8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1Z
aSafanFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGo
TbOWI39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev4
2LmuQT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkK
Ht926s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUO
etdZWhe70YGNPw1yjWJT1IhUBBgRAgAMBQJOdz3tBQkT+wG4ABIHZUdQRwABAQkQ
jHGNO1By4fUUmwCbBYr2+bBEn/L2BOcnw9Z/QFWuhRMAoKVgCFm5fadQ3Afi+UQl
AcOphrnJ
=443I
-----END PGP PUBLIC KEY BLOCK-----

ビルド鍵を個人の公開 GPG 鍵リングにインポートするには、gpg --import を使用します。たとえば、鍵を mysql_pubkey.asc ファイルに保存した場合、インポートコマンドは次のようになります。

shell> gpg --import mysql_pubkey.ascgpg: key 5072E1F5: public key "MySQL Release Engineering
<mysql-build@oss.oracle.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: no ultimately trusted keys found

公開鍵 ID の 5072E1F5 を使用して、公開鍵サーバーから鍵をダウンロードすることもできます。

shell> gpg --recv-keys 5072E1F5
gpg: requesting key 5072E1F5 from hkp server keys.gnupg.net
gpg: key 5072E1F5: "MySQL Release Engineering <mysql-build@oss.oracle.com>"
1 new user ID
gpg: key 5072E1F5: "MySQL Release Engineering <mysql-build@oss.oracle.com>"
53 new signatures
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: new user IDs: 1
gpg: new signatures: 53

鍵を RPM 構成にインポートして RPM インストールパッケージを検証する場合、鍵を直接インポートできるはずです。

shell> rpm --import mysql_pubkey.asc

問題が生じた場合、または RPM 固有の情報が必要な場合は、セクション2.1.4.4「RPM を使用した署名確認」 を参照してください。

公開ビルド鍵をダウンロードしてインポートしたあと、所望の MySQL パッケージとそれに対応する署名をダウンロードします。これもダウンロードページで入手できます。次の表の例に示すように、署名ファイルの名前は配布ファイルと同じで、拡張子 .asc が付いています。

表 2.1 ソースファイルの MySQL パッケージと署名ファイル

ファイルタイプファイル名
配布ファイルmysql-standard-5.6.23-linux-i686.tar.gz
署名ファイルmysql-standard-5.6.23-linux-i686.tar.gz.asc

両方のファイルが同じディレクトリにあることを確認してから、次のコマンドを実行して配布ファイルの署名を確認します。

shell> gpg --verify package_name.asc

ダウンロードしたパッケージが有効である場合は、次のように「Good signature」 (良好な署名) であることが示されます。

shell> gpg --verify mysql-standard-5.6.23-linux-i686.tar.gz.ascgpg: Signature made Tue 01 Feb 2011 02:38:30 AM CST using DSA key ID 5072E1F5
gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>"

Good signature メッセージは、ファイルの署名が弊社のサイトに記載されている署名と比較して有効であることを示します。しかし、次のような警告が表示される場合もあります。

shell> gpg --verify mysql-standard-5.6.23-linux-i686.tar.gz.ascgpg: Signature made Wed 23 Jan 2013 02:25:45 AM PST using DSA key ID 5072E1F5
gpg: checking the trustdb
gpg: no ultimately trusted keys found
gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5

セットアップおよび構成に依存するので、これは正常です。これらの警告の説明は次のとおりです。

  • gpg: no ultimately trusted keys found: これは、特定の鍵がユーザーまたはユーザーの信頼する Web によって「最終的に信頼されて」いないことを意味します。これは、ファイルの署名を確認する目的に関しては問題ありません。

  • WARNING: This key is not certified with a trusted signature!There is no indication that the signature belongs to the owner.: これは、ユーザーの所有している鍵が弊社の本当の公開鍵であることをどの程度信用しているかに言及しています。これは個人的な判断です。理想的なのは MySQL 開発者が鍵を直接手渡すことですが、一般的には鍵はダウンロードされます。ダウンロードは改ざんされていますか?おそらくそうではないでしょう。しかし、その判断はユーザー次第です。信頼網をセットアップするのが、信頼するための 1 つの方法です。

公開鍵を処理する方法の詳細は GPG のドキュメントを参照してください。

2.1.4.3 Gpg4win for Windows を使用した署名確認

セクション2.1.4.2「GnuPG を使用した署名確認」 のセクションでは、GPG を使用して MySQL ダウンロードを確認する方法を説明しています。このガイドは Microsoft Windows にも適用されますが、もう 1 つの選択肢は Gpg4win などの GUI ツールを使用することです。ほかのツールを使用してもかまいませんが、ここでの例は Gpg4win に基づいており、バンドルの Kleopatra GUI を利用しています。

Gpg4win をダウンロードしてインストールしてから Kleopatra をロードします。次のようなダイアログが表示されるはずです。

図 2.1 Kleopatra ロード後の初期画面

Kleopatra ロード後の初期画面

次に、MySQL Release Engineering 証明書を追加します。そのためには、「File」「Lookup Certificates on Server」をクリックします。検索ボックスに「Mysql Release Engineering」と入力して「Search」をクリックします。

図 2.2 MySQL Release Engineering 証明書の検索

MySQL Release Engineering 証明書の検索

「MySQL Release Engineering」証明書を選択します。Fingerprint および Key-ID は「5072E1F5」でなければなりません。そうでない場合は、「Details...」を選択して証明書が有効であることを確認します。次に、「Import」をクリックしてインポートします。インポートダイアログが表示されます。「Okay」を選択すると、この証明書が「Imported Certificates」タブにリストされます。

次に、弊社の証明書の信頼レベルを構成します。弊社の証明書を選択して、メインメニューから「Certificates」「Change Owner Trust...」を選択します。弊社の証明書に対して、「I believe checks are very accurate」を選択することを推奨します。そうしないと弊社の署名を確認することができません。「I believe checks are very accurate」を選択してから、「OK」を押します。

図 2.3 信頼レベルの変更

信頼レベルの変更

次に、ダウンロードした MySQL パッケージファイルを確認します。これには、パッケージファイルと署名の両方のファイルが必要です。次の表の例に示すように、署名ファイルの名前はパッケージファイルと同じで、拡張子 .asc が付いていなければなりません。署名は各 MySQL 製品のダウンロードページにリンクされています。この署名で .asc ファイルを作成しなければなりません。

表 2.2 MySQL Installer for Microsoft Windows の MySQL パッケージと署名ファイル

ファイルタイプファイル名
配布ファイルmysql-installer-community-5.6.23.msi
署名ファイルmysql-installer-community-5.6.23.msi.asc

両方のファイルが同じディレクトリにあることを確認してから、次のコマンドを実行して配布ファイルの署名を確認します。署名 (.asc) ファイルを Kleopatra にドラッグ&ドロップするか、「File」「Decrypt/Verify Files...」からダイアログをロードしてから .msi ファイルまたは .asc ファイルのいずれかを選択します。

図 2.4 「Decrypt/Verify Files」ダイアログ

「Decrypt/Verify Files」ダイアログ

「Decrypt/Verify」をクリックしてファイルをチェックします。もっとも一般的な結果 2 つは次のように表示されます。黄色の警告は問題があるように見えますが、ファイルチェックが成功したことを意味します。このインストーラを実行できます。

図 2.5 Decrypt/Verify の結果: OK

Decrypt/Verify の結果: OK

「The signature is bad」というエラーが赤で表示された場合は、ファイルが無効であることを意味します。このエラーが表示された場合は、MSI ファイルを実行しないでください。

図 2.6 Decrypt/Verify の結果: NG

Decrypt/Verify の結果: NG

セクション2.1.4.2「GnuPG を使用した署名確認」 セクションでは、緑の「Good signature」という結果がおそらく表示されないであろう理由を説明します。

2.1.4.4 RPM を使用した署名確認

RPM パッケージには、個別の署名はありません。RPM パッケージには内蔵の GPG 署名および MD5 チェックサムがあります。次のコマンドを実行してパッケージを確認できます。

shell> rpm --checksig package_name.rpm

例:

shell> rpm --checksig MySQL-server-5.6.23-0.linux_glibc2.5.i386.rpmMySQL-server-5.6.23-0.linux_glibc2.5.i386.rpm: md5 gpg OK
注記

RPM 4.1 を使用していて、「(GPG) NOT OK (MISSING KEYS:GPG#5072e1f5)」と表示された場合、MySQL 公開ビルド鍵を自分の GPG 鍵リングにインポートした場合でも、この鍵をまず RPM 鍵リングにインポートする必要があります。RPM 4.1 は、お客様個人の GPG 鍵リング (あるいは GPG そのもの) を使用しなくなりました。RPM はシステム全体にわたるアプリケーションであり、ユーザーの GPG 公開鍵リングはユーザー固有のファイルであるため、RPM はむしろ独立した鍵リングを保持します。MySQL 公開鍵を個人の RPM 鍵リングにインポートするには、まず鍵を取得してから、rpm --import を使用して鍵をインポートします。例:

shell> gpg --export -a 5072e1f5 > 5072e1f5.asc
shell> rpm --import 5072e1f5.asc

あるいは、rpm は鍵を直接 URL からロードすることもサポートしていますので、このマニュアルページを使用できます。

shell> rpm --import https://dev.mysql.com/doc/refman/5.6/en/checking-gpg-signature.html

MySQL 公開鍵を取得する必要がある場合には、セクション2.1.4.2「GnuPG を使用した署名確認」 を参照してください。

2.1.5 インストールのレイアウト

インストールのレイアウトは、インストールの種類 (ネイティブパッケージ、バイナリ tarball、ソース tarball など) によって異なります。そのため、異なるシステムを管理する場合や異なるインストールソースを使用する場合に混乱しがちです。個々のレイアウトは、次に記載するように、対応するインストールの種類またはプラットフォームの章にあります。オラクル社以外のベンダーからのインストールのレイアウトは、これらのレイアウトと異なる場合がありますのでご注意ください。

2.1.6 コンパイラ固有のビルドの特徴

場合によっては、MySQL のビルドに使用するコンパイラによって、使用できる機能が影響を受けることがあります。このセクションのノートは、オラクル社が提供するバイナリ配布またはご自身でソースからコンパイルしたものに適用されます。

icc (Intel C++ コンパイラ) ビルド

icc でビルドされたサーバーは次の特徴があります。

  • SSL のサポートは含まれません。

2.2 一般的なバイナリを使用した MySQL の Unix/Linux へのインストール

オラクル社は、MySQL の一連のバイナリ配布を提供しています。これには、多数のプラットフォーム向けの圧縮 tar ファイル (.tar.gz 拡張子を持つファイル) の形式のバイナリ配布、および選ばれたプラットフォーム向けのプラットフォーム固有のパッケージ形式のバイナリが含まれます。

このセクションでは、圧縮 tar ファイルのバイナリ配布からの MySQL のインストールについて説明します。その他のプラットフォーム固有のパッケージについては、その他のプラットフォーム固有のセクションを参照してください。たとえば、Windows の配布は セクション2.3「Microsoft Windows に MySQL をインストールする」 を参照してください。

MySQL を取得するには、セクション2.1.3「MySQL の取得方法」 を参照してください。

MySQL の圧縮 tar ファイルのバイナリ配布は、mysql-VERSION-OS.tar.gz という形式の名前を持ちます。ここで、VERSION は数字 (5.6.23 など)、OS は配布が対象とするオペレーティングシステムのタイプ (pc-linux-i686 または winx64 など) です。

MySQL を圧縮 tar ファイルのバイナリ配布からインストールするには、配布を展開するための GNU gunzip、およびそれをアンパックするための妥当な tar がシステムになければなりません。使用している tar プログラムが z オプションをサポートする場合は、ファイルの展開とアンパックの両方を実行できます。

GNU tar が機能することが知られています。一部のオペレーティングシステムで提供される標準の tar は、MySQL 配布内の長いファイル名をアンパックできません。GNU tar をダウンロードしてインストールするか、プリインストールバージョンの GNU tar が利用可能であればそれを使用します。通常、これは gnutargtar、または tar という名前です (/usr/sfw/bin または /usr/local/bin などの GNU または Free Software ディレクトリ内)。GNU tar は、http://www.gnu.org/software/tar/ から入手可能です。

警告

yum または apt-get などの、使用しているオペレーティングシステムのネイティブパッケージ管理システムを使用して MySQL を以前にインストールしたことがある場合は、ネイティブバイナリを使用してインストールすると問題が生じる場合があります。(パッケージ管理システムを使用して) 以前の MySQL のインストールが完全に削除され、データファイルの古いバージョンなどの追加ファイルもすべて削除されていることを確認してください。/etc/my.cnf などの構成ファイルの存在や、/etc/mysql ディレクトリが削除されていることもチェックしてください。

警告

MySQL には、libaio ライブラリへの依存関係があります。mysql_install_db および後続の mysqld_safe の手順は、このライブラリがローカルにインストールされていない場合は失敗します。必要に応じて、適切なパッケージマネージャーを使用してインストールします。たとえば、Yum ベースのシステムでは次のようにします。

shell> yum search libaio # search for info
shell> yum install libaio # install library

または、apt-get ベースのシステムでは次のようにします。

shell> apt-cache search libaio # search for info
shell> apt-get install libaio1 # install library

問題が発生してバグをレポートする必要が生じた場合には、セクション1.6「質問またはバグをレポートする方法」 の手順に従ってください。

Unix では、圧縮 tar ファイルのバイナリ配布をインストールするには、選択したインストールの場所 (通常 /usr/local/mysql) でアンパックします。これにより、次の表に示すディレクトリが作成されます。

表 2.3 一般的な Unix/Linux バイナリパッケージの MySQL インストールのレイアウト

ディレクトリディレクトリの内容
binクライアントプログラムおよび mysqld サーバー
dataログファイル、データベース
docsInfo 形式のドキュメント
manUnix マニュアルページ
includeインクルード (ヘッダー) ファイル
libライブラリ
scriptsmysql_install_db
shareエラーメッセージ、サンプル構成ファイル、データベースインストールのための SQL を含む種々のサポートファイル
sql-benchベンチマーク

mysqld バイナリのデバッグバージョンは、mysqld-debug として利用可能です。ソース配布から独自のデバッグバージョンの MySQL をコンパイルするには、適切な構成オプションを使用してデバッグのサポートを有効にします。ソースからのコンパイルの詳細は、セクション2.9「ソースから MySQL をインストールする」 を参照してください。

MySQL バイナリ配布をインストールして使用するには、基本的なコマンドシーケンスは次のようになります。

shell> groupadd mysqlshell> useradd -r -g mysql mysqlshell> cd /usr/localshell> tar zxvf /path/to/mysql-VERSION-OS.tar.gzshell> ln -s full-path-to-mysql-VERSION-OS mysqlshell> cd mysqlshell> chown -R mysql .shell> chgrp -R mysql .shell> scripts/mysql_install_db --user=mysqlshell> chown -R root .shell> chown -R mysql datashell> bin/mysqld_safe --user=mysql &# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

mysql_install_db は、my.cnf という名前のデフォルトオプションファイルを基本インストールディレクトリに作成します。このファイルは my-default.cnf という名前の配布パッケージに含まれるテンプレートから作成されます。詳細は、セクション5.1.2.2「サンプルのデフォルトサーバー構成ファイルの使用」 を参照してください。

バイナリ配布のインストールに関する前述の説明を、次に詳細に説明します。

注記

この手順では、システムへの root (管理者) アクセスがあるものとします。あるいは、sudo (Linux) または pfexec (OpenSolaris) コマンドを使用して、各コマンドにプリフィクスを付けることができます。

手順では、MySQL アカウントにパスワードはセットアップしません。その手順のあとは、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」 に進みます。

mysql ユーザーおよびグループの作成

使用しているシステムに、実行するための mysqld のユーザーおよびグループがまだない場合は、作成する必要があるでしょう。次のコマンドは、mysql グループおよび mysql ユーザーを作成します。ユーザーやグループを mysql のではなく別の名前に変更したい場合があります。その場合は、以降の説明では適切な名前に置き換えてください。useradd および groupadd の構文は、Unix のバージョンによって多少異なる場合があり、また adduser および addgroup などの別な名前を使用している場合もあります。

shell> groupadd mysqlshell> useradd -r -g mysql mysql
注記

このユーザーは、ログイン目的ではなく所有の目的で必要なだけであるため、useradd コマンドでは -r オプションを使用して、サーバーホストへのログイン権限を持たないユーザーを作成します。ユーザーにログインを許可する場合 (または useradd がこのオプションをサポートしない場合) は、このオプションを省略します。

配布の取得とアンパック

配布をアンパックするディレクトリを選択してそこに移動します。この例では、配布を /usr/local の下にアンパックします。したがって、この説明では /usr/local にファイルおよびディレクトリを作成する許可があるものとします。そのディレクトリが保護されている場合は、インストールを root として実行する必要があります。

shell> cd /usr/local

配布ファイルを セクション2.1.3「MySQL の取得方法」 の説明に従って取得します。所定のリリースでは、すべてのプラットフォームのバイナリの配布は同じ MySQL のソース配布でビルドされています。

配布をアンパックすると、インストールディレクトリが作成されます。次に、そのディレクトリへのシンボリックリンクを作成します。tarz オプションをサポートする場合、配布の展開とアンパックを実行できます。

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gzshell> ln -s full-path-to-mysql-VERSION-OS mysql

tar コマンドが mysql-VERSION-OS という名前のディレクトリを作成します。ln コマンドがそのディレクトリへのシンボリックリンクを作成します。これにより、インストールディレクトリを /usr/local/mysql として、より簡単に参照できるようになります。

tarz オプションをサポートしない場合は、gunzip を使用して配布をパックし、tar を使用してアンパックします。前述の tar コマンドを次の代替コマンドに置き換えて、配布を展開して抽出します。

shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

インストール後のセットアップの実行

インストールプロセスの残りの部分は、構成ファイルのセットアップ、コアデータベースの作成、および MySQL Server の開始などです。次の手順については、セクション2.10「インストール後のセットアップとテスト」 を参照してください。

注記

MySQL の付与テーブルにリストされているアカウントには、最初はパスワードがありません。サーバーの起動後に セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」 の説明に従ってパスワードをアカウントに設定する必要があります。

2.3 Microsoft Windows に MySQL をインストールする

Microsoft Windows に MySQL をインストールするには、いくつかの方法があります。

単純なインストール方法

もっとも単純で推奨される方法は、MySQL Installer (for Windows) をダウンロードし、それを使用してすべての MySQL 製品をシステムにインストールして構成することです。次に方法を説明します。

  • MySQL Installer を https://dev.mysql.com/downloads/installer/ からダウンロードして実行します。

    注記

    標準の MySQL Installer とは異なり、より小さい「Web コミュニティー」バージョンには MySQL アプリケーションは一切バンドルされていませんが、インストールすることを選択した MySQL 製品がダウンロードされます。

  • システムに適した「Setup Type」を選択します。通常、「Developer Default」を選択して MySQL Server および MySQL の開発に関係する、MySQL Workbench などの有用なその他の MySQL ツールをインストールします。あるいは、「Custom」セットアップタイプを選択して、必要な MySQL 製品を手動で選択します。

    注記

    単一のシステムに複数のバージョンの MySQL Server が存在できます。1 つまたは複数のバージョンを選択できます。

  • MySQL インストールウィザードの指示に従って、インストールプロセスを完了します。これにより、いくつかの MySQL 製品がインストールされ、MySQL Server が起動されます。

  • MySQL がインストールされました。おそらく、システムを再起動するたびに MySQL Server を自動的に起動するサービスとして、MySQL を構成したでしょう。

注記

また、MySQL Workbench および MySQL Notifier などのその他の有用な MySQL 製品もシステムにインストールしたでしょう。新しい MySQL Server 接続のチェック用に 第26章「MySQL Workbench を、接続のステータスの表示用に セクション2.3.4「MySQL Notifier」 をロードすることを考慮してください。デフォルトでは、これら 2 つのプログラムは MySQL のインストール後自動的に起動します。

このプロセスでは、MySQL Installer アプリケーションもシステムにインストールされ、あとで MySQL Installer を使用して MySQL 製品のアップグレードや再構成を実行できます。

インストールの追加情報

MySQL は、32 ビットバージョンおよび 64 ビットバージョンの Microsoft Windows に対応しています。サポートされる Windows プラットフォームの情報については、https://www.mysql.com/support/supportedplatforms/database.html を参照してください。

MySQL は、標準アプリケーションまたは Windows サービスとして実行できます。サービスを使用することで、標準 Windows サービス管理ツールを介してサーバーの動作をモニターおよび制御できます。詳細については、セクション2.3.5.7「Windows のサービスとして MySQL を起動する」を参照してください。

一般的には、Windows に MySQL をインストールするには管理者権限のアカウントを使用する必要があります。そうでない場合、PATH 環境変数の編集あるいは サービス管理マネージャーにアクセスするなどの操作の場合に、問題が発生することがあります。インストール後の MySQL は、管理者権限を持つユーザーを使用して実行する必要はありません。

Windows プラットフォームで MySQL を使用する場合の制限のリストは、セクションD.10.6「Windows プラットフォームの制限」 を参照してください。

MySQL Server パッケージのほかに、アプリケーションまたは開発環境で MySQL を使用するために、追加のコンポーネントが必要またはあると便利な場合があります。次のものが含まれますがこれに限りません。

  • ODBC を使用して MySQL Server に接続するには、Connector/ODBC ドライバが必要です。インストールおよび構成の説明を含む詳細情報は、MySQL Connector/ODBC Developer Guide を参照してください。

    注記

    MySQL Installer が、Connector/ODBC のインストールおよび構成を行います。

  • MySQL Server を .NET アプリケーションとともに使用するには、Connector/Net ドライバが必要です。インストールおよび構成の説明を含む詳細情報は、MySQL Connector/NET Developer Guide を参照してください。

    注記

    MySQL Installer が、Connector/NET のインストールおよび構成を行います。

MySQL の Windows 版配布は、https://dev.mysql.com/downloads/ からダウンロードできます。セクション2.1.3「MySQL の取得方法」を参照してください。

MySQL for Windows は複数の配布形式で利用可能です。次に詳細を説明します。一般的には、MySQL Installer を使用するとよいでしょう。以前の MSI よりも多くの機能と MySQL 製品を含み、ZIP ファイルよりも単純で使いやすく、MySQL を起動して実行するために追加のツールは不要です。MySQL Installer は、自動的に MySQL Server および追加の MySQL 製品をインストールし、オプションファイルを作成してサーバーを起動し、デフォルトのユーザーアカウントを作成できるようにします。パッケージ選択の詳細は、セクション2.3.2「インストール用パッケージの選択」 を参照してください。

Windows 上の MySQL の考慮事項

  • 大規模テーブルのサポート

    4G バイト以上のテーブルが必要な場合、NTFS 以降のファイルシステムに MySQL をインストールします。テーブルの作成時には、必ず MAX_ROWSAVG_ROW_LENGTH を使用します。セクション13.1.17「CREATE TABLE 構文」を参照してください。

  • MySQL およびウィルスチェックソフトウェア

    MySQL のデータおよび一時テーブル含むディレクトリに、Norton/Symantec Anti-Virus などのウィルススキャンソフトウェアがあると、MySQL のパフォーマンス、およびウィルススキャンソフトウェアがファイルの内容をスパムを含むものと誤認するという問題が生じる可能性があります。これは、ウィルススキャンソフトウェアのフィンガープリント解析メカニズムと、MySQL がさまざまなファイルを高速で更新する方法が潜在的なセキュリティーリスクと認識される可能性があるということが原因です。

    MySQL Server のインストール後、MySQL のテーブルデータを格納するために使用するメインディレクトリ (datadir) 上でのウィルススキャンを無効にすることが推奨されます。通常、ウィルススキャンソフトウェアには特定のディレクトリを無視するシステムが組み込まれており、有効にできます。

    また、MySQL はデフォルトで、標準の Windows 一時ディレクトリに一時ファイルを作成します。一時ファイルがスキャンされることも避けるために、MySQL の一時ファイル用に独立した一時ディレクトリを構成し、このディレクトリをウィルススキャンの除外リストに追加します。これを行うには、tmpdir パラメータの構成オプションを my.ini 構成ファイルに追加します。詳細については、セクション2.3.5.2「オプションファイルの作成」 を参照してください。

2.3.1 Microsoft Windows 上での MySQL のインストールレイアウト

Windows 上の MySQL 5.6 では、デフォルトのインストールディレクトリは C:\Program Files\MySQL\MySQL Server 5.6 です。Windows ユーザーの中には、以前デフォルトで使用されていたディレクトリである C:\mysql にインストールすることを好むユーザーもいます。しかし、サブディレクトリのレイアウトは同じです。

すべてのファイルは、次の表に示される構造を使用してこの親ディレクトリ内に配置されています。

表 2.4 Microsoft Windows の MySQL のデフォルトインストールレイアウト

ディレクトリディレクトリの内容メモ
binクライアントプログラムおよび mysqld サーバー 
%ALLUSERSPROFILE%\MySQL\MySQL Server 5.6\ログファイル、データベース (Windows XP、Windows Server 2003)Windows システム変数 %ALLUSERSPROFILE% のデフォルトは C:\Documents and Settings\All Users\Application Data です。
%PROGRAMDATA%\MySQL\MySQL Server 5.6\ログファイル、データベース (Vista、Windows 7、Windows Server 2008 以降)Windows システム変数 %PROGRAMDATA% のデフォルトは C:\ProgramData です。
examplesプログラムおよびスクリプト例 
includeインクルード (ヘッダー) ファイル 
libライブラリ 
scriptsユーティリティースクリプト 
shareエラーメッセージ、文字セットファイル、サンプル構成ファイル、データベースインストールのための SQL を含む種々のサポートファイル 

MySQL Installer を使用して MySQL をインストールした場合、このパッケージはインストールされたサーバーが使用するデータディレクトリを作成してセットアップします。また、インストールディレクトリの下に data という名前の新しいテンプレートデータディレクトリも作成します。このパッケージを使用してインストールを実行したあと、テンプレートデータディレクトリをコピーして追加の MySQL インスタンスをセットアップできます。セクション5.3「1 つのマシン上での複数の MySQL インスタンスの実行」 を参照してください。

2.3.2 インストール用パッケージの選択

MySQL 5.6 では、Windows 上に MySQL をインストールする際にインストールパッケージの形式を選択できます。

  • MySQL Installer: このパッケージは mysql-installer-community-5.6.23.0.msi または mysql-installer-commercial-5.6.23.0.msi のようなファイル名を持ち、MSI を利用して MySQL Server およびその他の製品を自動的にインストールします。自分自身およびインストールした各製品のアップデートをダウンロードして適用します。また、追加の非サーバー製品の構成も行います。

    インストールされた製品は構成可能で、これにはサンプルと例を含むドキュメント、コネクタ (C、C++、J、NET、および ODBC など)、MySQL Workbench、MySQL Notifier、MySQL for Excel、および MySQL Server とそのコンポーネントが含まれます。

    MySQL Installer は、MySQL がサポートするすべての Windows プラットフォームで実行できます (https://www.mysql.com/support/supportedplatforms/database.html を参照してください)。

    注記

    MySQL Installer は Microsoft Windows のネイティブコンポーネントではなく .NET に依存するため、Windows Server 2008 の「Server Core」バージョンなどの最小インストールオプションでは動作しません。

    MySQL Installer を使用して MySQL をインストールする方法の説明は、セクション2.3.3「MySQL Installer を使用した MySQL の Microsoft Windows へのインストール」 を参照してください。

  • 非インストールアーカイブ: このパッケージは mysql-5.6.23-win32.zip または mysql-5.6.23-winx64.zip のようなファイル名を持ち、完全なインストールパッケージ内にある、GUI を除くすべてのファイルを含みます。このパッケージには Automated Installer が含まれていないので、手動でインストールして構成する必要があります。

ほとんどのユーザーには MySQL Installer を推奨します。

インストールのパッケージの選択によってインストールのプロセスが変わります。MySQL Installer を使用することを選択した場合は、セクション2.3.3「MySQL Installer を使用した MySQL の Microsoft Windows へのインストール」 を参照してください。非インストールアーカイブを使用することを選択した場合は、セクション2.3.5「非インストール Zip アーカイブを使用して Microsoft Windows に MySQL をインストールする」 を参照してください。

2.3.3 MySQL Installer を使用した MySQL の Microsoft Windows へのインストール

MySQL Installer を使用すると、MySQL 製品の Microsoft Windows へのインストールと更新が簡潔になります。この中心的なアプリケーションから、使用しているシステム上の MySQL 製品の表示、削除、更新、および再構成を実行できます。MySQL Installer では、プラグイン、ドキュメント、チュートリアル、およびサンプルデータベースのインストールも行えます。MySQL Installer が使用可能なのは Microsoft Windows のみで、GUI とコマンド行インタフェースの両方を含みます。

サポートされる製品は次のとおりです。

Installer パッケージのタイプ

  • Full: すべての MySQL 製品 (MySQL Server を含む) がバンドルされています。ファイルのサイズは 200MB を超え、名前は mysql-installer-community-VERSION.N.msi の形式です。ここで、VERSION は 5.6 などの MySQL Server のバージョン番号、N は 0 から始まるパッケージ番号です。

  • Web: Installer と構成ファイルのみを含み、インストールすることを選択した MySQL 製品のみをダウンロードします。このファイルのサイズは約 2MB です。ファイル名は mysql-installer-community-web-VERSION.N.msi の形式で、VERSION は 5.6 などの MySQL Server のバージョン番号、N は 0 から始まるパッケージ番号です。

Installer のエディション

  • コミュニティーエディション:https://dev.mysql.com/downloads/installer/ からダウンロードできます。これは、すべての MySQL 製品のコミュニティーエディションをインストールします。

  • 商用エディション:My Oracle Support (MOS) または https://edelivery.oracle.com/ からダウンロードできます。これは、Workbench SE/EE を含むすべての MySQL 製品の商用バージョンをインストールします。MOS アカウントとも統合します。

    注記

    バンドルの MySQL 製品をインストールする際には MOS の資格情報の入力はオプションですが、MySQL Installer がダウンロードする必要のある、バンドルされていない MySQL 製品を選択する場合は視覚情報が必要です。

MySQL Installer の各リリースの変更内容の詳細は、MySQL Installer リリースノート を参照してください。

MySQL Installer は、前から存在するインストールと互換性があり、インストール済みコンポーネントのリストにそれらを追加します。標準の MySQL Installer は MySQL Server の特定のバージョンにバンドルされていますが、単独の MySQL Installer インスタンスで MySQL Server の複数のバージョンのインストールと管理が可能です。たとえば、単独の MySQL Installer インスタンスで 5.5、5.6、および 5.7 のバージョンをホストにインストール (および更新) 可能です。

注記

単独のホストに MySQL Server のコミュニティーエディションと商用エディションの両方をインストールすることはできません。たとえば、MySQL Server 5.5 と 5.6 の両方を単独のホストにインストールする場合、両方が同じエディションでなければなりません。

MySQL Installer はアプリケーションの初期構成およびセットアップを処理します。例:

  1. MySQL Workbench に MySQL Server の初期接続を作成します。

  2. MySQL Server の構成に使用される構成ファイル (my.ini) を作成します。このファイルに書き込まれる値は、インストールのプロセスで選択した内容に影響されます。

  3. オプションでサンプルデータベースをインポートできます。

  4. オプションで、DB Administrator、DB Designer、および Backup Admin などの一般的なロールに基づいた構成可能な権限を持つ MySQL Server ユーザーアカウントを作成できます。オプションで、MysqlSys という名前の制限付き権限を持つ Windows ユーザーを作成し、このユーザーが MySQL Server を実行します。

    MySQL Workbench でユーザーアカウントを追加して構成することもできます。

  5. 「Advanced Configuration」オプションをチェックした場合は、「Logging Options」も構成されます。これには、エラーログ、(クエリー実行に必要な秒数の構成を含む) スロークエリーログ、およびバイナリログのファイルパスの定義が含まれます。

MySQL Installer では、オプションで更新されたコンポーネントをチェックしてダウンロードすることも可能です。

2.3.3.1 MySQL Installer GUI

MySQL Installer をインストールすると、「スタート」メニューに「MySQL」グループへのリンクが追加されます。「スタート」「すべてのプログラム」「MySQL」「MySQL Installer」をクリックして MySQL Installer GUI をリロードします。

注記

MySQL Installer によって生成されたファイルは、my.ini を含めて MySQL Installer を実行するユーザーにフルアクセス権を付与します。これは、SYSTEM が所有する %ProgramData% にある MySQL Server データディレクトリなど、固有の製品のファイルとディレクトリには該当しません。

MySQL Installer を最初に実行するためには、MySQL 製品をインストールする前にライセンス契約を受け入れる必要があります。

図 2.7 MySQL Installer - ライセンス契約

MySQL Installer - ライセンス契約

新規パッケージのインストール

システムに適した「Setup Type」を選択します。選択したタイプによって、どの MySQL 製品がシステムにインストールされるかが決まります。あるいは、「Custom」を選択して個々の製品を手動で選択します。

  • Developer: MySQL でアプリケーションを開発するために必要なすべての製品をインストールします。これはデフォルトのオプションです。

  • Server only: MySQL Server のみをインストールします。

  • Client only: MySQL クライアント製品のみをインストールします。MySQL Server は含まれません。

  • Full: すべての MySQL 製品をインストールします。

  • Custom: インストールする MySQL 製品を手動で選択します。

    注記

    初期インストールのあと、MySQL Installer を使用して、インストールまたは削除する MySQL 製品を手動で選択できます。つまり、MySQL Installer は MySQL 製品管理システムになります。

図 2.8 MySQL Installer - セットアップタイプの選択

MySQL Installer - セットアップタイプの選択

セットアップタイプを選択すると、MySQL Installer は、選択された各 MySQL 製品の必要な外部要件に関して、システムをチェックします。MySQL Installer は、足りないコンポーネントをダウンロードしてシステムにインストールするか、あるいはダウンロードの場所を指示して「Status」を「Manual」に設定します。

次のウィンドウは、インストールがスケジュールされている MySQL 製品をリストします。

図 2.9 MySQL Installer - インストールの進捗

MySQL Installer - インストールの進捗

コンポーネントがインストールされると、その「Status」が進捗のパーセントから「Complete」に変わります。

すべてのコンポーネントがインストールされると、次のステップでは最近インストールされた MySQL 製品のいくつかが構成されます。「Configuration Overview」ウィンドウは、進捗を表示してから必要に応じて構成ウィンドウをロードします。この例では、MySQL Server 5.6.x を構成します。

MySQL Server の構成

MySQL Server の構成では、まずいくつかの「Type and Networking」オプションを定義します。

図 2.10 MySQL Installer - 構成概要

MySQL Installer - 構成概要

Server の構成タイプ

セットアップを記述する MySQL Server の構成タイプを選択します。この設定により、MySQL Server インスタンスに割り当てられるシステムリソースの量が決まります。

  • Developer: ほかに多数のアプリケーションをホストするマシンで、通常ユーザーの個人的なワークステーションです。このオプションでは、MySQL が最小のメモリーを使用するように構成されます。

  • Server: このマシンでは、Web サーバーなど、ほかにいくつかのアプリケーションが実行されています。このオプションでは、MySQL が中程度のメモリーを使用するように構成されます。

  • Dedicated: MySQL Server 実行専用のマシンです。サーバーでは、ほかに Web サーバーのような主要なアプリケーションが実行されていないため、このオプションでは利用可能なすべてのメモリーを MySQL が使用するように構成されます。

接続性

接続性オプションは、MySQL への接続方法を制御します。次のようなオプションがあります。

  • TCP/IP: TCP/IP ネットワークを有効にできます。そううしないとローカルホスト接続のみが許可されます。「Port Number」およびネットワークアクセス用にファイアウォールポートをオープンするかどうかも定義します。

  • Named Pipe: パイプを有効にしてパイプ名を定義します。--enable-named-pipe オプションを使用するのと同様です。

  • Shared Memory: メモリー名を有効にしてから定義します。--shared-memory オプションを使用するのと同様です。

高度な構成

「Advanced Configuration」オプションをチェックした場合は、構成する追加の「Logging Options」が提供されます。これには、エラーログ、(クエリー実行に必要な秒数の構成を含む) スロークエリーログ、およびバイナリログのファイルパスの定義が含まれます。

図 2.11 MySQL Installer - MySQL Server の構成: タイプとネットワーク

MySQL Installer - MySQL Server の構成: タイプとネットワーク

アカウントとロール

次に、MySQL のアカウント情報を定義します。ルートパスワードの割り当ては必須です。

オプションで、事前定義されたユーザーロールを持つ MySQL ユーザーアカウントを追加できます。「DB Admin」などの事前定義ロールは、それぞれ独自の権限セットで構成されています。たとえば、「DB Admin」ロールは「DB Designer」ロールより多くの権限を持っています。「Role」ドロップダウンをクリックするとロールの説明のリストが表示されます。

注記

MySQL Server がすでにインストールされている場合は、現在の Root のパスワードも入力しなければなりません。

図 2.12 MySQL Installer - MySQL Server 構成: ユーザーアカウントとロール

MySQL Installer - MySQL Server 構成: ユーザーアカウントとロール

図 2.13 MySQL Installer - MySQL Server 構成: ユーザーアカウントとロール: ユーザーの追加

MySQL Installer - MySQL Server 構成: ユーザーアカウントとロール: ユーザーの追加

Windows サービス

次に、「Windows Service」詳細を構成します。これには、サービス名、起動時に MySQL Server をロードするかどうか、および MySQL Server の Windows サービスの実行方法が含まれます。

図 2.14 MySQL Installer - MySQL Server 構成: Windows サービス

MySQL Installer - MySQL Server 構成: Windows サービス

注記

「Run Windows Services as ...」「Custom User」を使用して構成する場合は、Microsoft Windows にサービスとしてログインする権限をカスタムユーザーが持っていなければなりません。また、このユーザーがこれらのユーザー権限で構成されるまで、「Next」ボタンは無効です。

Microsoft Windows 7 では、これは, 「スタート」メニュー「コントロール パネル」「管理ツール」「ローカル セキュリティ ポリシー」「ローカル ポリシー」「ユーザー権利の割り当て」「サービスとしてログオン」をロードすることで構成されます。ここで「ユーザーまたはグループの追加」を選択してカスタムユーザーを追加し、次に「OK」「OK」を選択して保存します。

高度なオプション

次の構成手順は、「Advanced Configuration」オプションをチェックした場合に使用可能になります。このセクションでは、MySQL のログファイルに関係するオプションを説明します。

図 2.15 MySQL Installer - MySQL Server 構成: ロギングオプション

MySQL Installer - MySQL Server 構成: ロギングオプション

すべてのリクエストした変更が適用される前に、「Next」をクリックして、最後のページに進みます。この「Apply Server Configuration」ページでは、実行される構成手順の詳細が示されます。

図 2.16 MySQL Installer - MySQL Server 構成: サーバー構成の適用

MySQL Installer - MySQL Server 構成: サーバー構成の適用

「Execute」をクリックして構成手順を実行します。各手順が成功するとアイコンが白から緑に変わり、失敗するとプロセスは停止します。「Log」タブをクリックしてログを表示します。

MySQL Installer 構成プロセスが終了すると、MySQL Installer は開始ページをリロードし、そこでインストールおよび構成に関連するその他のアクションを実行できます。

MySQL Installer が Microsoft Windows の「スタート」メニューの「MySQL」グループに追加されます。MySQL Installer をオープンするとダッシュボードがロードされ、インストール済みの MySQL 製品がリストされます。また、その他の MySQL Installer のアクションが使用可能です。

図 2.17 MySQL Installer - メインダッシュボード

MySQL Installer - メインダッシュボード

MySQL 製品の追加

「Add」をクリックして新しい製品を追加します。これにより、「Select Products and Features」ページがロードされます。

図 2.18 MySQL Installer - 製品と機能の選択

MySQL Installer - 製品と機能の選択

ここで、インストールする MySQL 製品を左の「Available Products」ペインから選択してから、緑色の右矢印をクリックしてインストール用のキューに入れます。

オプションで、「Edit」をクリックして製品と機能の検索フィルタをオープンします。

図 2.19 MySQL Installer - 製品と機能の選択フィルタ

MySQL Installer - 製品と機能の選択フィルタ

たとえば、まだ GA ステータスに到達していないベータ製品などの、リリース前の製品を選択に含めることがあります。

注記

MySQL 製品のリリース前のバージョンをインストールする機能は、MySQL Installer 1.4.0 で加えられました。

インストールするすべての MySQL 製品を選択してから「Next」をクリックして続行し、次に「Execute」をクリックしてインストールプロセスを実行して、選択したすべての製品をインストールします。

2.3.3.1.1 MySQL 製品カタログ

MySQL Installer は MySQL 製品カタログを保管しています。このカタログは手動または自動で更新でき、カタログの変更履歴も利用できます。

注記

MySQL 製品カタログは MySQL Installer 1.4.0 で加えられました。

手動更新

MySQL 製品カタログは、Installer のダッシュボードで「Catalog」をクリックすることでいつでも更新できます。

図 2.20 MySQL Installer - MySQL 製品カタログのオープン

MySQL Installer - MySQL 製品カタログのオープン

そこから、「Execute」をクリックして製品カタログを更新します。

自動更新

MySQL 製品カタログを 1 日 1 度自動的に更新するように MySQL Installer を構成できます。この機能を有効にして更新時間を設定するには、Installer ダッシュボードのレンチアイコンをクリックします。

次のウィンドウで、「Automatic Catalog Update」を構成します。この機能を有効または無効にして時間も設定します。

図 2.21 MySQL Installer - カタログスケジューラの構成

MySQL Installer - カタログスケジューラの構成

このオプションは Windows のタスクスケジューラを使用して「ManifestUpdate」という名前のタスクをスケジュールします。

変更履歴

MySQL Installer はすべての MySQL 製品の変更履歴を追跡しています。ダッシュボードから「Catalog」をクリックし、オプションでカタログを更新し (または「Do not update at this time」チェックボックスを切り替え)、「Next」/「Execute」をクリックしてから変更履歴を表示します。

図 2.22 MySQL Installer - カタログ変更履歴

MySQL Installer - カタログ変更履歴

2.3.3.1.2 MySQL 製品の削除

MySQL Installer では、MySQL 製品をシステムから削除することもできます。MySQL 製品を削除するには、Installer のダッシュボードから「Remove」をクリックします。これにより、ウィンドウが開いてインストール済みの MySQL 製品が表示されます。削除する (アンインストールする) MySQL 製品を選択してから、「Execute」をクリックすると削除プロセスが開始します。

注記

すべての MySQL 製品を選択するには、「Product」ラベルの左の [ ] チェックボックスをクリックします。

図 2.23 MySQL Installer - 製品の削除: 選択

MySQL Installer - 製品の削除: 選択

図 2.24 MySQL Installer - 製品の削除: 実行

MySQL Installer - 製品の削除: 実行

2.3.3.1.3 MySQL 製品の変更

MySQL Installer では、MySQL 製品のインストールを変更するいくつかのオプションがあります。

アップグレード

アップグレードが利用可能な MySQL 製品は、メインダッシュボード上で強調表示されます。アップグレードが利用可能な製品には、バージョン番号の隣にアップグレードアイコンがあります。

図 2.25 MySQL Installer - MySQL 製品のアップグレード

MySQL Installer - MySQL 製品のアップグレード

注記

利用可能なアップグレードは、最新のカタログがあることで判断されます。MySQL 製品カタログを最新の状態に維持する方法については、セクション2.3.3.1.1「MySQL 製品カタログ」を参照してください。

「Upgrade」をクリックしてアップグレード可能な製品のリストを表示します。この例では、MySQL Server 5.6.19 をバージョン 5.6.20 にアップグレードできることが示されています。

図 2.26 MySQL Installer - アップグレードする製品の選択

MySQL Installer - アップグレードする製品の選択

アップグレードする製品を選択 (チェック) し、オプションで「changes」リンクをクリックして製品のリリースノートをブラウザに表示します。「Next」をクリックしてアップグレードプロセスを開始します。

図 2.27 MySQL Installer - 更新の適用

MySQL Installer - 更新の適用

MySQL Server アップグレードでは、サーバーのデータベースもチェックしてアップグレードします。この手順はオプションですがお勧めしています。

図 2.28 MySQL Installer - データベースのチェックとアップグレード

MySQL Installer - データベースのチェックとアップグレード

完了すると、製品がアップグレードされ使用できるようになります。MySQL Server アップグレードが、MySQL Server の再起動も行います。

再構成

MySQL Server などの一部の MySQL 製品には、「Reconfigure」オプションがあります。その MySQL 製品がインストールされたときに設定した構成オプションと同じものが開き、現在の値が事前に移入されます。

実行するには、メインダッシュボードで、再構成する MySQL 製品の「Quick Action」カラムの「Reconfigure」リンクをクリックします。

図 2.29 MySQL Installer - MySQL 製品の再構成

MySQL Installer - MySQL 製品の再構成

MySQL Server の場合は、これにより見慣れた構成ウィザードが開きます。

図 2.30 MySQL Installer - 再構成ウィザード

MySQL Installer - 再構成ウィザード

変更

多くの MySQL 製品には、追加または削除が可能な機能コンポーネントが含まれます。たとえば、Debug binaries および Client Programs は MySQL Server のサブコンポーネントです。

製品の機能を変更するには、メインダッシュボードで「Modify」をクリックします。

図 2.31 MySQL Installer - 製品の機能の変更

MySQL Installer - 製品の機能の変更

「Execute」をクリックして変更リクエストを実行します。

2.3.3.2 MySQL Installer Console

MySQLInstallerConsole は、GUI バージョンの MySQL Installer と同様の機能を提供しますが、コマンド行から実行します。これは、MySQL Installer をはじめて実行した際にインストールされ、MySQL Installer ディレクトリ内で利用可能になります。通常これは C:\Program Files (x86)\MySQL\MySQL Installer\ で、Console は管理者権限で実行しなければなりません。

使用するには、「スタート」「アクセサリ」を選択してから「コマンド プロンプト」を右クリックし、「管理者として実行」を選択して、管理者権限でコマンドプロンプトを起動します。そして、オプションでコマンド行からディレクトリを MySQLInstallerConsole のある場所に変更します。

C:\> cd "C:\Program Files (x86)\MySQL\MySQL Installer"C:\> MySQLInstallerConsole.exe helpC:\Program Files (x86)\MySQL\MySQL Installer for Windows>MySQLInstallerConsole.exe help
The following commands are available:
Configure - Configures one or more of your installed programs.
Help - Provides list of available commands.
Install - Install and configure one or more available MySQL programs.
List - Provides an interactive way to list all products available.
Modify - Modifies the features of installed products.
Remove - Removes one or more products from your system.
Status - Shows the status of all installed products.
Update - Update the current product catalog.
Upgrade - Upgrades one or more of your installed programs.

MySQLInstallerConsole は次のオプションをサポートします。これらはコマンド行で指定します。

  • configure [product1]:[setting]=[value]; [product2]:[setting]=[value]; [...]

    システム上の 1 つまたは複数の MySQL 製品を構成します。

    次のようなスイッチがあります。

    • -showsettings: 製品名を -showsettings の後ろに渡すことによって、選択された製品の使用可能なオプションを表示します。

    • -silent: 確認プロンプトを無効にします。

    C:\> MySQLInstallerConsole configure -showsettings serverC:\> MySQLInstallerConsole configure server:port=3307
  • help [command]

    ヘルプメッセージを使用例とともに表示して終了します。コマンドに固有のヘルプを受信するには、そのコマンドを渡します。

    C:\> MySQLInstallerConsole helpC:\> MySQLInstallerConsole help install
  • install [product]:[features]:[config block]:[config block]:[config block]; [...]

    システムに 1 つまたは複数の MySQL 製品をインストールします。

    次のようなスイッチと構文オプションがあります。

    • -type=[SetupType]: 事前定義されたソフトウェアのセットをインストールします。「SetupType」は次のいずれかです。

      注記

      Custom 以外のセットアップタイプは、ほかに MySQL 製品がインストールされていない場合のみ選択できます。

      • Developer: 完全な開発環境をインストールします。

      • Server: 単一の MySQL Server をインストールします。

      • Client: クライアントプログラムとライブラリをインストールします。

      • Full: すべてをインストールします。

      • Custom: ユーザーが選択した製品をインストールします。これはデフォルトのオプションです。

    • -showsettings: 製品名を -showsettings の後ろに渡すことによって、選択された製品の使用可能なオプションを表示します。

    • -silent: 確認プロンプトを無効にします。

    • [config block]: 1 つまたは複数の構成ブロックを指定できます。各構成ブロックは、セミコロンで区切られたキーと値のペアのリストです。ブロックには、「config」または「user」タイプのいずれかのキーを含むことができ、指定されない場合は「config」がデフォルトタイプです。

      「config」タイプのブロックは製品あたり 1 つのみ定義できます。「user」ブロックは、製品のインストール中に作成された各ユーザーに対して定義してください。

      注記

      製品の再構成中のユーザーの追加はサポートされていません。

    • [feature]: 機能ブロックは、セミコロンで区切られた機能のリストまたは「*」 (全機能を選択) です。

    C:\> MySQLInstallerConsole install server;5.6.22:*:port=3307;serverid=2:type=user;username=foo;password=bar;role=DBManagerC:\> MySQLInstallerConsole install server;5.6.22;x64 -silent
  • list

    利用可能なすべての MySQL 製品を検索できるインタラクティブなコンソールをリストします。MySQLInstallerConsole list を実行してコンソールを起動し、検索する部分文字列を入力します。

    C:\> MySQLInstallerConsole list
  • modify [product1:-removelist|+addlist] [product2:-removelist|+addlist] [...]

    以前にインストールされた MySQL 製品の機能を変更または表示します。

    • -silent: 確認プロンプトを無効にします。

    C:\> MySQLInstallerConsole modify serverC:\> MySQLInstallerConsole modify server:+documentationC:\> MySQLInstallerConsole modify server:-debug
  • remove [product1] [product2] [...]

    システム上から 1 つまたは複数の製品を削除します。

    • *: すべての MySQL 製品を削除するには * を渡します。

    • -continue: エラーが発生しても操作を継続します。

    • -silent: 確認プロンプトを無効にします。

    C:\> MySQLInstallerConsole remove *C:\> MySQLInstallerConsole remove server
  • status

    システムにインストールされている MySQL 製品の簡単な概要を提供します。情報には、製品名とバージョン、アーキテクチャー、インストール日、およびインストールの場所が含まれます。

    C:\> MySQLInstallerConsole status
  • upgrade [product1:version] [product2:version], [...]

    システム上の 1 つまたは複数の製品をアップグレードします。次のような構文オプションがあります。

    • * : すべての製品を最新のバージョンにアップグレードするには * を渡します。あるいは具体的な製品を渡します。

    • ! : MySQL 製品を最新バージョンにアップグレードするには、バージョン番号として ! を渡します。

    • -silent: 確認プロンプトを無効にします。

    C:\> MySQLInstallerConsole upgrade *C:\> MySQLInstallerConsole upgrade workbench:6.2.2C:\> MySQLInstallerConsole upgrade workbench:!C:\> MySQLInstallerConsole upgrade workbench:6.2.2 excel:1.3.2
  • update

    最新の MySQL 製品カタログをシステムにダウンロードします。成功すると、次に MySQLInstaller または MySQLInstallerConsole が実行されたときに、ダウンロードカタログが適用されます。

    C:\> MySQLInstallerConsole update
    注記

    「Automatic Catalog Update」 GUI オプションはこのコマンドを Windows のタスクスケジューラから実行します。

2.3.4 MySQL Notifier

MySQL Notifier は、システムトレイにあるインジケータを介して、ローカルおよびリモートの MySQL Server インスタンスのステータスをモニターおよび調整できるツールです。MySQL Notifier では、コンテキストメニューからいくつかの MySQL GUI ツール (MySQL Workbench など) にすばやくアクセスすることもできます。

MySQL Notifier は MySQL Installer によってインストールされ、(デフォルトでは) Microsoft Windows の起動時に起動します。

注記

インストールするには、MySQL Installer をダウンロードして実行し、MySQL Notifier 製品が選択されていることを確認してからインストールに進みます。詳細は、MySQL Installer マニュアル を参照してください。

MySQL Notifier の各リリースの変更内容の詳細は、MySQL Notifier リリースノート を参照してください。

MySQL Notifier の追加のヘルプとサポートは、MySQL Notifier フォーラム にアクセスしてください。

次のような機能があります。

  • MySQL Server インスタンスの起動、停止、および再起動を行います。

  • 新しい MySQL Server サービスを自動的に検出 (して追加) します。これらは「Manage Monitored Items」の下にリストされ、構成することもできます。

  • ステータスに応じてトレイアイコンが変化します。モニターされているすべての MySQL Server インスタンスが実行中であれば緑、少なくとも 1 つのサービスが停止している場合は赤です。この動作は、「Update MySQL Notifier tray icon based on service status」オプションで決まり、デフォルトでは各サービスに対して有効です。

  • MySQL Workbench、MySQL Installer、および MySQL Utilities などのその他のアプリケーションにリンクします。たとえば、「Configure Instance」を選択すると、そのインスタンスの MySQL Workbench の「Server Administration」ウィンドウがロードされます。

  • MySQL Workbench もインストールされている場合は、「Configure Instance」 および 「SQL Editor」オプションがローカルの MySQL インスタンスに対して利用可能です (リモートのインスタンスには利用できません)。

  • ローカルおよびリモートの MySQL インスタンスのモニタリング。

注記

リモートモニタリングは MySQL Notifier 1.1.0 以降利用可能です。

MySQL Notifier はシステムトレイにあり、MySQL Server インスタンスのステータスの視覚的情報を提供します。現在の MySQL Server が実行中の場合は緑のアイコンが、サービスが停止している場合は赤のアイコンが、トレイアイコンの左上に表示されます。

MySQL Notifier は、ローカルマシンで検出された MySQL サービスを自動的に追加し、各サービスは保存されて構成可能です。デフォルトでは、「Automatically add new services whose name contains」オプションは有効で mysql に設定されています。関連する「Notifications Options」には、新しいサービスが発見された場合またはステータスが変化した場合に通知を受ける、などがあり、これらもデフォルトで有効です。また、サービスをアンインストールすると、そのサービスは MySQL Notifier からも削除されます。

注記

「Automatically add new services whose name contains」オプションのデフォルトは、Notifier 1.1.0 では「.*mysqld.*」から「mysql」に変更されました。

システムトレイアイコンをクリックすると、次のスクリーンショットに示すようにいくつかのオプションが表示されます。

「Service Instance」メニューは MySQL Notifier のメインウィンドウで、MySQL Server の停止、起動、および再起動が可能です。

図 2.32 MySQL Notifier Service Instance メニュー

MySQL Notifier Service Instance メニュー

「Actions」メニューには、外部アプリケーションへのいくつかのリンク (インストールされている場合) と、モニターされている (ローカルおよびリモートのコンピュータの) すべてのサービスと MySQL のステータスを手動でリフレッシュする「Refresh Status」オプションが含まれます。

注記

MySQL Notifier によってモニターされているサービスがない場合は、メインメニューには「Actions」メニューが表示されます。

注記

「Refresh Status」機能は MySQL Notifier 1.1.0 以降で利用可能です。

図 2.33 MySQL Notifier Actions メニュー

MySQL Notifier Actions メニュー

「Actions」「Options」メニューは MySQL Notifier を構成し、次のようなオプションがあります。

  • Use colorful status icons: MySQL Notifier のトレイのカラフルなスタイルを有効にします。

  • Run at Windows Startup: Microsoft Windows の起動時にアプリケーションがロードできるようにします。

  • Automatically Check For Updates Every # Weeks: MySQL Notifier の新しいバージョンをチェックします。このチェックは指定した週数ごとに実行します。

  • Automatically add new services whose name contains: サービスをフィルタするのに使用され、MySQL Notifier を実行しているモニター対象のローカルコンピュータのリスト、およびすでに Windows サービスをモニタリングしているリモートコンピュータに自動的にサービスを追加するためのテキスト。モニターされるサービス、および「Add New Service」ダイアログの Microsoft Windows サービスのリストもフィルタします。

    バージョン 1.1.0 より前では、このオプションは「Automatically add new services that match this pattern」という名前でした。

  • Notify me when a service is automatically added: 新しく発見されたサービスがモニター対象のサービスのリストに追加されると、タスクバーから吹き出し通知を表示します。

  • Notify me when a service changes status: モニター対象のサービスのステータスが変更されると、タスクバーから吹き出し通知を表示します。

図 2.34 MySQL Notifier Options メニュー

MySQL Notifier Options メニュー

「Actions」「Manage Monitored Items」メニューにより、モニター対象のサービスおよび MySQL インスタンスを構成できます。まず、「Services」タブで次を開きます。

図 2.35 MySQL Notifier Manage Services メニュー

MySQL Notifier Manage Services メニュー

「Instances」タブは同様です。

図 2.36 MySQL Notifier Manage Instances メニュー

MySQL Notifier Manage Instances メニュー

サービスまたはインスタンスを追加 (「Manage Monitored Items」ウィンドウで「Add」をクリック) すると、実行中の Microsoft Windows サービスまたはインスタンス接続を選択して、MySQL Notifier がそれをモニターするように構成できます。リストからサービス名をクリックして新しいサービスまたはインスタンスを追加してから、「OK」をクリックして受け入れます。複数のサービスおよびインスタンスを選択できます。

図 2.37 MySQL Notifier 新しいサービスの追加

MySQL Notifier 新しいサービスの追加

インスタンスの追加

図 2.38 MySQL Notifier 新しいインスタンスの追加

MySQL Notifier 新しいインスタンスの追加

注記

「Instances」タブは MySQL Notifier 1.1.0 以降利用可能です。

2.3.4.1 リモートモニタリングのセットアップとインストール手順

MySQL Notifier は、Windows Management Instrumentation (WMI) を使用して、Windows XP 以降を実行しているリモートコンピュータのサービスの管理とモニターを行います。このガイドでは、その仕組み、およびシステムをセットアップしてリモート MySQL インスタンスをモニターする方法を説明します。

注記

リモートモニタリングは MySQL Notifier 1.1.0 以降利用可能です。

WMI を構成するためには、ベースとなる Distributed Component Object Model (DCOM) アーキテクチャーが WMI の作業を行なっていることを理解することが重要です。具体的には、MySQL Notifier は、リモート Microsoft Windows ホストの非同期通知クエリーを .NET イベントとして使用しています。これらのイベントは、MySQL Notifier を実行しているコンピュータに非同期コールバックを送信するため、MySQL Notifier はリモートコンピュータ上のサービスのステータスがいつ変更されたかを認識できます。非同期通知は、タイマーを使用する準同期通知または同期通知と比較して、パフォーマンスが優れています。

非同期通知では、リモートコンピュータがコールバックをクライアントコンピュータに送信する (したがって逆接続をオープンする) ことが必要なため、通信が正しく機能するためには、Windows ファイアウォールおよび DCOM が正しく構成されていなければなりません。

図 2.39 MySQL Notifier Distributed Component Object Model (DCOM)

MySQL Notifier Distributed Component Object Model (DCOM)

非同期 WMI 通知によってスローされる一般的なエラーのほとんどは、Windows ファイアウォールが通信をブロックすること、または DCOM / WMI 設定が正しくセットアップされていないことに関係しています。一般的なエラーとその解決方法のリストは、Common Errorsを参照してください。

次の手順は、WMI を機能させるために必須です。これらの手順は 2 つのマシン間にわかれてます。MySQL Notifier を実行する単独のホストコンピュータ (コンピュータ A) と、モニターされる複数のリモートマシン (コンピュータ B) です。

MySQL Notifier を実行しているコンピュータ (コンピュータ A)
  1. 「グループ ポリシー エディター」を編集するか、または NETSH を使用して、リモート管理を有効にします。

    「グループ ポリシー エディター」 を使用する場合

    1. 「スタート」をクリックしてから「実行」をクリックし、「GPEDIT.MSC」と入力してから「OK」をクリックします。

    2. 「ローカル コンピュータ ポリシー」見出しの「コンピューターの構成」をダブルクリックします。

    3. 「管理用テンプレート」「ネットワーク」「ネットワーク接続」「Windows ファイアウォール」の順にダブルクリックします。

    4. コンピュータがドメイン内にある場合は、「ドメイン プロファイル」をダブルクリックします。そうでない場合は「標準プロファイル」をダブルクリックします。

    5. 「Windows ファイアウォール: 着信リモート管理の例外を許可する」をクリックします。

    6. 「アクション」メニューで、「編集」を選択するか、前の手順で選択したものをダブルクリックします。

    7. 「有効」ラジオボタンをチェックして「OK」をクリックします。

    NETSH コマンドを使用する場合

    1. 管理者権限でコマンドプロンプトウィンドウをオープンします (「コマンド プロンプト」アイコンを右クリックして「管理者として実行」をクリックします)。

    2. 次のコマンドを実行します。

      NETSH firewall set service RemoteAdmin enable

  2. DCOM ポート TCP 135 のオープン

    1. 管理者権限でコマンドプロンプトウィンドウをオープンします (「コマンド プロンプト」アイコンを右クリックして「管理者として実行」をクリックします)。

    2. 次のコマンドを実行します。

      NETSH firewall add portopening protocol=tcp port=135 name=DCOM_TCP135

  3. コールバックのシンクを含むクライアントアプリケーションを (MySqlNotifier.exe) Windows ファイアウォールの例外リストに追加します (Windows ファイアウォール構成または NETSH を使用します)。

    Windows ファイアウォール構成を使用する場合

    1. 「コントロール パネル」で、「Windows ファイアウォール」をダブルクリックします。

    2. 「Windows ファイアウォール」ウィンドウの左のパネルで、「Windows ファイアウォールを介したプログラムまたは機能を許可する」をクリックします。

    3. 「許可されたプログラム」ウィンドウで「設定の変更」をクリックします。

    4. MySqlNotifier.exe が許可されたプログラムと機能のリスト内にある場合は、コンピュータが接続するネットワークのタイプ (プライベート、パブリック、または両方) にチェックされていることを確認します。

    5. MySqlNotifier.exe がリストにない場合は、「別のプログラムの許可...」をクリックします。

    6. 「プログラムの追加」ウィンドウで、MySqlNotifier.exe が「プログラム」リストにある場合は選択し、そうでない場合は「参照...」をクリックして MySqlNotifier.exe がインストールされたディレクトリに移動して選択してから、「追加」をクリックします。

    7. MySqlNotifier.exe が、コンピュータが接続するネットワークのタイプ (プライベート、パブリック、または両方) にチェックされていることを確認します。

    NETSH コマンドを使用する場合

    1. 管理者権限でコマンドプロンプトウィンドウをオープンします (「コマンド プロンプト」アイコンを右クリックして 「管理者として実行」をクリックします)。

    2. 次のコマンドを実行します。このとき、「[YOUR_INSTALL_DIRECTORY]」は変更します。

      NETSH firewall add allowedprogram program=[YOUR_INSTALL_DIRECTORY]\MySqlNotifier.exe name=MySqlNotifier
  4. コンピュータ B が WORKGROUP のメンバーであるか、またはコンピュータ A によって信頼されていない別のドメインにある場合は、コールバック接続 (接続 2) が匿名接続として作成されます。匿名接続に DCOM リモートアクセス権限を付与するには:

    1. 「スタート」「実行」をクリックし、「DCOMCNFG」と入力してから「OK」をクリックします。

    2. 「コンポーネント サービス」ダイアログボックスで、「コンポーネント サービス」、「コンピューターの順に展開してから「マイ コンピューター」を右クリックし、「プロパティ」をクリックします。

    3. 「My Computer Properties」ダイアログボックスで「COM セキュリティ」タブをクリックします。

    4. 「アクセス許可」で、「制限の編集」をクリックします。

    5. 「アクセス許可」ダイアログボックスで、「グループ」または「ユーザー名」ボックスから「ANONYMOUS LOGON 名」を選択します。「ユーザー」の「アクセス許可」の「許可」カラムで、「リモート アクセス」を選択してから「OK」をクリックします。

モニター対象のリモートコンピュータ (コンピュータ B)

MySQL Notifier を実行しているコンピュータ (コンピュータ A) にログインしたユーザーアカウントがリモートコンピュータ (コンピュータ B) のローカル管理者である場合、すなわち同じアカウントがコンピュータ B では管理者である場合、「リモート管理の許可」手順までスキップできます。

管理者以外のユーザーがリモートでコンピュータにアクセスできるようにするための DCOM セキュリティーの設定

  1. ユーザーまたはグループに「DCOM のリモート起動」と有効化の権限を付与します。

    1. 「スタート」「実行」をクリックし、「DCOMCNFG」と入力してから「OK」をクリックします。

    2. 「コンポーネント サービス」ダイアログボックスで、「コンポーネント サービス」、「コンピューターの順に展開してから「マイ コンピューター」を右クリックし、「プロパティ」をクリックします。

    3. 「My Computer Properties」ダイアログボックスで「COM セキュリティ」タブをクリックします。

    4. 「アクセス許可」で、「制限の編集」をクリックします。

    5. 「グループ」または「ユーザー名」のリストにご自分の名前またはグループが表示されない場合は、「Launch Permission」ダイアログボックスで次の手順に従ってください。

      1. 「起動アクセス許可」ダイアログボックスで、「追加」をクリックします。

      2. 「Select Users, Computers, or Groups」ダイアログボックスで、「選択するオブジェクト名を入力してください」ボックスに自分の名前とグループを追加してから、「OK」をクリックします。

    6. 「Launch Permission」ダイアログボックスで、「グループ」または「ユーザー名」ボックスから自分のユーザーおよびグループを選択します。「ユーザー」の「アクセス許可」の「許可」カラムで、「リモートからの起動」を選択し、「リモートからのアクティブ化」を選択してから「OK」をクリックします。

    DCOM リモートアクセス許可の付与

    1. 「スタート」「実行」をクリックし、「DCOMCNFG」と入力してから「OK」をクリックします。

    2. 「コンポーネント サービス」ダイアログボックスで、「コンポーネント サービス」、「コンピューターの順に展開してから「マイ コンピューター」を右クリックし、「プロパティ」をクリックします。

    3. 「My Computer Properties」ダイアログボックスで「COM セキュリティ」タブをクリックします。

    4. 「アクセス許可」で、「制限の編集」をクリックします。

    5. 「アクセス許可」ダイアログボックスで、「グループ」または「ユーザー名」ボックスから「ANONYMOUS LOGON 名」を選択します。「ユーザー」の「アクセス許可」の「許可」カラムで、「リモート アクセス」を選択してから「OK」をクリックします。

  2. 管理者以外のユーザーへの特定の WMI 名前空間へのアクセス許可

    1. 「コントロール パネル」で、「管理ツール」をダブルクリックします。

    2. 「管理ツール」ウィンドウで、「コンピューターの管理」をダブルクリックします。

    3. 「コンピューターの管理」ウィンドウで、「サービスとアプリケーション」ツリーを展開して「WMI コントロール」をダブルクリックします。

    4. 「WMI コントロール」アイコンを右クリックして、「プロパティ」を選択します。

    5. 「WMI Control Properties」ウィンドウで、「セキュリティ」タブをクリックします。

    6. 「セキュリティ」タブで、名前空間を選択して「セキュリティ」をクリックします。

    7. 適切なアカウントを探して「Remote Enable in the Permissions list」にチェックを付けます。

  3. 「グループ ポリシー エディター」を編集するか、または NETSH を使用して、リモート管理を有効にします。

    「グループ ポリシー エディター」 を使用する場合

    1. 「スタート」をクリックしてから「実行」をクリックし、「GPEDIT.MSC」と入力してから「OK」をクリックします。

    2. 「ローカル コンピュータ ポリシー」見出しの「コンピューターの構成」をダブルクリックします。

    3. 「管理用テンプレート」「ネットワーク」「ネットワーク接続」「Windows ファイアウォール」の順にダブルクリックします。

    4. コンピュータがドメイン内にある場合は、「ドメイン プロファイル」をダブルクリックします。そうでない場合は「標準プロファイル」をダブルクリックします。

    5. 「Windows ファイアウォール: 着信リモート管理の例外を許可する」をクリックします。

    6. 「アクション」メニューで、「編集」を選択するか、前の手順で選択したものをダブルクリックします。

    7. 「有効」ラジオボタンをチェックして「OK」をクリックします。

    NETSH コマンドを使用する場合

    1. 管理者権限でコマンドプロンプトウィンドウをオープンします (「コマンド プロンプト」アイコンを右クリックして「管理者として実行」をクリックします)。

    2. 次のコマンドを実行します。

      NETSH firewall set service RemoteAdmin enable

  4. ここで、Full Name 値ではなく Name 値を使用してログインしていることを確認します。

    1. 「コントロール パネル」で、「管理ツール」をダブルクリックします。

    2. 「管理ツール」ウィンドウで、「コンピューターの管理」をダブルクリックします。

    3. 「コンピューターの管理」ウィンドウで、「システム ツール」、「ローカル ユーザーとグループ」の順に展開します。

    4. 「ユーザー」ノードをクリックし、右側のパネルで自分のユーザーを探し、接続に Full Name 値ではなく Name 値を使用していることを確認します。

  5. リモートコンピュータが Windows XP Professional 上で実行されている場合は、リモートログインが強制的にゲストアカウントユーザーに変更されていないことを確認します (ForceGuest とも呼ばれます)。これは、ドメインに接続されていないコンピュータではデフォルトで有効です。

    1. 「スタート」をクリックしてから「実行」をクリックし、「SECPOL.MSC」と入力してから「OK」をクリックします。

    2. 「ローカル ポリシー」ノードで、「セキュリティ オプション」をダブルクリックします。

    3. 「ネットワーク アクセス: ローカル アカウントの共有とセキュリティ モデル」を選択して保存します。

一般的なエラー
  • 0x80070005

    • DCOM セキュリティーが正しく構成されませんでした (コンピュータ B、DCOM セキュリティーの設定... の手順を参照してください)。

    • リモートコンピュータ (コンピュータ B) が、WORKGROUP のメンバーであるか、またはクライアント (コンピュータ A) によって信頼されていないドメインにあります (コンピュータ A、匿名接続に DCOM リモートアクセス権限を付与するにはの手順を参照してください)。

  • 0x8007000E

    • リモートコンピュータ (コンピュータ B) が、WORKGROUP のメンバーであるか、またはクライアント (コンピュータ A) によって信頼されていないドメインにあります (コンピュータ A、匿名接続に DCOM リモートアクセス権限を付与するにはの手順を参照してください)。

  • 0x80041003

    • リモート WMI 名前空間へのアクセスが正しく構成されませんでした (コンピュータ B、管理者以外のユーザーへの特定の WMI 名前空間へのアクセス許可の手順を参照してください)。

  • 0x800706BA

    • クライアントコンピュータ (コンピュータ A) のファイアウォールで DCOM ポートがオープンしていません。コンピュータ A の、DCOM ポート TCP 135 のオープンの手順を参照してください。

    • リモートコンピュータ (コンピュータ B) のネットワークの場所がパブリックに設定されているため、アクセスできません。Windows エクスプローラーを介してアクセスできることを確認してください。

2.3.5 非インストール Zip アーカイブを使用して Microsoft Windows に MySQL をインストールする

非インストールパッケージからインストールするユーザーは、このセクションの説明に従って手動で MySQL をインストールできます。MySQL を Zip アーカイブからインストールする手順は次のとおりです。

  1. アーカイブを任意のインストールディレクトリに抽出する

  2. オプションファイルを作成する

  3. MySQL のサーバータイプを選択する

  4. MySQL Server を起動する

  5. デフォルトのユーザーアカウントをセキュアにする

この手順はこのあとのセクションで説明します。

2.3.5.1 インストールアーカイブを抽出する

MySQL を手動でインストールするには、次の手順に従います。

  1. 以前のバージョンからアップグレードする場合にはアップグレードの手順を始める前に セクション2.3.7「Windows 上の MySQL をアップグレードする」 を参照してください。

  2. 管理者権限を持つユーザーとしてログインしていることを確認します。

  3. インストールの場所を選択します。通常、MySQL Server は C:\mysql にインストールされます。MySQL Installation Wizard が MySQL を C:\Program Files\MySQL にインストールします。MySQL を C:\mysql にインストールしない場合、起動時あるいはオプションファイルでインストールディレクトリへのパスを指定する必要があります。セクション2.3.5.2「オプションファイルの作成」 を参照してください。

    注記

    MySQL Installer が MySQL を C:\Program Files\MySQL にインストールします。

  4. 任意の Zip アーカイブツールを使用して、インストールするアーカイブを選択したインストール場所に抽出します。ツールによっては、選択したインストール場所のフォルダにアーカイブを抽出します。その場合、そのサブフォルダの内容を、選択したインストール場所に移動します。

2.3.5.2 オプションファイルの作成

サーバーの起動時にスタートアップオプションを指定する必要がある場合には、それらをコマンド行で指示するかオプションファイルに配置します。サーバーの起動時に常に使用するオプションは、オプションファイルを使用して MySQL の構成を指定すると非常に便利です。これは次の状況に特に当てはまります。

  • インストールまたはデータディレクトリの場所が、デフォルトの場所 (C:\Program Files\MySQL\MySQL Server 5.6 および C:\Program Files\MySQL\MySQL Server 5.6\data) とは異なり場合。

  • メモリー、キャッシュ、InnoDB 構成情報などのサーバー設定を調整する必要がある場合。

MySQL Server が Windows 上で起動する際、Windows ディレクトリ C:\、および MySQL インストールディレクトリなど、いくつかの場所にあるオプションファイルを検索します (場所の完全なリストについては、セクション4.2.6「オプションファイルの使用」 を参照してください)。通常、Windows ディレクトリの名前は、C:\WINDOWS のようになります。次のコマンドを使用して WINDIR 環境変数の値から正確な場所を割り出すことができます。

C:\> echo %WINDIR%

MySQL は、各場所の my.ini ファイル内のオプションを最初に検索し、次に my.cnf ファイルを調べます。ただし、混乱を避けるためにはファイルを 1 つだけ使用するのが最善です。お客様の PC が、C: がブートドライブではないブートローダーを使用している場合、my.ini ファイルしか使用できません。どちらのオプションファイルを使用するにしろ、プレーンテキストファイルでなければなりません。

注記

MySQL Installer を使用して MySQL Server をインストールする場合、my.ini はデフォルトの場所に作成されます。また、MySQL Server 5.5.27 では、MySQL Installer を実行するユーザーにはこの新しい my.ini への完全な許可が与えられます。

つまり、必ず MySQL Server ユーザーが my.ini ファイルを読み取る権限があるようにしてください。

MySQL 配布に含まれている参考例のオプションファイルを使用することもできます。詳細は セクション5.1.2「サーバー構成のデフォルト値」 を参照してください。

オプションファイルは、ノートパッドなどのテキストエディタで作成および変更ができます。たとえば、MySQL を E:\mysql にインストールし、データディレクトリが E:\mydata\data にある場合は、[mysqld] セクションを含むオプションファイルを作成して、basedir および datadir オプションの値を指定できます。

[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data

Microsoft Windows のパス名は、オプションファイル内でバックスラッシュではなく (フォワード) スラッシュを使用して指定されます。バックスラッシュを使用する場合は、2 つ使用します。

[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data

オプションファイル値でのバックスラッシュの使用に関するルールは セクション4.2.6「オプションファイルの使用」 にあります。

データディレクトリは、MySQL を実行しているユーザーの AppData ディレクトリにあります。

データディレクトリを異なる場所で使用したい場合、data ディレクトリの内容全体を新しい場所にコピーしてください。たとえば、代わりに E:\mydata をデータディレクトリとして使用する場合は、次の 2 つのことを行う必要があります。

  1. data ディレクトリおよびその内容すべてを、デフォルトの場所 (C:\Program Files\MySQL\MySQL Server 5.6\data など) から E:\mydata に移動します。

  2. サーバーの起動時に常に新しいデータディレクトリの場所を指定するには --datadir オプションを使用します。

2.3.5.3 MySQL サーバータイプの選択

次の表は、Windows で使用できる MySQL 5.6 のサーバーを示しています。

バイナリ説明
mysqld名前付きパイプのサポートがある最適化バイナリ
mysqld-debugmysqld と同様ですが、完全なデバッグと自動メモリー割り当ての確認を行なってコンパイルされています

以前のバイナリはすべて最新の Intel プロセッサに最適化されていますが、Intel i386 クラスあるいはそれ以上のプロセッサで動作するはずです。

配布内の各サーバーは、同じストレージエンジンセットをサポートします。SHOW ENGINES ステートメントは、指定されたサーバーがサポートするエンジンを表示します。

すべての Windows MySQL 5.6 Server は、データベースディレクトリのシンボリックリンクをサポートします。

MySQL はすべての Windows プラットフォームで TCP/IP をサポートしています。Windows 上の MySQL は、サーバーを --enable-named-pipe オプション付きで起動した場合は名前付きパイプもサポートします。一部のユーザーで、名前付きパイプを使用した際に MySQL サーバーのシャットダウンに関する問題が生じたため、このオプションは明示的に使用する必要があります。多くの Windows 構成において、名前付きパイプは TCP/IP より遅いため、デフォルトではプラットフォームにかかわらず TCP/IP が使用されます。

2.3.5.4 サーバーをはじめて起動する

このセクションでは MySQL サーバーの起動に関する一般的な概要を説明します。次の数セクションでは、MySQL サーバーのコマンド行あるいは Windows のサービスとしての起動に関して、より具体的な情報を提供します。

ここに記載する情報は、MySQL を 非インストール バージョンを使用してインストールした場合、あるいは MySQL を GUI ツールを使用しないで手動で構成してテストする場合に適用されます。

注記

MySQL Server は、MySQL Installer を使用したあと自動的に起動し、いつでも MySQL Notifier GUI を使用して起動/停止/再起動できます。

これらのセクションの例では、MySQL がデフォルトの場所の C:\Program Files\MySQL\MySQL Server 5.6 にインストールされていることを前提とします。異なる場所に MySQL をインストールしている場合には例に示したパス名を調整してください。

クライアントには 2 つのオプションがあります。TCP/IP が使用でき、サーバーが名前付きパイプの接続をサポートしている場合には名前付きパイプも使用できます。

サーバーを --shared-memory オプションで起動した場合、Windows 上の MySQL は共有メモリーの接続もサポートします。クライアントは --protocol=MEMORY オプションを使用して共有メモリーで接続できます。

どのサーバーバイナリを実行するかについては、セクション2.3.5.3「MySQL サーバータイプの選択」 を参照してください。

テストはコンソールウィンドウ (あるいは DOS ウィンドウ) のコマンドプロンプトで行います。これにより、ウィンドウにサーバーのステータスに関するメッセージが表示されますので、容易に確認できます。構成に何か問題があった場合には、これらのメッセージにより問題の特定と修正が容易になります。

サーバーを起動するには、次のコマンドを入力します。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --console

InnoDB サポートを含むサーバーでは、次のようなメッセージがサーバーの起動時に表示されます (パス名とサイズは異なる場合があります)。

InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: creating foreign key constraint system tables
InnoDB: foreign key constraint system tables created
011024 10:58:25 InnoDB: Started

サーバーが起動シーケンスを終了すると、次のようなメッセージが表示されます。このメッセージが表示されると、サーバーのクライアント接続の用意が整ったことを意味します。

mysqld: ready for connections
Version: '5.6.23' socket: '' port: 3306

サーバーは、診断を生成して出力をコンソールに書き込み続けます。クライアントプログラムを実行する新しいコンソールウィンドウを開くことができます。

--console オプションを省略すると、サーバーは診断の出力をデータディレクトリ (デフォルトでは C:\Program Files\MySQL\MySQL Server 5.6\data) のエラーログに出力します。エラーログは、.err 拡張子の付いたファイルで、--log-error オプションを使用して設定できます。

注記

MySQL の付与テーブルにリストされているアカウントには、最初はパスワードがありません。サーバーの起動後に セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」 の説明に従ってパスワードをアカウントに設定する必要があります。

2.3.5.5 Windows のコマンド行からの MySQL の起動

MySQL Server はコマンド行から手動で起動できます。これは Windows のどのバージョンでもできます。

注記

MySQL Notifier GUI を使用して、MySQL Server を起動/停止/再起動することも可能です。

コマンド行から mysqld サーバーを起動するには、コンソールウィンドウ (あるいは DOS ウィンドウ) を開け、次のコマンドを入力します。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"

mysqld へのパスはお客様のシステムの MySQL のインストール場所によって異なる場合があります。

MySQL Server を停止するには次のコマンドを実行します。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin" -u root shutdown
注記

MySQL の root ユーザーアカウントにパスワードが設定されている場合は、mysqladmin-p オプションを使って起動し、要求されたらパスワードを入力する必要があります。

このコマンドは MySQL 管理ユーティリティー mysqladmin を起動してサーバーに接続し、サーバーにシャットダウンを命令します。そのコマンドは MySQL root ユーザーとして接続します。これは MySQL の許可システムのデフォルトの管理アカウントです。

注記

MySQL 許可システム内のユーザーは、Microsoft Windows のログインユーザーとは完全に独立しています。

mysqld が起動しない場合、エラーログを確認してサーバーがその問題の原因を示すメッセージを書き込んでいないか確認します。デフォルトでは、エラーログは C:\Program Files\MySQL\MySQL Server 5.6\data ディレクトリにあります。サフィクス .err の付いたファイルです。または、--log-error オプションで渡して指定できます。あるいは、--console オプションを使用してサーバーを起動することもできます。この場合、サーバーは問題の解決に役立つ有用な情報を画面に表示することがあります。

最後の選択肢は、mysqld--standalone および --debug オプションで起動することです。この場合、mysqld がログファイル C:\mysqld.trace に書き出し、その中に mysqld が起動しない理由が含まれているはずです。セクション24.4.3「DBUG パッケージ」を参照してください。

mysqld --verbose --help を使用して、mysqld がサポートするすべてのオプションを表示します。

2.3.5.6 MySQL ツールの PATH をカスタマイズする

MySQL プログラムの起動を簡単にするために、MySQL の bin ディレクトリのパス名を Windows システムの PATH 環境変数に追加できます。

  • Windows デスクトップで、「マイコンピュータ」 アイコンを右クリックして「プロパティ」を選択します。

  • 次に、表示された「システムのプロパティ」メニューから「詳細設定」タブを選択し、「環境変数」ボタンをクリックします。

  • 「システム環境変数」で、「Path」を選択し、次に「編集」ボタンをクリックします。「システム変数の編集」のダイアログが表示されます。

  • 「変数値」と示されたスペースに表示されたテキストの最後にカーソルを持って行きます。(「End」キーを使用して、カーソルが確実にそのスペースのテキストのいちばん後ろにあるようにします)。次に、MySQL bin ディレクトリの完全なパス名を入力します (C:\Program Files\MySQL\MySQL Server 5.6\bin など)。

    注記

    このフィールドにあるほかの値とこのパスを区切るために、セミコロンが必要です。

    開いているダイアログがすべて閉じるまで、「OK」をクリックしてこのダイアログとその他のダイアログを順番に閉じます。この段階で、システムのどのディレクトリからでも、DOS プロンプトにパスを指定せずに MySQL の実行プログラム名を入力して、すべての MySQL 実行プログラムを呼び出すことができます。これにはサーバー、mysql クライアント、および mysqladminmysqldump などのすべての MySQL コマンド行ユーティリティーが含まれています。

    同じマシンで複数の MySQL サーバーを動作させている場合には、MySQL bin ディレクトリを Windows PATH に追加しないでください。

警告

システムの PATH を手動で編集する際には最大限の注意が必要です。既存の PATH の値の一部でも間違って削除したり変更したりすると、誤動作を引き起こしたりシステムが使用できなくなったりする場合があります。

2.3.5.7 Windows のサービスとして MySQL を起動する

Windows で MySQL を実行する場合、Windows の起動および停止時に MySQL が自動的に起動および停止するように、Windows サービスとしてインストールすることが推奨されています。MySQL Server をサービスとしてインストールすると、NET コマンドを使用してコマンド行から、あるいはグラフィカル Services ユーティリティーで管理することもできます。一般に、MySQL を Windows サービスとしてインストールするときは、管理者権限のあるアカウントを使ってログインするようにしてください。

注記

MySQL Notifier GUI を使用して、MySQL サービスのステータスをモニターすることも可能です。

Services ユーティリティー (Windows サービスコントロールマネージャー) は、Windows のコントロールパネル (Windows 2000、XP、Vista、および Server 2003 では 管理ツールの下) にあります。競合を避けるために、サーバーのインストールまたはコマンド行からの削除操作の際には、Services ユーティリティーを閉じることを推奨します。

サービスのインストール

現在サーバーを実行中の場合は、MySQL を Windows のサービスとしてインストールする前に次のコマンドを使用して停止してください。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin"-u root shutdown
注記

MySQL の root ユーザーアカウントにパスワードが設定されている場合は、mysqladmin-p オプションを使って起動し、要求されたらパスワードを入力する必要があります。

このコマンドは MySQL 管理ユーティリティー mysqladmin を起動してサーバーに接続し、サーバーにシャットダウンを命令します。そのコマンドは MySQL root ユーザーとして接続します。これは MySQL の許可システムのデフォルトの管理アカウントです。

注記

MySQL 許可システム内のユーザーは、Windows のログインユーザーとは完全に独立しています。

サーバーをこのコマンドを使用してサービスとしてインストールします。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --install

サービスのインストールコマンドはサーバーは起動しません。それについてはこのセクションで後述します。

MySQL プログラムの起動を簡単にするために、MySQL の bin ディレクトリのパス名を Windows システムの PATH 環境変数に追加できます。

  • Windows デスクトップで、「マイコンピュータ」 アイコンを右クリックして「プロパティ」を選択します。

  • 次に、表示された「システムのプロパティ」メニューから「詳細設定」タブを選択し、「環境変数」ボタンをクリックします。

  • 「システム環境変数」で、「Path」を選択し、次に「編集」ボタンをクリックします。「システム変数の編集」のダイアログが表示されます。

  • 「変数値」と示されたスペースに表示されたテキストの最後にカーソルを持って行きます。(「End」キーを使用して、カーソルが確実にそのスペースのテキストのいちばん後ろにあるようにします)。次に、MySQL bin ディレクトリの完全なパス名を入力します (C:\Program Files\MySQL\MySQL Server 5.6\bin など)。このフィールドにあるほかの値とこのパスを区切るために、セミコロンが必要です。開いているダイアログがすべて閉じるまで、「OK」をクリックしてこのダイアログとその他のダイアログを順番に閉じます。この段階で、システムのどのディレクトリからでも、DOS プロンプトにパスを指定せずに MySQL の実行プログラム名を入力して、すべての MySQL 実行プログラムを呼び出すことができます。これにはサーバー、mysql クライアント、および mysqladminmysqldump などのすべての MySQL コマンド行ユーティリティーが含まれています。

    同じマシンで複数の MySQL サーバーを動作させている場合には、MySQL bin ディレクトリを Windows PATH に追加しないでください。

警告

システムの PATH を手動で編集する際には最大限の注意が必要です。既存の PATH の値の一部でも間違って削除したり変更したりすると、誤動作を引き起こしたりシステムが使用できなくなったりする場合があります。

サービスをインストールする際に、次の追加引数を使用できます。

  • --install オプションの直後にサービス名を指定できます。デフォルトのサービス名は MySQL です。

  • サービス名を指定すると、そのあとに 1 つのオプションを指定できます。規則では、--defaults-file=file_name でオプションファイル名を指定し、サーバーが起動時にそこからオプションを読み取ります。

    --defaults-file 以外に 1 つのオプションを使用することは可能ですが、お勧めできません。--defaults-file を使用すると、指名したオプションファイルに複数のスタートアップオプションを指定できるので、より柔軟です。

  • サービス名のあとに --local-service オプションも指定できます。これにより、システム権限の制限付き LocalService Windows アカウントを使用してサーバーを起動できます。このアカウントは Windows XP またはそれ以降でのみ利用できます。--defaults-file および --local-service の両方がサービス名のあとに指定される場合、どのような順序でもかまいません。

MySQL Server を Windows のサービスとしてインストールした場合、サーバーが使用するサービス名およびオプションファイルは次のルールで決められます。

  • サービスインストールのコマンドで、--install オプションのあとにサービス名を指名しないかデフォルトのサービス名 (MySQL) を指定した場合、サーバーは MySQL のサービス名を使用し、標準のオプションファイルの [mysqld] グループのオプションを読み取ります。

  • サービスインストールのコマンドで MySQL 以外のサービス名を --install オプションのあとに指定した場合、サーバーはそのサービス名を使用します。標準のオプションファイルの [mysqld] グループと、サービスと名前が同じグループからオプションを読み取ります。これにより、[mysqld] グループをすべての MySQL サービスで使用すべきオプション用に、サービス名の付いたオプショングループをそのサービス名でインストールされたサーバー用に使用できます。

  • サービスインストールのコマンドでサービス名のあとに --defaults-file オプションを指定した場合、サーバーは前の項目で説明したのと同じ方法でオプションを読み取りますが、名前付きのファイルからのみオプションを読み取り、標準のオプションファイルは無視します。

さらに複雑な例として、次のコマンドがあります。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"--install MySQL --defaults-file=C:\my-opts.cnf

ここでは、--install オプションのあとにデフォルトのサービス名 (MySQL) が指定されています。--defaults-file オプションが指定されていなければ、このコマンドによりサーバーは標準のオプションファイルから [mysqld] グループを読み取ります。しかし、--defaults-file オプションが指定されているので、サーバーは [mysqld] オプショングループのオプションを、指名されたファイルのみから読み取ります。

注記

Windows では、サーバーが --defaults-file および --install オプションで起動される場合、--install が最初でなければなりません。そうでないと、mysqld.exe は MySQL Server を起動しようとします。

MySQL サービスを実行する前に、Windows の Services ユーティリティーで Start パラメータとしてオプションを指定することもできます。

サービスの開始

MySQL サーバーをサービスとしてインストールすると、Windows が起動されるたびにサービスが自動的に起動されます。サービスは、Services ユーティリティーから、あるいは NET START MySQL コマンドを使用してすぐに実行することもできます。NET コマンドは大文字と小文字を区別しません。

サービスとして起動する場合、mysqld はコンソールウィンドウにアクセスできないので、メッセージは表示されません。mysqld が起動しない場合、サーバーがエラーログにその問題の原因を知らせるメッセージを書き込んでいないか確認します。エラーログは MySQL データディレクトリ (C:\Program Files\MySQL\MySQL Server 5.6\data など) にあります。.err のサフィクスが付いたファイルです。

MySQL Server をサービスとしてインストールした場合、サービスを実行しているときに Windows がシャットダウンすると Windows が自動的にサービスを停止します。サーバーは、Services ユーティリティー、NET STOP MySQL コマンド、あるいは mysqladmin shutdown コマンドを使用して手動で停止することもできます。

サービスがブートプロセスで自動的に実行されないように、サーバーをマニュアルサービスとしてインストールすることもできます。これには --install オプションではなく --install-manual オプションを使用します。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --install-manual
サービスの削除

サービスとしてインストールしたサーバーを削除するには、起動中の場合にはまず NET STOP MySQL を実行して停止します。次に --remove オプションを使用して削除します。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --remove

mysqld をサービスとして実行していない場合は、コマンド行で起動できます。その手順は、セクション2.3.5.5「Windows のコマンド行からの MySQL の起動」 を参照してください。

インストール中に問題が生じた場合は、セクション2.3.6「Microsoft Windows MySQL Server インストールのトラブルシューティング」 を参照してください。

2.3.5.8 MySQL インストールのテスト

次のコマンドのいずれかを実行して、MySQL Server が動作しているかテストできます。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqlshow"C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqlshow" -u root mysqlC:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin" version status procC:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql" test

mysqld のクライアントプログラムから TCP/IP 接続への反応が鈍い場合、おそらくの DNS に問題があります。この場合、mysqld--skip-name-resolve オプションを使用して起動し、MySQL の付与テーブルの Host カラムの localhost および IP アドレスのみを使用します。

--pipe あるいは --protocol=PIPE オプションを指定するか、あるいは .(ピリオド) をホスト名として指定すると、MySQL クライアントに TCP/IP ではなく名前付けパイプ接続を強制的に使用させることができます。デフォルトのパイプ名を使用しない場合には --socket オプションを使用してパイプ名を指定します。

root アカウントのパスワードを設定した場合、匿名アカウントを削除した場合、または新規ユーザーアカウントを作成した場合に MySQL Server に接続するには、前述のコマンドに適切な -u および -p オプションを使用しなければなりません。セクション4.2.2「MySQL サーバーへの接続」 を参照してください。

mysqlshow に関する詳細は、セクション4.5.6「mysqlshow — データベース、テーブル、およびカラム情報の表示」 を参照してください。

2.3.6 Microsoft Windows MySQL Server インストールのトラブルシューティング

MySQL をインストールして最初に起動する際に、エラーが発生して MySQL サーバーが起動できない場合があります。このセクションは、エラーの診断と修正に役立ちます。

サーバーの問題のトラブルシューティングを行う際の、最初のリソースは エラーログです。MySQL Server は、サーバーが起動しない原因となるエラーに関する情報を記録するのにエラーログを使用しています。エラーログは、my.ini ファイルで指定された データディレクトリにあります。データディレクトリのデフォルトの場所は、Windows 7 および Windows Server 2008 では C:\Program Files\MySQL\MySQL Server 5.6\data、または C:\ProgramData\Mysql です。C:\ProgramData ディレクトリはデフォルトでは非表示です。ディレクトリと内容を表示するには、フォルダオプションを変更する必要があります。エラーログとその内容の理解については、セクション5.2.2「エラーログ」 を参照してください。

起こりうるエラーについては、MySQL サービスの起動中に表示されるコンソールメッセージも調べてください。mysqld をサービスとしてインストールしたあとに、コマンド行から NET START MySQL コマンドを使用して、MySQL Server のサービスとしての起動に関するエラーメッセージを表示します。セクション2.3.5.7「Windows のサービスとして MySQL を起動する」を参照してください。

MySQL をインストールしてサーバーを最初に起動する際によく生じる、その他の一般的なエラーメッセージを次の例に示します。

  • MySQL Server が mysql 権限データベースまたはその他の重要なファイルを見つけられない場合、次のメッセージを表示します。

    System error 1067 has occurred.
    Fatal error: Can't open and lock privilege tables:
    Table 'mysql.user' doesn't exist

    これらのメッセージは、MySQL のベースディレクトリまたはデータディレクトリが、デフォルトの場所 (それぞれ C:\Program Files\MySQL\MySQL Server 5.6 および C:\Program Files\MySQL\MySQL Server 5.6\data) と異なる場所にインストールされている場合によく生じます。

    この状況は、MySQL をアップグレードして新しい場所にインストールしたが、構成ファイルが新しい場所を反映するように更新されていない場合に生じます。さらに、新旧の構成ファイルが対立している場合もあります。MySQL をアップグレードする際は必ず旧構成ファイルを削除するか名前を変更してください。

    MySQL を C:\Program Files\MySQL\MySQL Server 5.6 以外のディレクトリにインストールした場合は、構成 (my.ini) ファイルを使用して MySQL Server がそのことを認識できるようにしてください。my.ini ファイルを Windows ディレクトリ (通常 C:\WINDOWS) に置きます。WINDIR 環境変数の値から正確な場所を割り出すためには、コマンドプロンプトから次のコマンドを発行します。

    C:\> echo %WINDIR%

    オプションファイルはノートパッドなどのテキストエディタで作成および変更できます。たとえば、MySQL が E:\mysql にインストールされていて、データディレクトリが D:\MySQLdata にある場合は、オプションファイルを作成して [mysqld] セクションを設定し、basedir および datadir オプションの値を指定できます。

    [mysqld]
    # set basedir to your installation path
    basedir=E:/mysql
    # set datadir to the location of your data directory
    datadir=D:/MySQLdata

    Microsoft Windows のパス名は、オプションファイル内でバックスラッシュではなく (フォワード) スラッシュを使用して指定されます。バックスラッシュを使用する場合は、2 つ使用します。

    [mysqld]
    # set basedir to your installation path
    basedir=C:\\Program Files\\MySQL\\MySQL Server 5.6
    # set datadir to the location of your data directory
    datadir=D:\\MySQLdata

    オプションファイル値でのバックスラッシュの使用に関するルールは セクション4.2.6「オプションファイルの使用」 にあります。

    MySQL 構成ファイルの datadir の値を変更する場合は、MySQL Server を再起動する前に既存の MySQL データディレクトリの内容を移動する必要があります。

    セクション2.3.5.2「オプションファイルの作成」 を参照してください。

  • まず既存の MySQL サービスを停止して削除してから MySQL Installer を使用して MySQL をインストールせずに、MySQL を再インストールまたはアップグレードすると、次のエラーが生じる場合があります。

    Error: Cannot create Windows service for MySql. Error: 0

    これは Configuration Wizard がサービスをインストールしようとしたときに既存のサービスが同じ名前で存在する場合に発生します。

    この問題の解決方法の 1 つは、Configuration Wizard を使用する際にmysql 以外のサービス名を選択することです。これにより、新しいサービスが正しくインストールされ、古いサービスはそのままにできます。これは特に問題はありませんが、使用しない古いサービスは削除したほうがよいでしょう。

    古い mysql サービスを完全に削除するには、管理者権限を持つユーザーとして、コマンド行で次のコマンドを実行します。

    C:\> sc delete mysql[SC] DeleteService SUCCESS

    使用している Windows のバージョンで sc ユーティリティーが利用できない場合は、delsrv ユーティリティーを http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp からダウンロードして、delsrv mysql 構文を使用します。

2.3.7 Windows 上の MySQL をアップグレードする

Windows 上の MySQL をアップグレードするには、次の手順に従います。

  1. セクション2.11.1「MySQL のアップグレード」 の、Windows に特化しない MySQL のアップグレードに関する詳細を参照してください。

  2. アップグレードを実行する前に、必ず現在の MySQL インストールをバックアップしてください。セクション7.2「データベースバックアップ方法」を参照してください。

  3. MySQL の最新の Windows 配布を https://dev.mysql.com/downloads/ からダウンロードします。

  4. MySQL をアップグレードする前に、サーバーを停止します。サーバーをサービスとしてインストールしている場合は、コマンドプロンプトから次のコマンドでサービスを停止します。

    C:\> NET STOP MySQL

    MySQL Server をサービスとして実行していない場合は、mysqladmin を使用して停止します。たとえば、MySQL 5.5 から 5.6 にアップグレードする前に、mysqladmin を MySQL 5.5 から次のように使用します。

    C:\> "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin" -u root shutdown
    注記

    MySQL の root ユーザーアカウントにパスワードが設定されている場合は、mysqladmin-p オプションを使って起動し、要求されたらパスワードを入力します。

  5. MySQL 4.1.5 より前のバージョンから 5.6 へのアップグレード、または Zip アーカイブからインストールされた MySQL のバージョンから MySQL Installation Wizard でインストールされる MySQL のバージョンへのアップグレードの場合は、その前にまず手動で以前のインストールおよび MySQL サービス (サーバーがサービスとしてインストールされている場合) を削除しなければなりません。

    MySQL サービスを削除するには次のコマンドを使用します。

    C:\> C:\mysql\bin\mysqld --remove

    既存のサービスを削除しないと、MySQL Installation Wizard は新しい MySQL サービスを適切にインストールできない場合があります。

  6. MySQL Installer を使用する場合は、セクション2.3.3「MySQL Installer を使用した MySQL の Microsoft Windows へのインストール」 の説明に従って起動します。

  7. MySQL を Zip アーカイブからアップグレードする場合は、アーカイブを抽出します。既存の MySQL のインストールを上書きする (通常 C:\mysql にあります) か、あるいは C:\mysql5 などの異なるディレクトリにインストールします。既存のインストールの上書きをお勧めしています。しかし、(はじめてインストールする場合に対して) アップグレードの場合は、現在のデータファイルが置換されるのを避けるため、既存の MySQL インストールからデータディレクトリを削除しなければなりません。そのためには、次の手順に従います。

    1. Zip アーカイブを、現在の MySQL インストールとは別の場所に解凍します。

    2. データディレクトリを削除します。

    3. Zip アーカイブを再圧縮します。

    4. 変更した Zip アーカイブを既存のインストールの上に解凍します。

    別の方法

    1. Zip アーカイブを、現在の MySQL インストールとは別の場所に解凍します。

    2. データディレクトリを削除します。

    3. データディレクトリを、現在の MySQL インストールから今削除したデータディレクトリに移動します。

    4. 現在の MySQL インストールを削除します。

    5. 解凍したインストールを今削除したインストールの場所に移動します。

  8. MySQL を Windows のサービスとして使用していて、この手順で以前にサービスを削除した場合は、サービスを再インストールします。(セクション2.3.5.7「Windows のサービスとして MySQL を起動する」 を参照してください。)

  9. サーバーを再起動します。MySQL をサービスとして使用している場合は NET START MySQL などを使用するか、あるいは mysqld を直接実行します。

  10. 管理者として mysql_upgrade を実行してテーブルをチェックし、必要に応じて修復を試み、付与テーブルが変更されている場合は更新して新機能を利用できるようにします。セクション4.4.7「mysql_upgrade — MySQL テーブルのチェックとアップグレード」を参照してください。

  11. エラーが発生する場合は セクション2.3.6「Microsoft Windows MySQL Server インストールのトラブルシューティング」 を参照します。

2.3.8 Windows でのインストール後の手順

後述のタスクのほとんどを実行する次のような GUI ツールがあります。

  • MySQL Installer: MySQL 製品のインストールとアップグレードに使用されます。

  • MySQL Workbench: MySQL Server の管理および SQL クエリーの編集を行います。

  • MySQL Notifier: MySQL Server の起動、停止、または再起動を行い、ステータスをモニターします。

  • MySQL for Excel: Microsoft Excel で MySQL データを編集します。

Windows では、データディレクトリおよび付与テーブルを作成する必要はありません。MySQL の Windows の配布には、データディレクトリの mysql データベースに初期化されたアカウントセットの付与テーブルが含まれています。パスワードに関しては、MySQL を MySQL Installer を使用してインストールした場合は、すでにパスワードをアカウントに割り当てた可能性があります。(セクション2.3.3「MySQL Installer を使用した MySQL の Microsoft Windows へのインストール」 を参照してください)。そうでない場合には、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」 にあるパスワード割り当て手順を使用します。

パスワードを設定する前にクライアントプログラムを実行して、サーバーに接続でき、サーバーが適切に動作していることを確認するとよいでしょう。サーバーが稼働していること (セクション2.3.5.4「サーバーをはじめて起動する」 参照) を確認してから、次のコマンドを発行してサーバーから情報を取り出せることを確認します。コマンド行で、C:\mysql\bin とは異なるディレクトリを指定する必要がある場合があります。MySQL を MySQL Installer を使用してインストールした場合は、デフォルトディレクトリは C:\Program Files\MySQL\MySQL Server 5.6 で、mysql および mysqlshow クライアントプログラムはC:\Program Files\MySQL\MySQL Server 5.6\bin にあります。詳細については、セクション2.3.3「MySQL Installer を使用した MySQL の Microsoft Windows へのインストール」 を参照してください。

どのようなデータベースが存在するかを表示するには、mysqlshow を使用します。

C:\> C:\mysql\bin\mysqlshow+--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+

インストール済みのデータベースのリストは異なる場合がありますが、最低でも mysql および information_schema を含みます。多くの場合、test データベースも自動的にインストールされます。

前述のコマンド (および mysql などのその他の MySQL プログラムのコマンド) は、正しい MySQL アカウントが存在しないと機能しない場合があります。たとえば、プログラムがエラーで終了する場合やすべてのデータベースを表示できない場合があります。MySQL を MySQL Installer を使用してインストールした場合は、指定したパスワードで root ユーザーが自動的に作成されています。この場合、-u root および -p オプションを使用してください。(MySQL 初期アカウントをすでにセキュアにした場合も、-u root および -p オプションを使用する必要があります)。-p を使用すると、root パスワードを求められます。例:

C:\> C:\mysql\bin\mysqlshow -u root -pEnter password: (enter root password here)+--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+

データベース名を指定すると、mysqlshow はそのデータベース内のテーブルのリストを表示します。

C:\> C:\mysql\bin\mysqlshow mysqlDatabase: mysql
+---------------------------+
| Tables |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| plugin |
| proc |
| procs_priv |
| servers |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+

mysql プログラムを使用して、mysql データベース内のテーブルから情報を選択します。

C:\> C:\mysql\bin\mysql -e "SELECT Host,Db,User FROM mysql.db"+------+--------+------+
| host | db | user |
+------+--------+------+
| % | test | |
| % | test_% | |
+------+--------+------+

mysqlshow および mysql の詳細は、セクション4.5.6「mysqlshow — データベース、テーブル、およびカラム情報の表示」 および セクション4.5.1「mysql — MySQL コマンド行ツール」 を参照してください。

サービスをサポートする Windows のバージョンを実行している場合は、MySQL Server を Windows の起動時に自動的に実行するようにセットアップできます。セクション2.3.5.7「Windows のサービスとして MySQL を起動する」を参照してください。

2.4 OS X に MySQL をインストールする

MySQL Server がサポートする OS X のバージョンのリストについては、http://www.mysql.com/support/supportedplatforms/database.htmlを参照してください。

MySQL for OS X は複数の形式で利用可能です。

OS X での MySQL の使用に関する追加情報は、セクション2.4.1「OS X への MySQL のインストールに関する一般的な注記」を参照してください。

2.4.1 OS X への MySQL のインストールに関する一般的な注記

次の問題と注記に留意してください。

  • 起動アイテムは、起動デーモンを優先するため OS X 10.4 で非推奨になりました。OS X 10.10 (Yosemite) では起動アイテムは機能しません。このため、起動アイテムよりも起動デーモンを使用することが推奨されます。

  • MySQL ディレクトリおよびデータを所有する特定の mysql ユーザーの作成が必要となる (またはしたほうがよい) 場合があります。これは、 ディレクトリユーティリティーを通じて実行可能であり、mysql ユーザーがすでに存在している必要があります。シングルユーザーモードで使用するには、_mysql (アンダースコアのプリフィクスに注意してください) のエントリが /etc/passwd システムファイルにすでに存在している必要があります。

  • MySQL の起動時にinsecure startup item disabledエラーが生じる場合は、次の手順に従ってください。パス名はシステムに合わせて適切に調整してください。

    1. 次のコマンドを使用して mysql.script を変更します (1 行に入力します)。

      shell> sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit/usr/local/mysql/support-files/mysql.server
    2. basedir の値を定義しているオプションファイルを探し、次の行を含むように変更します。

      basedir=/usr/local/mysql
      datadir=/usr/local/mysql/data

      /Library/StartupItems/MySQLCOM/ ディレクトリで、グループ ID を次のように staff から wheel に変更します。

      shell> sudo chgrp wheel MySQLCOM StartupParameters.plist
    3. 「システム環境設定」または Terminal.app からサーバーを起動します。

  • MySQL Package Installer は、MySQL のコンテンツをバージョンとプラットフォームに固有のディレクトリにインストールするため、これを利用して、アップグレードしてバージョン間でデータベースの移行を実行できます。data ディレクトリを古いバージョンから新しいバージョンにコピーするか、あるいは代替の datadir 値を指定してデータディレクトリの場所を設定することが必要になります。デフォルトでは、MySQL ディレクトリは /usr/local/ の下にインストールされます。

  • シェルのリソースファイルにエイリアスを追加すると、コマンド行から mysql および mysqladmin などのよく使用するプログラムに容易にアクセスできます。bash での構文は次のようになります。

    alias mysql=/usr/local/mysql/bin/mysql
    alias mysqladmin=/usr/local/mysql/bin/mysqladmin

    tcsh では次を使用します。

    alias mysql /usr/local/mysql/bin/mysql
    alias mysqladmin /usr/local/mysql/bin/mysqladmin

    /usr/local/mysql/bin to your PATH 環境変数を追加するとさらによいでしょう。これを行うには、シェルの適切な起動ファイルを変更します。詳細については、セクション4.2.1「MySQL プログラムの起動」を参照してください。

  • 古いインストールからの MySQL データベースファイルのコピーが終了して新しいサーバーの起動が完了したら、ディスクスペースを節約するために古いインストールファイルを削除するとよいでしょう。さらに、/Library/Receipts/mysql-VERSION.pkg にある、古いバージョンのパッケージを入れたディレクトリも削除する必要があります。

  • OS X 10.7 より前では、MySQL Server は OS X Server にバンドルされていました。

2.4.2 ネイティブパッケージを使用して OS X に MySQL をインストールする

パッケージは、ディスクイメージ (.dmg) ファイルにあり、最初に Finder でそのアイコンをダブルクリックしてマウントする必要があります。すると、イメージがマウントされ、そのコンテンツが表示されます。

注記

インストールに進む前に、MySQL Manager Application (OS X Server 上で) またはコマンド行で mysqladmin shutdown を使用して、実行中の MySQL Server インスタンスを必ずすべて停止してください。

パッケージバージョンからインストールする場合、MySQL Preference Pane もインストールできます。これにより、MySQL Server の起動と実行を「システム環境設定」から管理できるようになります。詳細については、セクション2.4.5「MySQL Preference Pane のインストールと使用」を参照してください。

Package Installer を使用してインストールする場合、ファイルは /usr/local 内の、インストールするバージョンとプラットフォームに一致する名前のディレクトリにインストールされます。たとえば、インストーラファイル mysql-5.6-osx10.8-x86_64.dmg は、MySQL を /usr/local/mysql-5.6-osx10.8-x86_64/ にインストールします。次の表は、インストールディレクトリのレイアウトを示しています。

表 2.5 OS X 上での MySQL のインストールレイアウト

ディレクトリディレクトリの内容
binクライアントプログラムおよび mysqld サーバー
dataログファイル、データベース
docsリリースノートおよびビルド情報などのヘルパードキュメント
includeインクルード (ヘッダー) ファイル
libライブラリ
manUnix マニュアルページ
mysql-testMySQL テスト項目
scriptsmysql_install_db
shareエラーメッセージ、サンプル構成ファイル、データベースインストールのための SQL を含む種々のサポートファイル
sql-benchベンチマーク
support-filesスクリプトとサンプル構成ファイル
/tmp/mysql.sockMySQL Unix ソケットの場所

Package Installer のプロセス中に、/usr/local/mysql から、インストール中に作成されたバージョン/プラットフォーム固有のディレクトリへのシンボリックリンクが自動的に作成されます。

  1. MySQL Package Installer をダウンロードして開きます。これは、メインの MySQL インストールパッケージファイルを含むディスクイメージ (.dmg) にあります。ディスクイメージをダブルクリックして開きます。

    図 2.40 MySQL Package Installer: DMG のコンテンツ

    MySQL Package Installer: DMG のコンテンツ

  2. MySQL Installer パッケージをダブルクリックします。ダウンロードした MySQL のバージョンに従って命名されます。たとえば、MySQL Server 5.6.23 をダウンロードした場合は、mysql-5.6.23-osx-10.8-x86_64.pkg をダブルクリックします。

  3. インストーラのオープニングダイアログが表示されます。「Continue」をクリックしてインストールを開始します。

    図 2.41 MySQL Package Installer: Introduction

    MySQL Package Installer: Introduction

  4. MySQL のコミュニティーバージョンをダウンロードした場合は、関連する GNU General Public License のコピーが表示されます。「Continue」「Agree」の順にクリックして続行します。

  5. 「Installation Type」ページから、「Install」をクリックしてすべてデフォルトを使用してインストールウィザードを実行するか、「Customize」をクリックしてインストールするコンポーネントを変更するか (MySQL Server、Startup Item、Preference Pane は、デフォルトではすべて有効です)、または「Change Installation Location」をクリックして、インストールのタイプをすべてのユーザー、インストーラを実行しているユーザーのみ、またはカスタム場所の定義に変更できます。

    図 2.42 MySQL Package Installer: Installation Type

    MySQL Package Installer: Installation Type

    図 2.43 MySQL Package Installer: Destination Select (インストール場所の変更)

    MySQL Package Installer: Destination Select (インストール場所の変更)

    図 2.44 MySQL Package Installer: カスタマイズ

    MySQL Package Installer: カスタマイズ

  6. 「Install」をクリックしてインストールプロセスを開始します。

  7. インストールが正常に完了すると、「Install Succeeded」メッセージが短いサマリーとともに表示されます。ここで、ウィザードを「Close」して MySQL Server の使用を開始します。

    図 2.45 MySQL Package Installer: Summary

    MySQL Package Installer: Summary

利便性のため、起動デーモンと Preference Pane をインストールしてもよいでしょう。セクション2.4.3「MySQL 起動デーモンのインストール」セクション2.4.5「MySQL Preference Pane のインストールと使用」を参照してください。

2.4.3 MySQL 起動デーモンのインストール

OS X は、起動デーモンを使用して、MySQL などのプロセスやアプリケーションの起動、停止、および管理を自動的に行います。OS X では、起動アイテムよりも起動デーモンを使用することが推奨されます。

注記

起動アイテムは、起動デーモンを優先するため OS X 10.4 で非推奨になりました。OS X 10.10 (Yosemite) では起動アイテムは機能しません。このため、起動アイテムよりも起動デーモンを使用することが推奨されます。

MySQL を起動する launchd サンプルファイルを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>com.mysql.mysqld</string> <key>ProgramArguments</key> <array> <string>/usr/local/mysql/bin/mysqld_safe</string> <string>--user=mysql</string> </array> </dict>
</plist> 

ProgramArguments 配列はシステムに合わせて調整します。たとえば mysqld_safe へのパスが異なる場合があります。適切に調整したら、次を行います。

  • XML を /Library/LaunchDaemons/com.mysql.mysql.plist という名前のファイルとして保存します。

  • ファイルアクセス許可を、Apple 推奨の所有者「root」、所有グループ「wheel」、ファイルアクセス許可「644」を使用して調整します。

    shell> sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
    shell> sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
  • この新しい MySQL サービスを有効にします。

    shell> sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

MySQL デーモンが実行され、システムがリブートされると自動的に起動します。

2.4.4 MySQL 起動アイテムのインストール

MySQL インストールパッケージには、MySQL の自動起動および停止に使用できる起動アイテムが含まれています。

重要

起動アイテムは、起動デーモンを優先するため非推奨になりました。追加情報についてはセクション2.4.3「MySQL 起動デーモンのインストール」を参照してください。

MySQL 起動アイテムをインストールするには:

  1. MySQL Package Installer をダウンロードして開きます。これは、メインの MySQL インストールパッケージを含むディスクイメージ (.dmg) にあります。

    注記

    以前は、OS X パッケージには個別の MySQLStartupItem.pkg および MySQL.prefPane ファイルが含まれていました。それ以降、これらはメインパッケージファイルにマージされています。

    図 2.46 MySQL Package Installer: DMG のコンテンツ

    MySQL Package Installer: DMG のコンテンツ

  2. MySQL Server のインストールプロセスを、セクション2.4.2「ネイティブパッケージを使用して OS X に MySQL をインストールする」のドキュメントの記述に従って実行します。

  3. 「Installation Type」の手順で、「Customize」をクリックします。「Startup Item」オプションがそこに表示され、デフォルトで有効です。

    図 2.47 OS X の MySQL Installer: カスタマイズ

    OS X の MySQL Installer: カスタマイズ

  4. MySQL Server インストールプロセスを完了します。

MySQL の起動アイテムは /Library/StartupItems/MySQLCOM にインストールされます。起動アイテムのインストールにより、変数 MYSQLCOM=-YES- がシステム構成ファイル /etc/hostconfig に追加されます。MySQL の自動起動を無効にする場合は、この変数を MYSQLCOM=-NO- に変更します。

注記

MySQL Preference Pane から 「Automatically Start MySQL Server on Startup」 の選択を解除すると、MYSQLCOM 変数が -NO-. に設定されます。

インストール後、MySQL Preference Pane から (推奨)、または次のコマンドをターミナルウィンドウで実行することにより、MySQL Server を起動および停止できます。これらのタスクを実行するには管理者権限が必要で、パスワードを要求される場合があります。

起動アイテムをインストールした場合は、次のコマンドを使用してサーバーを開始します。

shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

起動アイテムをインストールした場合は、次のコマンドを使用してサーバーを停止します。

shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

2.4.5 MySQL Preference Pane のインストールと使用

MySQL Installation Package には、MySQL インストールのブート中に MySQL の起動、停止、および自動起動の制御を可能にする MySQL Preference Pane が含まれます。

MySQL Preference Pane をインストールするには:

  1. MySQL Package Installer をダウンロードして開きます。これは、メインの MySQL インストールパッケージを含むディスクイメージ (.dmg) にあります。

    注記

    以前は、OS X パッケージには個別の MySQLStartupItem.pkg および MySQL.prefPane ファイルが含まれていました。それ以降、これらはメインパッケージファイルにマージされています。

    図 2.48 MySQL Package Installer: DMG のコンテンツ

    MySQL Package Installer: DMG のコンテンツ

  2. MySQL Server のインストールプロセスを、セクション2.4.2「ネイティブパッケージを使用して OS X に MySQL をインストールする」のドキュメントの記述に従って実行します。

  3. 「Installation Type」の手順で、「Customize」をクリックします。「Preference Pane」オプションがそこに表示され、デフォルトで有効です。

    図 2.49 OS X の MySQL Installer: カスタマイズ

    OS X の MySQL Installer: カスタマイズ

  4. MySQL Server インストールプロセスを完了します。

注記

MySQL Preference Pane は、デフォルトの場所にインストールされた MySQL パッケージインストールからインストールされた MySQL インストールのみを起動および停止します。

MySQL Preference Pane がインストールされると、Preference Pane を使用して MySQL Server インスタンスを制御できます。Preference Pane を使用するには、「システム環境設定...」を Apple メニューから開きます。プリファレンスペインのリストの下のセクションにある MySQL ロゴをクリックして MySQL Preference Pane を選択します。

図 2.50 MySQL Preference Pane: 場所

MySQL Preference Pane: 場所

MySQL Preference Pane は、MySQL Server の現在のステータスを表示します。サーバーが実行していない場合は (赤で) 「stopped」 、サーバーがすでに起動している場合は (緑で) 「running」 と表示します。Preference Pane は、MySQL Server が自動的に起動するように設定されているかどうかに関する現在の設定も表示します。

  • MySQL Server を Preference Pane を使用して起動するには:

    「Start MySQL Server」をクリックします。MySQL Server を起動するために、管理者権限を持つユーザーのユーザー名とパスワードを要求される場合があります。

  • MySQL Server を Preference Pane を使用して停止するには:

    「Stop MySQL Server」をクリックします。MySQL Server を停止するために、管理者権限を持つユーザーのユーザー名とパスワードを要求される場合があります。

  • システムのブート時に自動的に MySQL Server を起動するには:

    「Automatically Start MySQL Server on Startup」の隣のチェックボックスにチェックを付けます。

  • システムブート時の MySQL Server の自動起動を無効にするには:

    「Automatically Start MySQL Server on Startup」の隣のチェックボックスのチェックをオフにします。

設定が完了したら、「システム環境設定...」ウィンドウを閉じます。

2.5 Linux に MySQL をインストールする

Linux は、MySQL をインストールするための何種類かのソリューションをサポートします。オラクルからの配布のいずれかを使用することを推奨します。いくつかのインストール方法が使用可能です。

代わりにシステムのパッケージマネージャーを使用して、Linux 配布のネイティブソフトウェアリポジトリからのパッケージで、MySQL を自動的にダウンロードしてインストールできます。これらのネイティブパッケージは多くの場合、使用可能な最新のリリースから数バージョン遅れています。また、開発マイルストーンリリース (DMR) は、通常ネイティブリポジトリで使用可能にはならないため、これらをインストールすることも通常できません。ネイティブパッケージインストーラの使用の詳細は、セクション2.5.7「ネイティブソフトウェアリポジトリから MySQL を Linux にインストールする」を参照してください。

注記

多くの Linux インストールでは、マシンが起動するときに自動的に MySQL を起動するように設定するとよいでしょう。多くのネイティブパッケージインストールではこの操作は自動的に行われますが、ソース、バイナリ、および RPM ソリューションでは個別の設定が必要になる場合があります。必要なスクリプト mysql.server は、MySQL インストールディレクトリの下の support-files ディレクトリ、または MySQL ソースツリーにあります。自動的に起動およびシャットダウンするには、それを /etc/init.d/mysql としてインストールします。セクション2.10.1.2「MySQL を自動的に起動および停止する」を参照してください。

2.5.1 MySQL Yum リポジトリを使用して MySQL を Linux にインストールする

MySQL は、Yum スタイルのソフトウェアリポジトリを次の Linux プラットフォームで提供します。

  • EL5、EL6、および EL7 ベースのプラットフォーム (Red Hat Enterprise Linux、Oracle Linux、および CentOS の対応するバージョンなど)

  • Fedora 20 および 21

現在、前述のプラットフォームの MySQL Yum リポジトリ は、MySQL Server、クライアント、MySQL Workbench、MySQL Utilities (EL5 ベースのプラットフォームでは利用できません)、Connector/ODBC、および Connector/Python (EL5 ベースのプラットフォームでは利用できません) をインストールするための RPM パッケージを提供しています。

開始する前に

MySQL は、広く使用されるオープンソースのソフトウェアとして、オリジナルの形式または再パッケージされた形式で、さまざまなダウンロードサイトやソフトウェアリポジトリなどのさまざまなソースから、多くのシステムに広くインストールされています。次の説明では、システムには (オラクルまたはそれ以外から配布される) どのバージョンの MySQL もインストールされていないことを前提とします。そうでない場合は、セクション2.11.1.1「MySQL Yum リポジトリを使用する MySQL のアップグレード」またはセクション2.5.2「サードパーティーの MySQL 配布を MySQL Yum リポジトリを使用して置換する」を参照してください。

MySQL のインストールを最初から実行する手順

MySQL の最新の GA バージョンを MySQL Yum リポジトリでインストールするには、次の手順に従ってください。

  1. MySQL Yum リポジトリの追加

    まず、MySQL Yum リポジトリをシステムのリポジトリリストに追加します。この操作は一度だけ必要で、MySQL が提供する RPM をインストールすることで実行できます。次の手順に従います。

    1. MySQL Developer Zone の「Download MySQL Yum Repository」ページ (https://dev.mysql.com/downloads/repo/yum/) に移動します。

    2. 使用しているプラットフォーム用のリリースパッケージを選択してダウンロードします。

    3. ダウンロードしたリリースパッケージを、次のコマンドでインストールします (EL5 ベースのシステムを除きます)。このとき、platform-and-version-specific-package-name をダウンロードした RPM パッケージの名前に変更します。

      shell> sudo yum localinstall platform-and-version-specific-package-name.rpm

      EL6 ベースのシステムでは、コマンドは次の形式です。

      shell> sudo yum localinstall mysql-community-release-el6-{version-number}.noarch.rpm 

      EL7 ベースのシステムの場合:

      shell> sudo yum localinstall mysql-community-release-el7-{version-number}.noarch.rpm 

      Fedora 20 の場合:

      shell> sudo yum localinstall mysql-community-release-fc20-{version-number}.noarch.rpm

      Fedora 21 の場合:

      shell> sudo yum localinstall mysql-community-release-fc21-{version-number}.noarch.rpm

      EL5 ベースのシステムでは、代わりに次のコマンドを使用します。

      shell> sudo rpm -Uvh mysql-community-release-el5-{version-number}.noarch.rpm

      インストールコマンドにより、MySQL Yum リポジトリがシステムのリポジトリリストに追加され、ソフトウェアパッケージの完全性をチェックするために GnuPG 鍵がダウンロードされます。GnuPG 鍵チェックの詳細は、セクション2.1.4.2「GnuPG を使用した署名確認」を参照してください。

      MySQL Yum リポジトリが正常に追加されたことは、次のコマンドでチェックできます。

      shell> yum repolist enabled | grep "mysql.*-community.*"

    注記

    システムで MySQL Yum リポジトリが有効になると、yum update コマンドによるシステム全体の更新によって、システム上の MySQL パッケージがアップグレードされ、ネイティブのサードパーティーパッケージがある場合は、Yum が MySQL Yum リポジトリ中に代替を検索できればそれらで置換されます。セクション2.11.1.1「MySQL Yum リポジトリを使用する MySQL のアップグレード」を参照してください。また、システムへの影響の可能性に関する議論については、Upgrading to the Shared Client Librariesを参照してください。

  2. リリースシリーズの選択

    注記

    MySQL Yum リポジトリを使用する場合、インストールにはデフォルトで MySQL の最新の GA リリースが選択されます。それでよい場合は、次の手順のYum での MySQL のインストールに進んでください。

    MySQL Yum リポジトリ内では、MySQL Community Server の異なるリリースシリーズが、異なるサブリポジトリにホストされています。最新の GA シリーズ (現在は 5.6) のサブリポジトリは デフォルトで有効であり、その他のすべてのシリーズ (たとえば、現在まだデベロッパマイルストーンリリース (DMR) ステータスの 5.7 シリーズなど) のサブリポジトリはデフォルトで無効です。次のコマンドを使用して、MySQL Yum リポジトリのすべてのサブリポジトリを表示し、どれが有効でどれが無効かを確認します。

    shell> yum repolist all | grep mysql

    最新の GA シリーズの最新のリリースをインストールする場合は、構成は不要です。最新の GA シリーズ以外の特定のシリーズの最新リリースをインストールするには、インストールコマンドを実行する前に、最新の GA シリーズのサブリポジトリを無効にし、その特定のシリーズのサブリポジトリを有効にします。使用しているプラットフォームで yum-config-manager がサポートされている場合は、次のコマンドを発行することで実行できます。このコマンドは、5.6 シリーズのサブリポジトリを無効にし、5.7 シリーズのサブリポジトリを有効にします。

    shell> sudo yum-config-manager --disable mysql56-communityshell> sudo yum-config-manager --enable mysql57-community-dmr

    yum-config-manager を使用する以外に、/etc/yum.repos.d/mysql-community.repo ファイルを手動で編集してリリースシリーズを選択することもできます。ファイル内の、リリースシリーズのサブリポジトリの典型的なエントリを次に示します。

    # Enable to use MySQL 5.6
    [mysql56-community]
    name=MySQL 5.6 Community Server
    baseurl=//repo.mysql.com/yum/mysql-5.6-community/el/5/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 

    構成したいサブリポジトリのエントリを探し、enabled オプションを編集します。enabled=0 を指定してサブリポジトリを無効にするか、enabled=1 を指定してサブリポジトリを有効にします。たとえば、最新の 5.7 DMR をインストールするには、前述の MySQL 5.6 のサブリポジトリのエントリを enabled=0 に設定し、5.7 シリーズのエントリを enabled=1 にしたことを確認します。

    # Note: MySQL 5.7 is currently in development. For use at your own risk.
    # Please read with sub pages: https://dev.mysql.com/doc/relnotes/mysql/5.7/en/
    [mysql57-community-dmr]
    name=MySQL 5.7 Community Server Development Milestone Release
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

    一度に有効にするサブリポジトリは、 1 つのリリースシリーズのもののみにしてください。複数のリリースシリーズのサブリポジトリが有効になっている場合は、Yum はもっとも新しいシリーズを使用します。

    次のコマンドを実行して出力をチェックして、サブリポジトリが正しく有効または無効にされていることを確認します。

    shell> yum repolist enabled | grep mysql

  3. Yum での MySQL のインストール

    次のコマンドで MySQL をインストールします。

    shell> sudo yum install mysql-community-server

    これにより、MySQL Server (mysql-community-server)、クライアントのパッケージ (mysql-community-client)、クライアントとサーバー用の一般的なエラーメッセージと文字セット (mysql-community-common)、および共有クライアントライブラリ (mysql-community-libs) など、サーバーを実行するために必要なコンポーネントのパッケージがインストールされます。

  4. MySQL サーバーの起動と停止

    次のコマンドで MySQL Server を起動します。

    shell> sudo service mysqld start

    前述のコマンドの出力例を次に示します。

    Starting mysqld:[ OK ]

    次のコマンドで MySQL Server のステータスをチェックできます。

    shell> sudo service mysqld status

    前述のコマンドの出力例を次に示します。

    mysqld (pid 3066) is running.

    次のコマンドで MySQL Server を停止します。

    shell> sudo service mysqld stop

  5. MySQL インストールのセキュリティー設定

    プログラム mysql_secure_installation を使用すると、ルートパスワードの設定、匿名ユーザーの削除など、重要な操作を実行できます。必ず実行して MySQL インストールをセキュアにしてください。

    shell> mysql_secure_installation

    設定したルートパスワードを記憶しておくことが重要です。詳細は、セクション4.4.5「mysql_secure_installation — MySQL インストールのセキュリティー改善」を参照してください。

インストール後の手順については、セクション2.10「インストール後のセットアップとテスト」を参照してください。

注記

EL7 ベースのプラットフォームの互換性情報: プラットフォームのネイティブソフトウェアリポジトリからの次の RPM パッケージは、MySQL Server をインストールする MySQL Yum リポジトリからのパッケージとは互換性がありません。MySQL Yum リポジトリを使用して MySQL をインストールすると、これらのパッケージはインストールできなくなります (その逆も同様です)。

  • akonadi-mysql

  • ocsinventory

追加の MySQL 製品およびコンポーネントの Yum でのインストール

Yum を使用して、MySQL の個々のコンポーネントのインストールおよび管理を実行できます。これらのコンポーネントの一部は、MySQL Yum リポジトリのサブリポジトリにホストされています。たとえば、MySQL Connectors は MySQL Connectors Community サブリポジトリ、MySQL Workbench は MySQL Tools Community にあります。 次のコマンドを使用して、使用しているプラットフォームで、MySQL Yum リポジトリから使用可能な MySQL コンポーネントのすべてのパッケージをリストできます。

shell> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available

次のコマンドで package-name をパッケージ名に置換して、任意のパッケージをインストールします。

shell> sudo yum install package-name

たとえば MySQL Workbench をインストールするには:

shell> sudo yum install mysql-workbench-community

共有クライアントライブラリをインストールするには:

shell> sudo yum install mysql-community-libs

Yum での MySQL の更新

インストールのほかに、MySQL 製品およびコンポーネントの更新も、MySQL Yum リポジトリを使用して実行できます。詳細は、セクション2.11.1.1「MySQL Yum リポジトリを使用する MySQL のアップグレード」を参照してください。

2.5.2 サードパーティーの MySQL 配布を MySQL Yum リポジトリを使用して置換する

サポートされる Yum ベースのプラットフォーム (リストについてはセクション2.5.1「MySQL Yum リポジトリを使用して MySQL を Linux にインストールする」を参照してください) では、MySQL Yum リポジトリを使用して、サードパーティーの MySQL 配布を MySQL からの最新の GA リリースに置換できます。サードパーティーの MySQL 配布がインストールされた方法によって、手順が異なります。

ネイティブのサードパーティーの MySQL 配布の置換

サードパーティーの MySQL 配布をネイティブソフトウェアリポジトリ (つまり、ご自分の Linux 配布で提供されたソフトウェアリポジトリ) からインストールした場合は、次の手順に従います。

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

    データの損失を避けるため、MySQL Yum リポジトリを使用して MySQL インストールを置換する前に、必ずデータベースをバックアップしてください。データベースのバックアップの方法については、第7章「バックアップとリカバリを参照してください。

  2. MySQL Yum リポジトリの追加

    Adding the MySQL Yum Repositoryに記載の説明に従って、MySQL Yum リポジトリをシステムのリポジトリリストに追加します。

  3. Yum アップデートでのネイティブのサードパーティーの配布の置換

    設計により、yum update または yum update mysql-server コマンドをシステムで実行すると、MySQL Yum リポジトリはネイティブのサードパーティー MySQL を置換します。

Yum リポジトリを使用して MySQL を更新したあとも、古いバージョンの共有クライアントライブラリを使用してコンパイルされたアプリケーションは機能するはずです。しかし、アプリケーションを再コンパイルして、更新されたライブラリに動的にリンクする場合は、特に考慮するべき点についてUpgrading to the Shared Client Librariesを参照してください。

ネイティブ以外のサードパーティーの MySQL 配布の置換

サードパーティーの MySQL 配布をネイティブでないソフトウェアリポジトリ (つまり、ご自分の Linux 配布で提供されていないソフトウェアリポジトリ) からインストールした場合は、次の手順に従います。

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

    データの損失を避けるため、MySQL Yum リポジトリを使用して MySQL インストールを置換する前に、必ずデータベースをバックアップしてください。データベースのバックアップの方法については、第7章「バックアップとリカバリを参照してください。

  2. Yum による、サードパーティーのネイティブでないリポジトリからの MySQL パッケージの受信を停止

    MySQL をインストールするために MySQL Yum リポジトリを使用する前に、システムがサードパーティーのネイティブでない Yum リポジトリから MySQL パッケージを受信するのを停止する必要があります。

    たとえば、MariaDB をそのソフトウェアリポジトリからインストールした場合は、次のコマンドを使用して、インストール済みの MariaDB パッケージのリストを取得します。

    shell> yum list installed mariadb\*

    コマンドの出力例を次に示します。

    MariaDB-common.i686 10.0.4-1 @mariadb
    MariaDB-compat.i686 10.0.4-1 @mariadb
    MariaDB-server.i686 10.0.4-1 @mariadb

    コマンド出力から、インストール済みのパッケージ (MariaDB-commonMariaDB-compat、および MariaDB-server) およびそのソース (mariadb という名前のネイティブでないソフトウェアリポジトリ) を特定できます。

    別の例として、Percona をそのソフトウェアリポジトリからインストールした場合は、次のコマンドを使用して、インストール済みの Percona パッケージのリストを取得します。

    shell> yum list installed Percona\*

    コマンドの出力例を次に示します。

    Percona-Server-client-55.i686 5.5.39-rel36.0.el6 @percona-release-i386
    Percona-Server-server-55.i686 5.5.39-rel36.0.el6 @percona-release-i386
    Percona-Server-shared-55.i686 5.5.39-rel36.0.el6 @percona-release-i386
    percona-release.noarch 0.1-3 @/percona-release-0.1-3.noarch

    コマンド出力から、インストール済みのパッケージ (Percona-Server-clientPercona-Server-serverPercona-Server-shared、および percona-release.noarch) およびそのソース (percona-release という名前のネイティブでないソフトウェアリポジトリ) を特定できます。

    どのサードパーティーの MySQL フォークをインストールしたかはっきりしない場合は、このコマンドでそれがわかります。インストール済みの RPM パッケージおよびパッケージを提供しているサードパーティーリポジトリがリストされます。

    shell> yum --disablerepo=\* provides mysql\*

    次の手順は、Yum がサードパーティーのネイティブでないリポジトリからパッケージを受信するのを停止することです。使用しているプラットフォームで yum-config-manager ユーティリティーがサポートされている場合は、たとえば MariaDB では次のコマンドを使用できます。

    shell> sudo yum-config-manager --disable mariadb

    また、Percona では次のコマンドを使用します。

    shell> sudo yum-config-manager --disable percona-release

    /etc/yum.repos.d/ ディレクトリにあるリポジトリファイルの 1 つに存在するソフトウェアリポジトリのエントリを削除することで、同じタスクを実行できます。MariaDB での通常のエントリを次に示します。

    [mariadb] name = MariaDB baseurl = [base URL for repository] gpgkey = [URL for GPG key] gpgcheck =1 

    エントリは通常、MariaDB では /etc/yum.repos.d/MariaDB.repo にあります。ファイルを削除するか、そのファイルから (またはエントリが見つかったファイルから) エントリを削除します。

    注記

    Yum リポジトリリリースパッケージ (Percona など) を使用して構成されたインストールでは、次の手順 3 の Percona のアンインストールコマンドのように、リリースパッケージ (Percona の場合 percona-release.noarch) を削除する予定である場合は、この手順は不要です。

  3. ネイティブ以外のサードパーティーの MySQL 配布のアンインストール

    MySQL Yum リポジトリを使用して MySQL をインストールする前に、ネイティブでないサードパーティーの MySQL 配布をアンインストールする必要があります。前記の手順 2 の MariaDB パッケージの場合、次のコマンドでアンインストールします。

    shell> sudo yum remove MariaDB-common MariaDB-compat MariaDB-server

    前記の手順 2 の Percona パッケージの場合:

    shell> sudo yum remove Percona-Server-client-55 Percona-Server-server-55 \ Percona-Server-shared-55.i686 percona-release

  4. MySQL Yum リポジトリを使用する MySQL のインストール

    次に、セクション2.5.1「MySQL Yum リポジトリを使用して MySQL を Linux にインストールする」に示す手順に従って、MySQL を MySQL Yum リポジトリを使用してインストールします。

    重要

2.5.3 MySQL APT リポジトリを使用して MySQL を Linux にインストールする

MySQL APT リポジトリは、MySQL Server、クライアント、その他のコンポーネントを次の Linux プラットフォームにインストールして管理するために、deb パッケージを提供します。

  • Debian 7.x (wheezy)

  • Ubuntu 12.04 LTS (Precise Pangolin)

  • Ubuntu 14.04 LTS (Trusty Tahr)

  • Ubuntu 14.10 (Utopic Unicorn)

MySQL APT リポジトリの使用に関する説明は、A Quick Guide to Using the MySQL APT Repositoryにあります。

注記

MySQL APT リポジトリは現在開発リリースです。ご試用の上フィードバックをお聞かせください。バグまたは不整合にお気づきの場合は、バグデータベースで報告してください。

2.5.4 MySQL SLES リポジトリを使用して MySQL を Linux にインストールする

MySQL SLES リポジトリは、MySQL Server、クライアント、その他のコンポーネントを SUSE Enterprise Linux Server にインストールして管理するために、RPM パッケージを提供します。

MySQL SLES リポジトリの使用に関する説明は、A Quick Guide to Using the MySQL SLES Repositoryにあります。

注記

MySQL SLES リポジトリは現在開発リリースです。ご試用の上フィードバックをお聞かせください。バグまたは不整合にお気づきの場合は、バグデータベースで報告してください。

2.5.5 RPM パッケージを使用して MySQL を Linux にインストールする

注記

MySQL 5.6.11 のインストールまたはアップグレードを行うには、このセクションの最後にある特記事項を必ずお読みください。

glibc を使用する RPM ベースの Linux 配布に MySQL をインストールするために推奨される方法は、MySQL が提供する RPM パッケージを使用することです。RPM パッケージの Community バージョンを取得するには 2 つのソースがあります。

このセクションの議論は、MySQL Developer Zone から直接ダウンロードした RPM パッケージのみに適用されます。これらのパッケージで作成されたインストールは、次の表に示すシステムディレクトリのファイルになります。

表 2.6 MySQL Developer Zone からの Linux RPM パッケージの MySQL インストールレイアウト

ディレクトリディレクトリの内容
/usr/binクライアントプログラムおよびスクリプト
/usr/sbinmysqld サーバー
/var/lib/mysqlログファイル、データベース
/usr/share/infoInfo 形式のドキュメント
/usr/share/manUnix マニュアルページ
/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.rpm

    MySQL Server。別のマシンで動作している MySQL サーバーに接続するのみでなければ、これが必要です。

  • MySQL-client-VERSION.linux_glibc2.5.i386.rpm

    標準の MySQL クライアントプログラム。通常は、このパッケージをインストールします。

  • MySQL-devel-VERSION.linux_glibc2.5.i386.rpm

    Perl モジュールなど、ほかの 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 Hat mysql-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 配布で動作します。
rhel5rhel6Red Hat Enterprise Linux 5 または 6
el6el7Enterprise Linux 6 または 7
sles10sles11SUSE Linux Enterprise Server 10 または 11

MySQL 5.6 では、現在 linux_glibc2.5 パッケージのみ使用可能です。

CPU 値は、パッケージのビルド対象になっているプロセッサのタイプまたはファミリを示します。

表 2.8 Linux 用 MySQL インストールパッケージの CPU 識別子

CPU対象のプロセッサタイプまたはファミリ
i386i586i686Pentium プロセッサ以上、32 ビット
x86_6464 ビットの x86 プロセッサ
ia64Itanium (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.rpmshell> 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 というグループがシステムに作成されます。これは、useraddgroupadd、および usermod コマンドを使用して行われます。これらのコマンドは適切な管理者権限を必要とします。これは、root によって実行される RPM インストールプロセスによってローカルに管理されるユーザーおよびグループ (/etc/passwd および /etc/group ファイルにリストされています) に必要です。

mysql ユーザーとしてログインすると、MySQL がInvalid (old?) table or database nameエラーを表示し、.mysqlguilost+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 以降へのアップグレードの場合、アップグレードは古いインストールを削除して新しいものをインストールすることによって実行されます。そうするには、次の手順に従います。

  1. 既存の 5.6.X インストールを削除します。OLDVERSION は削除するバージョンです。

    shell> rpm -e MySQL-server-OLDVERSION.linux_glibc2.5.i386.rpm

    この手順をすべてのインストール済み MySQL RPM に対して繰り返します。

  2. 新しいバージョンをインストールします。NEWVERSION はインストールするバージョンです。

    shell> rpm -ivh MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm

あるいは、削除とインストールは yum を使用して実行できます。

shell> yum remove MySQL-server-OLDVERSION.linux_glibc2.5.i386.rpmshell> yum install MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm

2.5.6 オラクルからの Debian パッケージを使用して MySQL を Linux にインストールする

オラクルは、MySQL を Debian や Debian のと類似の Linux システムにインストールするための Debian パッケージを提供します。このパッケージは 2 種類のチャネルから入手可能です。

  • MySQL APT Repository。Debian 7、Ubuntu 12、および Ubuntu 14 の各プラットフォームをサポートします。詳細は、セクション2.5.3「MySQL APT リポジトリを使用して MySQL を Linux にインストールする」を参照してください。

  • MySQL Developer Zone のダウンロード領域。詳細は、セクション2.1.3「MySQL の取得方法」を参照してください。そこで入手可能な Debian パッケージと、インストールの手順についての情報を次に示します。

    • libaio ライブラリがシステムにない場合は、それもインストールする必要がある場合があります。

      shell> sudo apt-get install libaio1
    • Debian 7、Ubuntu 12、および Ubuntu 14 の場合:

      • MySQL のさまざまなコンポーネントをインストールするために、MySQL Developer Zone ではさまざまな Debian パッケージが提供されています。推奨される方法は tarball バンドルを使用するものです。これには MySQL の基本的なセットアップに必要なパッケージが含まれます。tarball バンドルは、mysql-server_MVER-DVER_CPU.deb-bundle.tar という形式の名前を持ちます。MVER は MySQL のバージョン、DVER は Linux 配布のバージョンです。次の表に示すように、CPU 値は、パッケージのビルド対象になっているプロセッサのタイプまたはファミリを示します。

        表 2.9 MySQL Debian 7 および Ubuntu インストールパッケージの CPU 識別子

        CPU対象のプロセッサタイプまたはファミリ
        i386Pentium プロセッサ以上、32 ビット
        amd6464 ビットの x86 プロセッサ


      • tarball のダウンロード後、次のコマンドでアンパックします。

        shell> tar -xvf mysql-server_MVER-DVER_CPU.deb-bundle.tar

      • 一般的には、次のコマンドで tarball からアンパックした deb パッケージをインストールします (サーバーパッケージのインストールに必要な追加の手順は、次の説明を参照してください)。

        shell> sudo dpkg -i package-name.deb

        4 つのパッケージをインストールします。

        • データベースの共通ファイル (このパッケージはほかのものより前にインストールします):

          shell> sudo dpkg -i mysql-common_MVER-DVER_CPU.deb

        • MySQL Server:

          まず、データベースの共通ファイルのパッケージをインストールし (直前の行頭記号を参照してください)てから、次のコマンドでサーバーインストールを事前構成します。

          shell> dpkg-preconfigure mysql-community-server_MVER-DVER_CPU.deb

          次に、2 つのリクエストがあります。

          • MySQL インストールの root ユーザーのパスワードを提供します。

            重要

            設定した root パスワードを必ず記憶してください。あとでパスワードを設定するユーザーは、ダイアログボックスの password フィールドをブランクのままにして、「OK」のみを押します。ただし、データベースの root アカウントをパスワードでセキュアにするまで、MySQL Server への匿名でのアクセスが可能なため、プログラム mysql_secure_installation を使用してすぐにパスワードを設定することが非常に重要です。

          • テストデータベースをインストールするかどうかを、YesまたはNoで示します。本番環境では、テストデータベースをインストールすることが推奨されます。

          次に、次のコマンドでサーバーパッケージをインストールします。

          shell> sudo dpkg -i mysql-community-server_MVER-DVER_CPU.deb

        • MySQL クライアント:

          shell> sudo dpkg -i mysql-community-client_MVER-DVER_CPU.deb

        • MySQL 共有クライアントライブラリ:

          shell> sudo dpkg -i libmysqlclient18_MVER-DVER_CPU.deb

        ファイルがシステムにインストールされる場所は次のとおりです。

        • すべての構成ファイル (my.cnf など) は /etc の下

        • すべてのバイナリ、ライブラリ、ヘッダーなどは /usr の下

        • データディレクトリは /var の下

    • Debian 6 の場合:

      • MySQL Developer Zone から直接ダウンロードされた Debian パッケージファイルは、mysql-MVER-DVER-CPU.deb という形式の名前を持ちます。MVER は MySQL のバージョン、DVER は Debian のバージョンです。次の表に示すように、CPU 値は、パッケージのビルド対象になっているプロセッサのタイプまたはファミリを示します。

        表 2.10 MySQL Debian 6 インストールパッケージの CPU 識別子

        CPU対象のプロセッサタイプまたはファミリ
        i686Pentium プロセッサ以上、32 ビット
        x86_6464 ビットの x86 プロセッサ


      • Debian パッケージのダウンロード後、次のコマンドでインストールします。

        shell> dpkg -i mysql-MVER-DVER-CPU.deb

        Debian パッケージは、ファイルを /opt/mysql/server-5.6 ディレクトリにインストールします。

注記

MySQL の Debian 配布はほかのベンダーからも提供されています。それらは、オラクルによってビルドされたものとは (通信セットアップなどの) 機能や規則が異なる場合があり、それらのインストールにはこのマニュアルの説明が必ずしも適用されないことに注意してください。代わりに、ベンダーの説明書を参照してください。

2.5.7 ネイティブソフトウェアリポジトリから MySQL を Linux にインストールする

多くの Linux 配布は、ネイティブソフトウェアリポジトリの中に 1 つのバージョンの MySQL Server、クライアントツール、および開発コンポーネントを含み、プラットフォームの標準パッケージ管理システムでインストールできます。このセクションでは、これらのパッケージ管理システムを使用して MySQL をインストールするための基本的な手順を説明します。

重要

ネイティブパッケージは多くの場合、使用可能な最新のリリースから数バージョン遅れています。また、開発マイルストーンリリース (DMR) は、通常ネイティブリポジトリで使用可能にはならないため、これらをインストールすることも通常できません。次に進む前に、セクション2.5「Linux に MySQL をインストールする」に記述されているその他のインストールオプションを確認することが推奨されます。

配布固有の手順を次に示します。

  • Red Hat Linux、Fedora、CentOS

    注記

    EL5、EL6、または EL7 ベースの Linux プラットフォームおよび Fedora 20 または 21 では、プラットフォームのネイティブソフトウェアリポジトリの代わりに MySQL Yum リポジトリを使用して MySQL をインストールできます。詳細は、セクション2.5.1「MySQL Yum リポジトリを使用して MySQL を Linux にインストールする」 を参照してください。

    Red Hat および同様の配布では、MySQL 配布はいくつかの個別のパッケージ (クライアントツール用の mysql、サーバーおよび関連ツール用の mysql-server、およびライブラリ用の mysql-libs) にわかれています。Perl や Python など、異なる言語および環境からの接続性を提供する場合は、ライブラリは必須です。

    インストールするには、yum コマンドを使用してインストールするパッケージを指定します。例:

    root-shell> yum install mysql mysql-server mysql-libs mysql-server
    Loaded plugins: presto, refresh-packagekit
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package mysql.x86_64 0:5.1.48-2.fc13 set to be updated
    ---> Package mysql-libs.x86_64 0:5.1.48-2.fc13 set to be updated
    ---> Package mysql-server.x86_64 0:5.1.48-2.fc13 set to be updated
    --> Processing Dependency: perl-DBD-MySQL for package: mysql-server-5.1.48-2.fc13.x86_64
    --> Running transaction check
    ---> Package perl-DBD-MySQL.x86_64 0:4.017-1.fc13 set to be updated
    --> Finished Dependency Resolution
    Dependencies Resolved
    ================================================================================ Package Arch Version Repository Size
    ================================================================================
    Installing: mysql x86_64 5.1.48-2.fc13 updates 889 k mysql-libs x86_64 5.1.48-2.fc13 updates 1.2 M mysql-server x86_64 5.1.48-2.fc13 updates 8.1 M
    Installing for dependencies: perl-DBD-MySQL x86_64 4.017-1.fc13 updates 136 k
    Transaction Summary
    ================================================================================
    Install 4 Package(s)
    Upgrade 0 Package(s)
    Total download size: 10 M
    Installed size: 30 M
    Is this ok [y/N]: y
    Downloading Packages:
    Setting up and reading Presto delta metadata
    Processing delta metadata
    Package(s) data still to download: 10 M
    (1/4): mysql-5.1.48-2.fc13.x86_64.rpm | 889 kB 00:04
    (2/4): mysql-libs-5.1.48-2.fc13.x86_64.rpm | 1.2 MB 00:06
    (3/4): mysql-server-5.1.48-2.fc13.x86_64.rpm | 8.1 MB 00:40
    (4/4): perl-DBD-MySQL-4.017-1.fc13.x86_64.rpm | 136 kB 00:00
    --------------------------------------------------------------------------------
    Total 201 kB/s | 10 MB 00:52
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction Installing : mysql-libs-5.1.48-2.fc13.x86_64 1/4 Installing : mysql-5.1.48-2.fc13.x86_64 2/4 Installing : perl-DBD-MySQL-4.017-1.fc13.x86_64 3/4 Installing : mysql-server-5.1.48-2.fc13.x86_64 4/4
    Installed: mysql.x86_64 0:5.1.48-2.fc13 mysql-libs.x86_64 0:5.1.48-2.fc13 mysql-server.x86_64 0:5.1.48-2.fc13
    Dependency Installed: perl-DBD-MySQL.x86_64 0:4.017-1.fc13
    Complete!

    MySQL および MySQL Server はすでにインストールされています。サンプル構成ファイルは /etc/my.cnf にインストールされます。サーバーの起動および停止のための init スクリプトは、/etc/init.d/mysqld にインストールされています。MySQL Server の起動には service を使用します。

    root-shell> service mysqld start

    ブート中にサーバーを自動的に起動および停止できるようにするには、chkconfig を使用します。

    root-shell> chkconfig --levels 235 mysqld on

    これにより、MySQL Server が指定した実行レベルで自動的に起動 (および停止) されます。

    データベーステーブルがまだ存在していない場合は、自動的に作成されます。ただし、サーバーで mysql_secure_installation を実行して root のパスワードを設定してください。

  • Debian、Ubuntu、Kubuntu

    注記

    Debian 7、Ubuntu 12、および Ubuntu 14 では、プラットフォームのネイティブソフトウェアリポジトリの代わりに MySQL APT リポジトリを使用して MySQL をインストールできます。詳細は、セクション2.5.3「MySQL APT リポジトリを使用して MySQL を Linux にインストールする」 を参照してください。

    Debian および関連する配布では、ソフトウェアリポジトリに MySQL のパッケージが mysql-clientmysql-server の 2 つあります。それぞれクライアントコンポーネントとサーバーコンポーネントです。希望するバージョンの MySQL を確実にインストールするため、mysql-client-5.1 のように明示的にバージョンを指定するとよいでしょう。

    依存関係を含めてダウンロードしてインストールするには、インストールするパッケージを指定して apt-get コマンドを使用します。

    注記

    入手可能な最新バージョンを確実にダウンロードするために、インストールの前に apt-get インデックスファイルを更新してください。

    MySQL パッケージのサンプルインストールは次のようになります (わかりやすくするため一部のセクションは省略しています)。

    root-shell> apt-get install mysql-client-5.1 mysql-server-5.1
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following packages were automatically installed and are no longer required: linux-headers-2.6.28-11 linux-headers-2.6.28-11-generic
    Use 'apt-get autoremove' to remove them.
    The following extra packages will be installed: bsd-mailx libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient15off libmysqlclient16 libnet-daemon-perl libplrpc-perl mailx mysql-common postfix
    Suggested packages: dbishell libipc-sharedcache-perl tinyca procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin resolvconf postfix-cdb
    The following NEW packages will be installed bsd-mailx libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient15off libmysqlclient16 libnet-daemon-perl libplrpc-perl mailx mysql-client-5.1 mysql-common mysql-server-5.1 postfix
    0 upgraded, 13 newly installed, 0 to remove and 182 not upgraded.
    Need to get 1907kB/25.3MB of archives.
    After this operation, 59.5MB of additional disk space will be used.
    Do you want to continue [Y/n]? Y
    Get: 1 http://gb.archive.ubuntu.com jaunty-updates/main mysql-common 5.1.30really5.0.75-0ubuntu10.5 [63.6kB]
    Get: 2 http://gb.archive.ubuntu.com jaunty-updates/main libmysqlclient15off 5.1.30really5.0.75-0ubuntu10.5 [1843kB]
    Fetched 1907kB in 9s (205kB/s)
    Preconfiguring packages ...
    Selecting previously deselected package mysql-common.
    (Reading database ... 121260 files and directories currently installed.)
    ...
    Processing 1 added doc-base file(s)...
    Registering documents with scrollkeeper...
    Setting up libnet-daemon-perl (0.43-1) ...
    Setting up libplrpc-perl (0.2020-1) ...
    Setting up libdbi-perl (1.607-1) ...
    Setting up libmysqlclient15off (5.1.30really5.0.75-0ubuntu10.5) ...
    Setting up libdbd-mysql-perl (4.008-1) ...
    Setting up libmysqlclient16 (5.1.31-1ubuntu2) ...
    Setting up mysql-client-5.1 (5.1.31-1ubuntu2) ...
    Setting up mysql-server-5.1 (5.1.31-1ubuntu2) ... * Stopping MySQL database server mysqld ...done.
    100825 11:46:15 InnoDB: Started; log sequence number 0 46409
    100825 11:46:15 InnoDB: Starting shutdown...
    100825 11:46:17 InnoDB: Shutdown completed; log sequence number 0 46409
    100825 11:46:17 [Warning] Forcing shutdown of 1 plugins * Starting MySQL database server mysqld ...done. * Checking for corrupt, not cleanly closed and upgrade needing tables.
    ...
    Processing triggers for libc6 ...
    ldconfig deferred processing now taking place
    注記

    apt-get コマンドは、典型的なツールおよびアプリケーション環境を提供するために、MySQL Server をはじめとするいくつかのパッケージをインストールします。これは、メインの MySQL パッケージに加えて多数のパッケージをインストールするということを意味します。

    インストール中、初期データベースが作成され、MySQL root のパスワード (および確認) を求められます。構成ファイルが /etc/mysql/my.cnf に作成されています。init スクリプトが /etc/init.d/mysql に作成されています。

    サーバーはすでに起動されています。次を使用してサーバーを自動的に起動および停止できます。

    root-shell> service mysql [start|stop]

    このサービスは自動的に 2、3、および 4 の実行レベルに追加され、stop スクリプトは単独のシャットダウンおよび再起動レベルにあります。

  • Gentoo Linux

    ソースベースの配布として、Gentoo への MySQL のインストールには、ソースのダウンロード、Gentoo 固有のパッチの適用、および MySQL Server のコンパイルとインストールが含まれます。このプロセスは、emerge コマンドにより自動的に処理されます。インストールする MySQL のバージョンによっては、選択したプラットフォームの固有のバージョンをマスク解除する必要がある場合があります。

    MySQL Server およびクライアントツールは、単一のパッケージ dev-db/mysql で提供されます。インストールに使用できるバージョンのリストは、パッケージの portage ディレクトリを見ることで取得できます。

    root-shell> ls /usr/portage/dev-db/mysql/mysql-5.1*
    mysql-5.1.39-r1.ebuild
    mysql-5.1.44-r1.ebuild
    mysql-5.1.44-r2.ebuild
    mysql-5.1.44-r3.ebuild
    mysql-5.1.44.ebuild
    mysql-5.1.45-r1.ebuild
    mysql-5.1.45.ebuild
    mysql-5.1.46.ebuild

    特定の MySQL バージョンをインストールするには、アトム全体を指定する必要があります。例:

    root-shell> emerge =dev-db/mysql-5.1.46

    より簡単な方法は、virtual/mysql-5.1 パッケージを使用することで、最新のバージョンがインストールされます。

    root-shell> emerge =virtual/mysql-5.1

    パッケージが (現在のプラットフォームに対してテストまたは認証されていないため) マスクされている場合は、ACCEPT_KEYWORDS 環境変数を使用します。例:

    root-shell> ACCEPT_KEYWORDS="~x86" emerge =virtual/mysql-5.1

    インストール後、mysql_install_db を使用して新規データベースを作成し、MySQL の root ユーザーのパスワードを設定してください。構成インタフェースを使用してパスワードを設定し、初期データベースを作成できます。

    root-shell> emerge --config =dev-db/mysql-5.1.46

    サンプル構成ファイルが、自動的に /etc/mysql/my.cnf に作成され、init スクリプトが /etc/init.d/mysql に作成されています。

    MySQL を、通常の (デフォルト) 実行レベルで自動的に起動できるようにするには、次を使用できます。

    root-shell> rc-update add mysql default

2.6 Unbreakable Linux Network (ULN) を使用した MySQL のインストール

セクション2.5「Linux に MySQL をインストールする」で説明するように、Linux は、MySQL をインストールするための何種類かのソリューションをサポートします。1 つの方法はこのセクションで説明しますが、オラクルの Unbreakable Linux Network (ULN) からインストールすることです。Oracle Linux および ULN の詳細は、http://linux.oracle.com/にあります。

ULN を使用するには、ULN ログインを取得し、ULN でのインストールに使用するマシンを登録する必要があります。これは、ULN FAQ で詳細に説明しています。このページでは、パッケージのインストールと更新の方法も説明しています。MySQL パッケージは、ULN の、使用しているシステムアーキテクチャーの MySQL for Oracle Linux 6 および MySQL for Oracle Linux 7 のチャネルにあります。

注記

本書の記述の時点では、ULN は Oracle Linux 6 および Oracle Linux 7 の MySQL 5.6 を提供します。

ULN を使用して MySQL をインストールしたあと、このセクション、特にセクション2.5.5「RPM パッケージを使用して MySQL を Linux にインストールする」に、サーバーの起動および停止に関する情報があります。

既存の MySQL インストールを ULN を使用するインストールに更新している場合は、mysqldump を使用してデータをエクスポートし、既存のインストールを削除し、MySQL を ULN からインストールし、エクスポートしたデータを新しくインストールされた MySQL にロードするという手順が推奨されます。

アップグレードしようとしている既存の MySQL インストールが以前のリリースシリーズ (MySQL 5.6 より前) である場合は、MySQL のアップグレードに関するセクション、セクション2.11.1「MySQL のアップグレード」を必ずお読みください。

2.7 Solaris および OpenSolaris に MySQL をインストールする

Solaris および OpenSolaris の MySQL は、さまざまな形式で使用可能です。

tarball または PKG 形式の Solaris 用のバイナリ MySQL 配布を取得するには、https://dev.mysql.com/downloads/mysql/5.6.html にアクセスしてください。

MySQL を Solaris にインストールして使用する上で知っておくべき追加の注記:

  • MySQL を mysql ユーザーおよびグループで使用する場合は、groupadd コマンドおよび useradd コマンドを使用します。

    groupadd mysql
    useradd -g mysql mysql
  • MySQL をバイナリの tarball 配布で Solaris にインストールする場合、MySQL の配布をアンパックする前にすでに問題が生じることがあります。これは Solaris の tar が長いファイル名を扱えないためです。これは、MySQL をアンパックするときにエラーが表示される場合があることを意味します。

    これが発生したら、GNU tar (gtar) を使用して配布をアンパックする必要があります。Solaris 10 および OpenSolaris では、gtar は通常 /usr/sfw/bin/gtar に置かれていますが、デフォルトのパス定義に含まれていない場合があります。

  • Solaris 10 を x86_64 で使用する場合、InnoDB ファイルを forcedirectio オプションで保持するファイルシステムをマウントするようにしてください。(デフォルトではこのオプションなしでマウントされます。)そうしないと InnoDB ストレージエンジンをこのプラットフォームで使用した場合性能が大幅に劣化します。

  • MySQL を自動的に起動する場合は、support-files/mysql.server/etc/init.d にコピーして、それに /etc/rc3.d/S99mysql.server という名前のシンボリックリンクを作成します。

  • あまりにも多くのプロセスが急激に mysqld に接続を試みた場合、MySQL ログに次のエラーが記録されます。

    Error in accept: Protocol error

    この問題の回避策としてサーバーを --back_log=50 オプションで起動するとよいでしょう。

  • Solaris でコアファイルの生成を構成するには、coreadm コマンドを使用します。setuid() アプリケーションでコアを生成するとセキュリティー上の問題があるため、デフォルトでは Solaris は setuid() プログラムではコアファイルをサポートしません。ただし、この動作は coreadm を使用して変更できます。現在のユーザーに対して setuid() コアファイルを有効にすると、モード 600 を使用して生成され、スーパーユーザーによって所有されます。

2.7.1 Solaris PKG を使用して Solaris に MySQL をインストールする

バイナリ tarball 配布ではなく、ネイティブの Solaris PKG 形式を使用して、バイナリパッケージを使用して MySQL を Solaris および OpenSolaris にインストールできます。

このパッケージを使用するには、対応する mysql-VERSION-solaris10-PLATFORM.pkg.gz ファイルをダウンロードしてから圧縮解除します。例:

shell> gunzip mysql-5.6.23-solaris10-x86_64.pkg.gz

新しいパッケージをインストールするには、pkgadd を使用して画面の指示に従います。この操作を実行するにはルート権限が必要です。

shell> pkgadd -d mysql-5.6.23-solaris10-x86_64.pkgThe following packages are available: 1 mysql MySQL Community Server (GPL) (i86pc) 5.6.23
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: 

PKG インストーラは、必要なすべてのファイルおよびツールをインストールし、そのあとデータベースが存在しない場合はデータベースを初期化します。インストールを完了するには、インストールの最後の指示に示されるように、MySQL のルートパスワードを設定してください。あるいは、インストールに同梱されている mysql_secure_installation スクリプトを実行することもできます。

デフォルトでは、PKG パッケージは MySQL をルートパス /opt/mysql にインストールします。インストールのルートパスを変更できるのは pkgadd を使用している場合のみで、これを使用すると MySQL を異なる Solaris ゾーンにインストールできます。特定のディレクトリにインストールする必要がある場合は、バイナリの tar ファイルの配布を使用してください。

pkg インストーラは、適切な MySQL スタートアップスクリプトを /etc/init.d/mysql にコピーします。MySQL を自動的にスタートアップおよびシャットダウンできるようにするためには、このファイルと init スクリプトディレクトリとの間にリンクを作成してください。たとえば、MySQL の安全なスタートアップおよびシャットダウンを確実にするには、次のコマンドを使用して適切なリンクを追加します。

shell> ln /etc/init.d/mysql /etc/rc3.d/S91mysqlshell> ln /etc/init.d/mysql /etc/rc0.d/K02mysql

MySQL を削除する場合、インストールされるパッケージ名は mysql です。これを pkgrm コマンドと合わせて使用してインストールを削除できます。

Solaris パッケージファイル形式を使用している場合にアップグレードするには、更新パッケージをインストールする前に既存のインストールを削除する必要があります。パッケージを削除しても既存のデータベース情報は削除されません。サーバー、バイナリ、およびサポートファイルのみが削除されます。したがって、通常のアップグレード手順は次のようになります。

shell> mysqladmin shutdownshell> pkgrm mysqlshell> pkgadd -d mysql-5.6.23-solaris10-x86_64.pkgshell> mysqld_safe &shell> mysql_upgrade

アップグレードを実行する前に、セクション2.11「MySQL のアップグレードとダウングレード」の注記を確認してください。

2.7.2 IPS を使用して MySQL を OpenSolaris にインストールする

OpenSolaris では、MySQL の標準パッケージはコアリポジトリにあります。MySQL パッケージは MySQL の特定のリリースに基づいており、定期的に更新されます。最新のリリースは、ネイティブの Solaris PKG、tar、またはソースインストールを使用する必要があります。ネイティブ OpenSolaris パッケージは、ネイティブサービス管理ツールを使用して、自動スタートアップおよびリカバリなど MySQL インストールを容易に制御できるように、SMF ファイルを含みます。

MySQL を OpenSolaris にインストールするには、pkg コマンドを使用します。root としてログインする必要があります。あるいは、次の例に示すように pfexec ツールを使用します。

shell> pfexec pkg install SUNWmysql56

パッケージセットは、MySQL クライアントライブラリを含む SUNWmysql56lib、SMF および構成ファイルなどのルートコンポーネントを含む SUNWmysql56r、およびスクリプト、バイナリツール、およびその他のファイルを含む SUNWmysql56u の、3 つの個別のパッケージをインストールします。これらのパッケージは、対応するコンポーネントのみが必要な場合は個別にインストールできます。

MySQL ファイルは /usr/mysql にインストールされ、サブディレクトリ (binlib、など.) をバージョン固有のディレクトリにシンボリックリンクします。MySQL 5.6 では、完全なインストールは /usr/mysql/5.6 に置かれます。デフォルトのデータディレクトリは /var/mysql/5.6/data です。構成ファイルは /etc/mysql/5.6/my.cnf にインストールされます。このレイアウトにより、MySQL の複数のバージョンを、ほかのバージョンからのデータおよびバイナリを上書きすることなくインストールできます。

インストールが終了したら、mysql_install_db を実行してデータベースを初期化し、mysql_secure_installation を使用してインストールをセキュアにします。

SMF を使用する MySQL インストールの管理

インストールが終了したら、インストール済みの SMF 構成を使用して MySQL Server を起動および停止できます。サービス名は mysql、あるいは複数のバージョンをインストールしている場合は、mysql:version_56 のようにフルバージョン名を使用してください。MySQL を起動して、ブート時に起動できるようにするには:

shell> svcadm enable mysql

ブート時の MySQL の起動を無効にし、MySQL Server が実行している場合はシャットダウンするには、次を使用します。

shell> svcadm disable mysql

たとえば構成ファイルの変更後などに MySQL を再起動するには、restart オプションを使用します。

shell> svcadm restart mysql

SMF を使用してデータディレクトリを構成し、フル 64 ビットモードを有効にすることも可能です。たとえば、MySQL が使用するデータディレクトリを設定するには:

shell> svccfg svc:> select mysql:version_56 svc:/application/database/mysql:version_56> setprop mysql/data=/data0/mysql

デフォルトでは、32 ビットバイナリが使用されます。64 ビットプラットフォームで 64 ビットサーバーを有効にするには、enable_64bit パラメータを設定します。例:

svc:/application/database/mysql:version_56> setprop mysql/enable_64bit=1 

これらのオプションの設定後、SMF のリフレッシュが必要です。

shell> svcadm refresh mysql

2.8 FreeBSD に MySQL をインストールする

このセクションでは、FreeBSD Unix のバリアントへの MySQL のインストールに関する情報を提供します。

オラクルが提供するバイナリ配布を使用して、MySQL を FreeBSD にインストールできます。詳細については、セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」を参照してください。

MySQL のインストールでもっとも容易な (かつ推奨される) 方法は mysql-server ポートおよび mysql-client ポートを使用することです。それらは http://www.freebsd.org/ で入手できます。これらのポートを使用することで次のメリットがあります。

  • 使用している FreeBSD バージョンで動作することが知られている、すべての最適化を行なった実働可能な MySQL。

  • 自動構成およびビルド。

  • /usr/local/etc/rc.d にインストールされたスタートアップスクリプト。

  • どのファイルがインストールされているかを確認するための pkg_info -L の使用。

  • 使用しているマシンで MySQL が必要でなくなった場合にそれを削除できる pkg_delete の使用。

MySQL ビルドプロセスが機能するには GNU make (gmake) が必要です。GNU make が利用できない場合、MySQL をコンパイルする前にインストールする必要があります。

ポートシステムを使用してインストールするには:

# cd /usr/ports/databases/mysql51-server
# make
...
# cd /usr/ports/databases/mysql51-client
# make
...

標準ポートインストールでは、サーバーは /usr/local/libexec/mysqld に置かれ、MySQL Server のスタートアップスクリプトは /usr/local/etc/rc.d/mysql-server に置かれます。

BSD 実装に関する追加の注記:

  • ポートシステムを使用して MySQL をインストールしたあとに削除するには:

    # cd /usr/ports/databases/mysql51-server
    # make deinstall
    ...
    # cd /usr/ports/databases/mysql51-client
    # make deinstall
    ...
  • MySQL の現在の日付に問題がある場合には、TZ 変数の設定が役に立ちます。セクション2.12「環境変数」を参照してください。

2.9 ソースから MySQL をインストールする

MySQL をソースコードからビルドすると、ビルドパラメータ、コンパイラ最適化、およびインストールの場所をカスタマイズできます。MySQL を実行できることがわかっているシステムのリストは、https://www.mysql.com/support/supportedplatforms/database.htmlを参照してください。

ソースからのインストールに進む前に、使用しているプラットフォーム用に事前コンパイルされたバイナリ配布をオラクルが作成しているかどうか、およびそれがニーズに適合しているかどうかをチェックしてください。弊社は、パフォーマンスを最適化するために、最善のオプションでバイナリをビルドすることを保証するべく多大な努力をしています。バイナリ配布のインストール手順は、セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」を参照してください。

ソースのインストール方法

MySQL をソースからインストールするには、2 つの方法があります。

  • 標準の MySQL ソース配布を使用します。標準の配布を取得するには、セクション2.1.3「MySQL の取得方法」を参照してください。標準の配布からのビルドの詳細は、セクション2.9.2「標準ソース配布を使用して MySQL をインストールする」を参照してください。

    標準の配布は、圧縮 tar ファイル、Zip アーカイブ、または RPM パッケージとして入手可能です。配布ファイルは、mysql-VERSION.tar.gz, mysql-VERSION.zip、または mysql-VERSION.rpm という形式の名前を持ちます。ここで、VERSION5.6.23 などの番号です。ソース配布のファイル名は汎用でプラットフォーム名を含まないのに対し、バイナリ配布名にはその配布が対象とするシステムのタイプを示すプラットフォーム名が含まれる (たとえば、pc-linux-i686 または winx64) ことから、ソースファイルを事前コンパイル済みのバイナリ配布と区別できます。

  • MySQL 開発ツリーを使用します。開発ツリーからのビルドの詳細は、セクション2.9.3「開発ソースツリーを使用して MySQL をインストールする」を参照してください。

ソースインストールのシステム要件

MySQL をソースからインストールするためには、いくつかの開発ツールが必要です。これらのツールの一部は、標準ソース配布または開発ソースツリーのいずれを使用するかにかかわらず必要です。その他のツールは、どちらのインストール方法を使用するかによって必要かどうかが決まります。

MySQL をソースからインストールするには、インストール方法にかかわらず次のツールがシステムになければなりません。

  • CMake。これはすべてのプラットフォームでビルドフレームワークとして使用されます。CMakehttp://www.cmake.org からダウンロードできます。

  • 優良な make プログラム。一部のプラットフォームには独自の make 実装が備わっていますが、GNU make 3.75 以降を使用することを強くお勧めします。これは、使用しているシステムですでに gmake として使用可能になっている場合があります。GNU make は、http://www.gnu.org/software/make/ から入手可能です。

  • 動作する ANSI C++ コンパイラ。GCC 4.2.1 以降、Sun Studio 12 以降、Visual Studio 2010 以降、および多くの最新のベンダー供給のコンパイラが機能することが知られています。

  • テストスクリプトを実行する場合は、Perl が必要です。ほとんどの Unix 類似システムには Perl が含まれます。Windows では、ActiveState Perl などのバージョンが使用できます。

MySQL を標準ソース配布からインストールするには、配布ファイルをアンパックするために次のツールのいずれかが必要です。

  • .tar.gz で圧縮された tar ファイルの場合: 配布を圧縮解除するための GNU gunzip、およびそれをアンパックするための妥当な tar。使用している tar プログラムが z オプションをサポートする場合は、ファイルの展開とアンパックの両方を実行できます。

    GNU tar が機能することが知られています。一部のオペレーティングシステムで提供される標準の tar は、MySQL 配布内の長いファイル名をアンパックできません。GNU tar をダウンロードしてインストールするか、プリインストールバージョンの GNU tar が利用可能であればそれを使用します。通常、これは gnutargtar、または tar という名前です (/usr/sfw/bin または /usr/local/bin などの GNU または Free Software ディレクトリ内)。GNU tar は、http://www.gnu.org/software/tar/ から入手可能です。

  • .zip Zip アーカイブの場合: WinZip または .zip ファイルを読み取ることができるその他のツール。

  • .rpm RPM パッケージの場合: 配布のビルドに使用される rpmbuild プログラムでアンパックできます。

MySQL を開発ソースツリーからインストールするには、次の追加ツールが必要です。

  • 開発ソースコードを取得するには、次のリビジョン管理システムが必要です。

    • Git: GitHub ヘルプには、さまざまなプラットフォームに Git をダウンロードしてインストールするための説明があります。MySQL は、2014 年 9 月に正式に GitHub に参加しました。MySQL の GitHub への移動の詳細は、MySQL Release Engineering ブログ MySQL on GitHub のお知らせを参照してください。

    • Bazaar: Bazaar VCS Web サイトには、さまざまなプラットフォームに Bazaar をダウンロードしてインストールするための説明があります。Bazaar は、Python をサポートするすべてのプラットフォームでサポートされ、そのためすべての Linux、Unix、Windows、または OS X ホストと互換です。

  • bison 2.1 以降。http://www.gnu.org/software/bison/ から入手可能です。(バージョン 1 はサポートされなくなりました。)可能であれば bison の最新バージョンを使用します。問題が生じた場合は、以前のバージョンに戻るのではなく、より新しいバージョンにアップグレードします。

    bison は、http://www.gnu.org/software/bison/ から入手可能です。bison for Windows は、http://gnuwin32.sourceforge.net/packages/bison.htm からダウンロードできます。Complete package, excluding sources のラベルのパッケージをダウンロードします。Windows では、bison のデフォルトの場所は C:\Program Files\GnuWin32 ディレクトリです。ディレクトリ名にスペースが含まれるため、一部のユーティリティーでは bison を検索できない場合があります。また、パスにスペースがある場合 Visual Studio がフリーズすることがあります。これらの問題は、たとえば C:\GnuWin32 など、スペースを含まないディレクトリにインストールすることで解決できます。

  • OpenSolaris および Solaris Express では、bison のほかに m4 もインストールされていなければなりません。m4http://www.gnu.org/software/m4/ から入手可能です。

注記

プログラムをインストールする必要がある場合は、PATH 環境変数を、プログラムが置かれるディレクトリを含むように変更します。セクション4.2.10「環境変数の設定」を参照してください。

問題が発生してバグをレポートする必要が生じた場合には、セクション1.6「質問またはバグをレポートする方法」 の手順に従ってください。

2.9.1 ソースインストールの MySQL のレイアウト

デフォルトでは、MySQL をソースからコンパイルしたあとにインストールすると、インストール手順によりファイルが /usr/local/mysql にインストールされます。インストールディレクトリの下のコンポーネントの場所は、バイナリ配布の場合と同じです。表2.3「一般的な Unix/Linux バイナリパッケージの MySQL インストールのレイアウト」セクション2.3.1「Microsoft Windows 上での MySQL のインストールレイアウト」を参照してください。デフォルトとは異なるインストールの場所を構成するには、セクション2.9.4「MySQL ソース構成オプション」で説明されるオプションを使用します。

2.9.2 標準ソース配布を使用して MySQL をインストールする

標準ソース配布を使用して MySQL をインストールするには:

  1. システムが、セクション2.9「ソースから MySQL をインストールする」にリストされるツール要件を満たすことを確認します。

  2. 配布ファイルを セクション2.1.3「MySQL の取得方法」 の説明に従って取得します。

  3. このセクションの説明に従って、配布の構成、ビルド、およびインストールを実行します。

  4. セクション2.10「インストール後のセットアップとテスト」の説明に従って、インストール後の手順を実行します。

MySQL 5.6 では、すべてのプラットフォームで CMake がビルドフレームワークとして使用されます。ここに記載する説明で、動作するインストールを作成できるでしょう。CMake を使用して MySQL をビルドする方法の詳細は、CMake による MySQL Server のビルド方法を参照してください。

ソース RPM から開始する場合は、インストールするバイナリ RPM を、次のコマンドを使用して作成します。rpmbuild がない場合は代わりに rpm を使用します。

shell> rpmbuild --rebuild --clean MySQL-VERSION.src.rpm

結果として 1 つまたは複数の RPM パッケージが生成されます。セクション2.5.5「RPM パッケージを使用して MySQL を Linux にインストールする」の指示に従ってインストールします。

圧縮 tar ファイルまたは Zip アーカイブソース配布からのインストールのシーケンスは、ソース配布はすべてのプラットフォームで使用されること、および配布を構成してコンパイルする手順が含まれる点を除き、一般的なバイナリ配布のプロセスと同様です (セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」を参照してください)。たとえば、Unix の圧縮 tar ファイルのソース配布では、基本的なインストールコマンドシーケンスは次のようになります。

# Preconfiguration setup
shell> groupadd mysqlshell> useradd -r -g mysql mysql# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gzshell> cd mysql-VERSIONshell> cmake .shell> makeshell> make install# End of source-build specific instructions
# Postinstallation setup
shell> cd /usr/local/mysqlshell> chown -R mysql .shell> chgrp -R mysql .shell> scripts/mysql_install_db --user=mysqlshell> chown -R root .shell> chown -R mysql datashell> bin/mysqld_safe --user=mysql &# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

mysql_install_db は、my.cnf という名前のデフォルトオプションファイルを基本インストールディレクトリに作成します。このファイルは my-default.cnf という名前の配布パッケージに含まれるテンプレートから作成されます。詳細は、セクション5.1.2.2「サンプルのデフォルトサーバー構成ファイルの使用」 を参照してください。

このあと、ソースビルド固有の手順について、より詳細に説明します。

注記

ここに示した手順では、MySQL アカウントにパスワードは設定しません。その手順のあとは、セクション2.10「インストール後のセットアップとテスト」に進み、インストール後のセットアップとテストを実行します。

構成前のセットアップの実行

Unix では、MySQL Server を実行してデータベースディレクトリを所有する、mysql ユーザーおよびグループをセットアップします。詳細は、セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」mysql システムユーザーおよびグループの作成を参照してください。次に、指定された場合を除き、mysql ユーザーとして次の手順を実行します。

配布の取得とアンパック

配布をアンパックするディレクトリを選択してそこに移動します。

配布ファイルを セクション2.1.3「MySQL の取得方法」 の説明に従って取得します。

配布を現在のディレクトリにアンパックします。

  • 圧縮 tar ファイルをアンパックするには、tarz オプションをサポートする場合、このコマンドで配布の圧縮解除とアンパックを実行できます。

    shell> tar zxvf mysql-VERSION.tar.gz

    tarz オプションをサポートしない場合は、gunzip を使用して配布をパックし、tar を使用してアンパックします。

    shell> gunzip < mysql-VERSION.tar.gz | tar xvf -

    あるいは、CMake を使用して配布を圧縮解除してアンパックすることも可能です。

    shell> cmake -E tar zxvf mysql-VERSION.tar.gz
  • Zip アーカイブをアンパックするには、WinZip または .zip ファイルを読み取ることができるその他のツールを使用します。

配布ファイルをアンパックすると、mysql-VERSION という名前のディレクトリが作成されます。

配布の構成

アンパックした配布のトップレベルのディレクトリに場所を変更します。

shell> cd mysql-VERSION

ソースディレクトリを構成します。最低限の構成を行うコマンドには、構成のデフォルトをオーバーライドするオプションは含まれません。

shell> cmake .

Windows では、開発環境を指定します。たとえば、次のコマンドはそれぞれ 32 ビットまたは 64 ビッドの MySQL ビルドを構成します。

shell> cmake . -G "Visual Studio 10 2010"shell> cmake . -G "Visual Studio 10 2010 Win64"

OS X で Xcode IDE を使用するには:

shell> cmake . -G Xcode

cmake を実行する場合、コマンド行にオプションを追加するとよいでしょう。次にいくつかの例を示します。

  • -DBUILD_CONFIG=mysql_release: オラクルが公式な MySQL リリースのバイナリ配布を生成するために使用するのと同じビルドオプションでソースを構成します。

  • -DCMAKE_INSTALL_PREFIX=dir_name: 特定の場所にインストールするように配布を構成します。

  • -DCPACK_MONOLITHIC_INSTALL=1: make package が、複数のファイルではなく単独のインストールファイルを生成するようにします。

  • -DWITH_DEBUG=1: 配付をデバッグサポート付きでビルドします。

オプションのより詳細なリストは、セクション2.9.4「MySQL ソース構成オプション」を参照してください。

構成オプションをリストするには、次のコマンドのいずれかを使用します。

shell> cmake . -L # overview
shell> cmake . -LH # overview with help text
shell> cmake . -LAH # all params with help text
shell> ccmake . # interactive display

CMake が失敗する場合は、異なるオプションで再実行して再構成する必要がある場合があります。再構成を行う場合は、次に注意してください。

  • CMake を以前に実行したあとで実行すると、以前の起動時に収集した情報を使用する場合があります。この情報は CMakeCache.txt に格納されています。CMake は、起動時にそのファイルを探し、存在すればその情報がまだ正しいと仮定して内容を読み込みます。この仮定は再構成した場合には無効です。

  • CMake を実行するたびに、make を再実行して再コンパイルする必要があります。しかし、前のビルドの古いオブジェクトファイルが異なる構成オプションでコンパイルされている場合、それらを最初に削除する場合もあります。

古いオブジェクトファイルまたは構成情報が使用されることを予防するために、Unix では CMake を再実行する前に次のコマンドを実行します。

shell> make cleanshell> rm CMakeCache.txt

あるいは、Windows の場合:

shell> devenv MySQL.sln /cleanshell> del CMakeCache.txt

ソースツリーからビルドする場合 (あとで説明します)、CMakeCache.txt ファイルおよびすべてのビルドファイルはビルドディレクトリにあるため、オブジェクトファイルおよびキャッシュされた構成情報を削除するには、そのディレクトリを削除します。

MySQL メーリングリストにメールを送信して構成の支援を依頼する場合は、CMakeFiles ディレクトリのファイルで、失敗に関する有用な情報をまずチェックしてください。バグレポートを提出する際は、セクション1.6「質問またはバグをレポートする方法」の説明に従ってください。

配布のビルド

Unix の場合:

shell> makeshell> make VERBOSE=1

2 番目のコマンドは、コンパイル済みの各ソースに対するコマンドを表示するため、VERBOSE をセットします。

GNU make を使用し、それが gmake としてインストールされているシステムでは、代わりに gmake を使用します。

Windows の場合:

shell> devenv MySQL.sln /build RelWithDebInfo

ソースツリーからビルドして、ツリーをクリーンな状態に保つことができます。トップレベルのソースディレクトリが、現在の作業ディレクトリの下の mysql-src という名前のディレクトリの場合、次のように、同じレベルの bld という名前のディレクトリにビルドできます。

shell> mkdir bldshell> cd bldshell> cmake ../mysql-src

ビルドディレクトリは、実際にソースツリーの外部になければならないわけではありません。たとえば、ディレクトリ内にビルドするには、トップレベルのソースツリーの下の bld という名前のディレクトリにビルドできます。そのためには、現在の作業ディレクトリとして mysql-src から開始します。

shell> mkdir bldshell> cd bldshell> cmake ..

複数のソースツリーが同じレベルにある場合 (たとえば、複数のバージョンの MySQL をビルドする場合)、2 番目の方法が有利です。最初の方法では、すべてのビルドディレクトリを同じレベルに置くため、それぞれに一意の名前が必要です。2 番目の方法では、各ソースツリー内のビルドディレクトリに同じ名前を使用できます。

コンパイル段階に進んだが、配布がビルドされない場合は、セクション2.9.5「MySQL のコンパイルに関する問題」を参照してください。それでも問題が解決しない場合は、セクション1.6「質問またはバグをレポートする方法」を参照して、それをバグデータベースに入力してください。必要なツールの最新バージョンをインストール済みで、構成ファイルを処理しようとしてそれらのツールがクラッシュする場合は、それもレポートしてください。ただし、コマンドが見つかりませんというエラーや、必要なツールに関して同様の問題がある場合は、レポートしないでください。代わりに、必要なツールがすべてインストール済みであり、シェルがそれらを検索できるように PATH 変数が正しく設定されていることを確認してください。

配付のインストール

Unix の場合:

shell> make install

これは、ファイルを構成されたインストールディレクトリ (デフォルトでは /usr/local/mysql) にインストールします。コマンドを root として実行する必要がある場合があります。

特定のディレクトリにインストールするには、コマンド行に DESTDIR パラメータを追加します。

shell> make install DESTDIR="/opt/mysql"

あるいは、任意の場所にインストールできるインストールパッケージファイルを生成します。

shell> make package

この操作は、一般的なバイナリ配布パッケージのようにインストールできる、1 つまたは複数の .tar.gz ファイルを生成します。セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」を参照してください。CMake-DCPACK_MONOLITHIC_INSTALL=1 を使用して実行すると、その操作で単独のファイルが作成されます。そうでない場合は複数のファイルが作成されます。

Windows では、データディレクトリを生成してから、.zip アーカイブインストールパッケージを作成します。

shell> devenv MySQL.sln /build RelWithDebInfo /project initial_databaseshell> devenv MySQL.sln /build RelWithDebInfo /project package

結果の .zip アーカイブは任意の場所にインストールできます。セクション2.3.5「非インストール Zip アーカイブを使用して Microsoft Windows に MySQL をインストールする」を参照してください。

インストール後のセットアップの実行

インストールプロセスの残りの部分は、構成ファイルのセットアップ、コアデータベースの作成、および MySQL Server の開始などです。手順は、セクション2.10「インストール後のセットアップとテスト」を参照してください。

注記

MySQL の付与テーブルにリストされているアカウントには、最初はパスワードがありません。サーバーの起動後に、セクション2.10「インストール後のセットアップとテスト」の説明に従って、それらにパスワードを設定する必要があります。

2.9.3 開発ソースツリーを使用して MySQL をインストールする

このセクションでは、MySQL を最新の開発ソースコードからインストールする方法を説明します。最新の開発ソースコードは現在、GitHub および Launchpad の両方にホストされています。MySQL Server のソースコードをこれらのリポジトリホスティングサービスのいずれかから取得するには、ローカルの MySQL Git リポジトリまたはローカルの MySQL Bazaar ブランチをセットアップします。

  • GitHub では、MySQL Server およびその他の MySQL プロジェクトは MySQL ページにあります。MySQL Server プロジェクトは、MySQL 5.5、5.6、および 5.7 のブランチを含む単独のリポジトリです。

    MySQL は、2014 年 9 月に正式に GitHub に参加しました。MySQL の GitHub への移動の詳細は、MySQL Release Engineering ブログ MySQL on GitHub のお知らせを参照してください。

  • Launchpad では、MySQL Server、MySQL Workbench などを含む MySQL プロジェクトは、Oracle/MySQL エンジニアリングページにあります。MySQL Server のみに関係するリポジトリについては、MySQL Server ページを参照してください。

開発ソースからのインストールの前提条件

MySQL を開発ソースツリーからインストールするには、セクション2.9「ソースから MySQL をインストールする」に概説されるツール要件をシステムが満たしていなければなりません。

MySQL Git リポジトリのセットアップ

MySQL Git リポジトリをマシンにセットアップするには、次の手順を使用します。

  1. MySQL Git リポジトリをマシンにクローニングします。次のコマンドは、MySQL Git リポジトリを mysql-server という名前のディレクトリにクローニングします。ダウンロードサイズは約 437M バイトです。接続の速度によっては、最初のダウンロードを完了するのにしばらく時間がかかります。

    ~$ git clone https://github.com/mysql/mysql-server.git
    Cloning into 'mysql-server'...
    remote: Counting objects: 1035465, done.
    remote: Total 1035465 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (1035465/1035465), 437.48 MiB | 5.10 MiB/s, done.
    Resolving deltas: 100% (855607/855607), done.
    Checking connectivity... done.
    Checking out files: 100% (21902/21902), done.
  2. クローニング操作が完了すると、ローカルの MySQL Git リポジトリは次のようになります。

    ~$ cd mysql-server
    ~/mysql-server$ ls
    BUILD COPYING libmysqld regex tests
    BUILD-CMAKE dbug libservices scripts unittest
    client Docs man sql VERSION
    cmake extra mysql-test sql-bench vio
    CMakeLists.txt include mysys sql-common win
    cmd-line-utils INSTALL-SOURCE packaging storage zlib
    config.h.cmake INSTALL-WIN-SOURCE plugin strings
    configure.cmake libmysql README support-files
  3. git branch -r コマンドを使用して、MySQL リポジトリのリモート追跡ブランチを表示します。

    ~/mysql-server$ git branch -r origin/5.5 origin/5.6 origin/5.7 origin/HEAD -> origin/5.7
  4. ローカルリポジトリにチェックアウトされたブランチを表示するには、git branch コマンドを発行します。MySQL Git リポジトリをクローニングしたとき、MySQL 5.7 ブランチが自動的にチェックアウトされています。アスタリスクにより、5.7 ブランチがアクティブなブランチであることが示されます。

    ~/mysql-server$ git branch
    * 5.7
  5. 異なる MySQL ブランチをチェックアウトするには、ブランチ名を指定して git checkout コマンド実行します。たとえば、MySQL 5.6 ブランチをチェックアウトするには:

    ~/mysql-server$ git checkout 5.6
    Branch 5.6 set up to track remote branch 5.6 from origin.
    Switched to a new branch '5.6'
  6. git branch をふたたび実行して、MySQL 5.6 ブランチが存在することを確認します。最後にチェックアウトした MySQL 5.6 にアスタリスクがマークされ、それがアクティブなブランチであることが示されています。

    ~/mysql-server$ git branch
    * 5.6 5.7

    git checkout コマンドも、ブランチの切り替えに使用されます。たとえば、ふたたび MySQL 5.7 をアクティブブランチにするには、git checkout 5.7 を実行します。

  7. MySQL Git リポジトリを最初にセットアップしたあとの変更を取得するには、更新したいブランチに切り替えて git pull コマンドを発行します。

    ~/mysql-server$ git checkout 5.6
    ~/mysql-server$ git pull

    コミット履歴を調べるには、git log オプションを使用します。

    ~/mysql-server$ git log

    GitHub MySQL サイトでコミット履歴とソースコードを参照することもできます。

    変更や疑問のあるコードがある場合は、電子メールを MySQL internals メーリングリストに送信してください。セクション1.5.1「MySQL メーリングリスト」 を参照してください。パッチの貢献については、MySQL Server への貢献を参照してください。

  8. MySQL Git リポジトリをクローニングしてビルドするブランチをチェックアウトしたら、MySQL Server をソースコードからビルドできます。説明はセクション2.9.2「標準ソース配布を使用して MySQL をインストールする」にありますが、配布の取得およびアンパックに関する部分はスキップします。

    本番環境マシン上の配布ソースツリーからのビルドをインストールする場合は注意が必要です。インストールコマンドが、ライブリリースインストールを上書きすることがあります。MySQL がインストール済みであり、それを上書きしたくない場合は、CMAKE_INSTALL_PREFIXMYSQL_TCP_PORT、および MYSQL_UNIX_ADDR オプションの値を、本番環境サーバーで使用したものとは異なるものにして、CMake を実行します。複数のサーバーが相互に干渉することを防ぐ方法の詳細は、セクション5.3「1 つのマシン上での複数の MySQL インスタンスの実行」を参照してください。

    新しいインストールを厳密に検証します。たとえば、新機能をクラッシュさせてみてください。make test の実行から始めてみてください。セクション24.1.2「MySQL テストスイート」を参照してください。

MySQL Bazaar ブランチのセットアップ

MySQL Bazaar ブランチをマシンにセットアップするには、次の手順を使用します。

  1. Launchpad にホストされている MySQL 開発ソースコードのコピーを取得するには、新しい Bazaar ブランチを作成します。まだ Bazaar リポジトリのディレクトリをセットアップしていない場合は、新しいディレクトリを初期化する必要があります。

    shell> mkdir mysql-servershell> bzr init-repo --trees mysql-server

    これは 1 回かぎりの操作です。

  2. 初期化されたリポジトリディレクトリがあることを前提に、パブリック MySQL Server リポジトリをブランチして、ローカルのソースツリーを作成します。特定のバージョンのブランチを作成するには:

    shell> cd mysql-servershell> bzr branch lp:mysql-server/5.6 mysql-5.6

    これはソースツリーごとに一度だけの操作です。mysql-server ディレクトリで、複数のバージョンの MySQL のソースツリーをブランチできます。

    接続の速度によっては、最初のダウンロードを完了するのにしばらく時間がかかります。最初のツリーをダウンロードすれば、追加のツリーのダウンロードにかかる時間は大幅に短くなるはずです。

  3. Bazaar ブランチからビルドするときは、アクティブなブランチのコピーを作成すると、元のブランチの内容に影響を及ぼさずに構成その他の変更を行えます。これを行うには、元のブランチからブランチ処理を実行します。

    shell> bzr branch mysql-5.6 mysql-5.6-build
  4. ブランチを最初にセットアップしたあとの変更を取得するには、定期的に pull オプションを使用して更新します。このコマンドは、ローカルコピーのトップレベルディレクトリで使用します。

    shell> bzr pull

    ツリーの変更セットのコメントを調べるには、bzrlog オプションを使用します。

    shell> bzr log

    変更セット、コメント、およびソースコードは、Launchpad MySQL Server ページでオンラインでも参照できます。

    diff (変更) や疑問のあるコードがある場合は、お気軽に電子メールを MySQL internals メーリングリストに送信してください。セクション1.5.1「MySQL メーリングリスト」 を参照してください。パッチの貢献については、「Contributing to MySQL Server」を参照してください。

  5. ローカルブランチを作成したら、MySQL Server をソースコードからビルドできます。説明はセクション2.9.2「標準ソース配布を使用して MySQL をインストールする」にありますが、配布の取得およびアンパックに関する部分はスキップします。

    本番環境マシン上の配布ソースツリーからのビルドをインストールする場合は注意が必要です。インストールコマンドが、ライブリリースインストールを上書きすることがあります。MySQL がインストール済みであり、それを上書きしたくない場合は、CMAKE_INSTALL_PREFIXMYSQL_TCP_PORT、および MYSQL_UNIX_ADDR オプションの値を、本番環境サーバーで使用したものとは異なるものにして、CMake を実行します。複数のサーバーが相互に干渉することを防ぐ方法の詳細は、セクション5.3「1 つのマシン上での複数の MySQL インスタンスの実行」を参照してください。

    新しいインストールを厳密に検証します。たとえば、新機能をクラッシュさせてみてください。make test の実行から始めてみてください。セクション24.1.2「MySQL テストスイート」を参照してください。

2.9.4 MySQL ソース構成オプション

CMake プログラムを使用すると、MySQL ソース配布の構成方法を大幅に制御できます。通常これは、CMake コマンド行でオプションを使用して行います。CMake がサポートするオプションの詳細は、トップレベルのソースディレクトリで次のコマンドのいずれかを実行します。

shell> cmake . -LHshell> ccmake .

特定の環境変数を使用して CMake に影響を与えることもできます。セクション2.12「環境変数」を参照してください。

次の表は、使用可能な CMake オプションを示しています。デフォルトカラムで、PREFIXCMAKE_INSTALL_PREFIX オプションの値を意味します。これは、インストールのベースディレクトリを指定します。この値は、一部のインストールサブディレクトリの親の場所として使用されます。

表 2.11 MySQL ソース構成オプションリファレンス (CMake)

形式説明デフォルト導入削除
BUILD_CONFIG公式なリリースと同じビルドオプションを使用
CMAKE_BUILD_TYPE生成するビルドのタイプRelWithDebInfo
CMAKE_CXX_FLAGSC++ コンパイラのフラグ
CMAKE_C_FLAGSC コンパイラのフラグ
CMAKE_INSTALL_PREFIXインストールの基本ディレクトリ/usr/local/mysql
COMPILATION_COMMENTコンパイル環境に関するコメント
CPACK_MONOLITHIC_INSTALLパッケージビルドが単独のファイルを生成するかどうかOFF
DEFAULT_CHARSETデフォルトのサーバー文字セットlatin1
DEFAULT_COLLATIONデフォルトのサーバー照合順序latin1_swedish_ci
ENABLED_LOCAL_INFILELOAD DATA INFILE に LOCAL を有効にするかどうかOFF
ENABLED_PROFILINGクエリープロファイリングコードを有効にするかどうかON
ENABLE_DEBUG_SYNCDebug Sync サポートを有効にするかどうかON
ENABLE_DOWNLOADSオプションファイルをダウンロードするかどうかOFF
ENABLE_DTRACEDTrace サポートをインクルードするかどうか
ENABLE_GCOVgcov サポートをインクルードするかどうか5.6.3
ENABLE_GPROFgprof の有効化 (Linux ビルドのみに最適化)OFF5.6.6
IGNORE_AIO_CHECK-DBUILD_CONFIG=mysql_release とともに、libaio チェックを無視するOFF5.6.1
INNODB_PAGE_ATOMIC_REF_COUNTアトミックページ参照のカウントを有効または無効にするON5.6.16
INSTALL_BINDIRユーザー実行可能ファイルディレクトリPREFIX/bin
INSTALL_DOCDIRドキュメントディレクトリPREFIX/docs
INSTALL_DOCREADMEDIRREADME ファイルディレクトリPREFIX
INSTALL_INCLUDEDIRHeader ファイルディレクトリPREFIX/include
INSTALL_INFODIRInfo ファイルディレクトリPREFIX/docs
INSTALL_LAYOUT事前定義インストールレイアウトの選択STANDALONE
INSTALL_LIBDIRLibrary ファイルディレクトリPREFIX/lib
INSTALL_MANDIRManual ページディレクトリPREFIX/man
INSTALL_MYSQLSHAREDIR共有データディレクトリPREFIX/share
INSTALL_MYSQLTESTDIRmysql-test ディレクトリPREFIX/mysql-test
INSTALL_PLUGINDIRPlugin ディレクトリPREFIX/lib/plugin
INSTALL_SBINDIRサーバー実行可能ファイルディレクトリPREFIX/bin
INSTALL_SCRIPTDIRScripts ディレクトリPREFIX/scripts
INSTALL_SHAREDIRaclocal/mysql.m4 インストールディレクトリPREFIX/share
INSTALL_SQLBENCHDIRsql-bench ディレクトリPREFIX
INSTALL_SUPPORTFILESDIRその他のサポートファイルディレクトリPREFIX/support-files
MEMCACHED_HOMEmemcached へのパス[none]
MYSQL_DATADIRデータディレクトリ
MYSQL_MAINTAINER_MODEMySQL 管理者固有の開発環境を有効にするかどうかOFF
MYSQL_PROJECT_NAMEWindows/OS X プロジェクト名33065.6.5
MYSQL_TCP_PORTTCP/IP ポート番号3306
MYSQL_UNIX_ADDRUnix ソケットファイル/tmp/mysql.sock
ODBC_INCLUDESODBC インクルードディレクトリ
ODBC_LIB_DIRODBC ライブラリディレクトリ
OPTIMIZER_TRACEオプティマイザのトレースをサポートするかどうか5.6.3
SUNPRO_CXX_LIBRARYSolaris 10+ のクライアントリンクライブラリ5.6.20
SYSCONFDIRオプションファイルディレクトリ
TMPDIRtmpdir のデフォルト値5.6.16
WITHOUT_SERVERサーバーをビルドしないOFF
WITHOUT_xxx_STORAGE_ENGINEストレージエンジン xxx をビルドから除外
WITH_ASANAddressSanitizer 有効OFF5.6.15
WITH_BUNDLED_LIBEVENTndbmemcache のビルド時にバンドルされた libevent を使用ON
WITH_BUNDLED_MEMCACHEDndbmemcache のビルド時にバンドルされた memcached を使用ON
WITH_CLASSPATHJava 用 MySQL Cluster Connector のビルド時に使用するクラスパス。デフォルトは空の文字列です。
WITH_DEBUGデバッグサポートをインクルードするかどうかOFF
WITH_DEFAULT_COMPILER_OPTIONSデフォルトのコンパイラオプションを使用するかどうかON5.6.6
WITH_DEFAULT_FEATURE_SETデフォルトの機能セットを使用するかどうかON5.6.6
WITH_EDITLINEどの libedit/editline ライブラリを使用するかbundled5.6.12
WITH_EMBEDDED_SERVER組み込みサーバーをビルドするかどうかOFF
WITH_EMBEDDED_SHARED_LIBRARY共有組み込みサーバーライブラリをビルドするかどうかOFF5.6.17
WITH_ERROR_INSERTNDB ストレージエンジンのエラーインジェクションを有効化。本番用のバイナリのビルドには使用しないでください。OFF
WITH_EXTRA_CHARSETSどの追加文字セットをインクルードするかall
WITH_INNODB_MEMCACHEDmemcached 共有ライブラリを生成するかどうか。OFF
WITH_LIBEDITバンドルされた libedit ライブラリを使用ON5.6.12
WITH_LIBEVENTどの libevent ライブラリを使用するかbundled5.6.6
WITH_LIBWRAPlibwrap (TCP ラッパー) サポートをインクルードするかどうかOFF
WITH_NDBCLUSTER_STORAGE_ENGINENDB ストレージエンジンのビルドON
WITH_NDBMTDマルチスレッドのデータノードをビルド。ON
WITH_NDB_BINLOGmysqld によるバイナリのロギングをデフォルトで有効化。ON
WITH_NDB_DEBUGテストまたはトラブルシューティング用のデバッグビルドを生成。OFF
WITH_NDB_JAVAJava および ClusterJ のビルドのサポートを有効化。デフォルトで有効。MySQL Cluster のみでサポート。ON
WITH_NDB_PORTこのオプションでビルドされた管理サーバーが使用するデフォルトポート。ビルドにこのオプションが使用されなかった場合、管理サーバーのデフォルトポートは 1186 です。[none]
WITH_NDB_TESTNDB API テストプログラムをインクルード。OFF
WITH_READLINEバンドルされた readline ライブラリを使用OFF5.6.5
WITH_SSLSSL サポートのタイプbundled
WITH_UNIXODBCunixODBC サポートの有効化OFF
WITH_VALGRINDValgrind ヘッダーファイルをコンパイルするかどうかOFF
WITH_ZLIBzlib サポートのタイプsystem
WITH_xxx_STORAGE_ENGINEストレージエンジン xxx をサーバーに静的にコンパイル

次のセクションでは、CMake オプションについてより詳しく説明します。

boolean オプションでは、値を 1 または ON に指定してオプションを有効にするか、0 または OFF に指定して無効にします。

多くのオプションはコンパイル時のデフォルトを構成し、それらはサーバー起動時にオーバーライドできます。たとえば、デフォルトのインストールベースディレクトリ、TCP/IP ポート番号、および Unix ソケットファイルを構成する CMAKE_INSTALL_PREFIXMYSQL_TCP_PORT、および MYSQL_UNIX_ADDR の各オプションは、サーバー起動時に mysqld--basedir--port、および --socket オプションで変更できます。該当する場合は、構成オプションの説明で対応する mysqld スタートアップオプションを示します。

一般オプション

  • -DBUILD_CONFIG=mysql_release

    このオプションは、オラクルが公式な MySQL リリースのバイナリ配布を生成するために使用するのと同じビルドオプションでソース配布を構成します。

  • -DCMAKE_BUILD_TYPE=type

    生成するビルドのタイプ

    • RelWithDebInfo: 最適化を有効にし、デバッグ情報を生成します。これはデフォルトの MySQL ビルドタイプです。

    • Debug: 最適化を無効にし、デバッグ情報を生成します。このビルドタイプは、WITH_DEBUG オプションが有効な場合も使用されます。つまり、-DWITH_DEBUG=1-DCMAKE_BUILD_TYPE=Debug と同じ効果を持ちます。

  • -DCPACK_MONOLITHIC_INSTALL=bool

    このオプションは、make package 操作が複数のインストールパッケージファイルを作成するか、単独のファイルを作成するかに影響します。無効の場合、この操作は複数のインストールパッケージファイルを作成します。これは完全な MySQL インストールのサブセットのみをインストールする場合に便利です。有効の場合、すべてをインストールするための単独のファイルを作成します。

インストールレイアウトオプション

CMAKE_INSTALL_PREFIX オプションは、ベースインストールディレクトリを示します。コンポーネントの場所を示す、INSTALL_xxx という形式の名前を持つその他のオプションは、プリフィクスに相対的なものとして解釈され、その値は相対パス名です。それらの値はプリフィクスを含みません。

  • -DCMAKE_INSTALL_PREFIX=dir_name

    インストールのベースディレクトリ。

    この値は、サーバー起動時に --basedir オプションで設定できます。

  • -DINSTALL_BINDIR=dir_name

    ユーザープログラムをインストールする場所。

  • -DINSTALL_DOCDIR=dir_name

    ドキュメントをインストールする場所。

  • -DINSTALL_DOCREADMEDIR=dir_name

    README ファイルをインストールする場所。

  • -DINSTALL_INCLUDEDIR=dir_name

    ヘッダーファイルをインストールする場所。

  • -DINSTALL_INFODIR=dir_name

    Info ファイルをインストールする場所。

  • -DINSTALL_LAYOUT=name

    事前定義インストールレイアウトを選択します。

    • STANDALONE: .tar.gz および .zip パッケージで使用されるのと同じレイアウト。これはデフォルトです。

    • RPM: RPM パッケージと同様のレイアウト。

    • SVR4: Solaris パッケージレイアウト。

    • DEB: DEB パッケージレイアウト (実験的)。

    事前定義のレイアウトを選択できますが、ほかのオプションを指定することによって、個々のコンポーネントのインストール場所を変更できます。例:

    shell> cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
  • -DINSTALL_LIBDIR=dir_name

    ライブラリファイルをインストールする場所。

  • -DINSTALL_MANDIR=dir_name

    マニュアルページをインストールする場所。

  • -DINSTALL_MYSQLSHAREDIR=dir_name

    共有データファイルをインストールする場所。

  • -DINSTALL_MYSQLTESTDIR=dir_name

    mysql-test ディレクトリをインストールする場所。MySQL 5.6.12 では、このディレクトリのインストールを抑制するには、オプションを明示的に空の値にセットします (-DINSTALL_MYSQLTESTDIR=)。

  • -DINSTALL_PLUGINDIR=dir_name

    プラグインディレクトリの場所。

    この値は、サーバー起動時に --plugin_dir オプションで設定できます。

  • -DINSTALL_SBINDIR=dir_name

    mysqld サーバーをインストールする場所。

  • -DINSTALL_SCRIPTDIR=dir_name

    mysql_install_db をインストールする場所。

  • -DINSTALL_SHAREDIR=dir_name

    aclocal/mysql.m4 をインストールする場所。

  • -DINSTALL_SQLBENCHDIR=dir_name

    sql-bench ディレクトリをインストールする場所。このディレクトリのインストールを抑制するには、オプションを明示的に空の値にセットします (-DINSTALL_SQLBENCHDIR=)。

  • -DINSTALL_SUPPORTFILESDIR=dir_name

    追加のサポートファイルをインストールする場所。

  • -DMYSQL_DATADIR=dir_name

    MySQL データディレクトリの場所。

    この値は、サーバー起動時に --datadir オプションで設定できます。

  • -DODBC_INCLUDES=dir_name

    ODBC インクルードディレクトリの場所。Connector/ODBC の構成中に使用されることがあります。

  • -DODBC_LIB_DIR=dir_name

    ODBC ライブラリディレクトリの場所。Connector/ODBC の構成中に使用されることがあります。

  • -DSYSCONFDIR=dir_name

    デフォルトの my.cnf オプションファイルディレクトリ。

    この場所はサーバー起動時にはセットできませんが、--defaults-file=file_name オプションを使用して、指定されたオプションファイルでサーバーを起動できます。ここで、file_name はファイルへのフルパス名です。

  • -DTMPDIR=dir_name

    tmpdir システム変数に使用されるデフォルトの場所。指定しない場合は、値はデフォルトで P_tmpdir in <stdio.h> になります。このオプションは MySQL 5.6.16 で追加されました。

ストレージエンジンオプション

ストレージエンジンはプラグインとしてビルドされます。プラグインは、静的モジュール (サーバー内にコンパイル) または動的モジュール (使用する前に、INSTALL PLUGIN ステートメントまたは --plugin-load オプションを使用してサーバーにインストールする必要のあるダイナミックライブラリとしてビルド) としてビルドできます。一部のプラグインは、静的または動的ビルドをサポートしない場合があります。

MyISAMMERGEMEMORY、および CSV エンジンは必須 (必ずサーバー内にコンパイル) で、明示的にインストールする必要はありません。

ストレージエンジンをサーバー内に静的にコンパイルするには、-DWITH_engine_STORAGE_ENGINE=1 を使用します。許可される engine の値は、ARCHIVEBLACKHOLEEXAMPLEFEDERATEDINNOBASE (InnoDB)、NDB または NDBCLUSTER (NDB)、PARTITION (パーティション化のサポート)、および PERFSCHEMA (Performance Schema) です。例:

-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
注記

WITH_NDBCLUSTER_STORAGE_ENGINE は、MySQL Cluster を MySQL Cluster ソースを使用してビルドする場合のみサポートされます。ほかの MySQL ソースツリーまたは配布でのクラスタ化のサポートを有効にするために使用することはできません。MySQL Cluster ソース配布では、デフォルトで有効です。詳しくは、セクション18.2.2.3「Linux でのソースからの MySQL Cluster のビルド」およびセクション18.2.3.2「Windows でのソースからの MySQL Cluster のコンパイルとインストール」を参照してください。

ストレージエンジンをビルドから除外するには、-DWITHOUT_engine_STORAGE_ENGINE=1 を使用します。例:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1

あるストレージエンジンに対して -DWITH_engine_STORAGE_ENGINE-DWITHOUT_engine_STORAGE_ENGINE も指定されていない場合、そのエンジンは共有モジュールとしてビルドされるか、あるいは共有モジュールとしてビルドできない場合は除外されます。

機能オプション

  • -DCOMPILATION_COMMENT=string

    コンパイル環境に関する説明コメント。

  • -DDEFAULT_CHARSET=charset_name

    サーバーの文字セット。デフォルトでは、MySQL は latin1 (cp1252 西部ヨーロッパ) 文字セットを使用します。

    charset_name は、binaryarmscii8asciibig5cp1250cp1251cp1256cp1257cp850cp852cp866cp932dec8eucjpmseuckrgb2312gbkgeostd8greekhebrewhp8keybcs2koi8rkoi8ulatin1latin2latin5latin7maccemacromansjisswe7tis620ucs2ujisutf8utf8mb4utf16utf16leutf32 のいずれかにできます。許可される文字セットは、cmake/character_sets.cmake ファイルに CHARSETS_AVAILABLE の値としてリストされています。

    この値は、サーバー起動時に --character_set_server オプションで設定できます。

  • -DDEFAULT_COLLATION=collation_name

    サーバーの照合順序。デフォルトでは、MySQL は latin1_swedish_ci を使用します。各文字セットにどの照合順序を使用するかを決めるには SHOW COLLATION ステートメントを使用します。

    この値は、サーバー起動時に --collation_server オプションで設定できます。

  • -DENABLE_DEBUG_SYNC=bool

    Debug Sync 機能をサーバーにコンパイルするかどうか。この機能はテストとデバッグに使用されます。このオプションはデフォルトで有効ですが、MySQL でデバッグが有効に構成されていない場合は効果はありません。デバッグが有効で、Debug Sync を無効にする場合は、-DENABLE_DEBUG_SYNC=0 を使用します。

    コンパイルされる場合、実行時には Debug Sync はデフォルトで無効です。有効にするには、mysqld--debug-sync-timeout=N オプションを使用して起動します。ここで、N は 0 より大きいタイムアウト値です。(デフォルト値は 0 で、Debug Sync を無効にします。)N はそれぞれの同期ポイントのデフォルトのタイムアウトになります。

    Debug Sync 機能および同期点の使用方法についての説明は、「MySQL Internals: Test Synchronization」を参照してください。

  • -DENABLE_DOWNLOADS=bool

    オプションファイルをダウンロードするかどうか。たとえば、このオプションを有効にすると CMake は、ユニットテストを実行するためにテストスイートが使用する Google Test 配布をダウンロードします。

  • -DENABLE_DTRACE=bool

    DTrace プローブのサポートをインクルードするかどうか。DTrace については、セクション5.4「DTrace を使用した mysqld のトレース」を参照してください。

  • -DENABLE_GCOV=bool

    gcov サポートをインクルードするかどうか (Linux のみ)。

  • -DENABLE_GPROF=bool

    gprof を有効にするかどうか (最適化された Linux ビルドのみ)。このオプションは MySQL 5.6.6 で追加されました。

  • -DENABLED_LOCAL_INFILE=bool

    LOCAL 機能を LOAD DATA INFILE のクライアントライブラリで有効にするかどうか。

    このオプションは、クライアント側の LOCAL 機能を制御しますが、この機能は --local-infile オプションを使用して、サーバー側でサーバーの起動時に設定できます。セクション6.1.6「LOAD DATA LOCAL のセキュリティーの問題」を参照してください。

  • -DENABLED_PROFILING=bool

    クエリープロファイリングコードを有効にするかどうか (SHOW PROFILE および SHOW PROFILES ステートメントで)。

  • -DIGNORE_AIO_CHECK=bool

    Linux で -DBUILD_CONFIG=mysql_release オプションが与えられた場合、デフォルトで libaio ライブラリがリンクされていなければなりません。libaio がない場合、またはインストールしない場合、-DIGNORE_AIO_CHECK=1 を指定するとそのチェックを抑制できます。このオプションは MySQL 5.6.1 で追加されました。

  • -DINNODB_PAGE_ATOMIC_REF_COUNT=bool

    アトミックページ参照のカウントを有効にするか無効にするか。バッファープールからページをフェッチおよび解放してページの状態を追跡するのは、負荷が高く複雑な操作です。ページの相互排他ロックを使用してこれらの操作を追跡すると、うまく拡張しません。INNODB_PAGE_ATOMIC_REF_COUNT=ON (デフォルト) では、フェッチと解放は可能であればアトミックを使用して追跡されます。アトミックをサポートしないプラットフォームでは、アトミックページ参照のカウントを無効にするように INNODB_PAGE_ATOMIC_REF_COUNT=OFF を設定します。

    アトミックページ参照のカウントが有効の場合 (デフォルト)、サーバーのスタートアップ時に[Note] InnoDB: Using atomics to ref count buffer pool pagesがエラーログに出力されます。アトミックページ参照のカウントが無効の場合、代わりに[Note] InnoDB: Using mutexes to ref count buffer pool pagesが出力されます。

    INNODB_PAGE_ATOMIC_REF_COUNT は、MySQL Bug #68079 の解決策として導入されました。このオプションは MySQL 5.7.5 では削除されました。アトミックのサポートは、MySQL を MySQL 5.7.5 としてビルドするために必要です。そのためこのオプションは非推奨です。

  • -DMYSQL_MAINTAINER_MODE=bool

    MySQL 管理者固有の開発環境を有効にするかどうか。有効の場合、このオプションによりコンパイラの警告はエラーになります。

  • -DMYSQL_PROJECT_NAME=name

    Windows または OS X では、プロジェクトファイル名に組み込むプロジェクト名。このオプションは MySQL 5.6.5 で追加されました。

  • -DMYSQL_TCP_PORT=port_num

    サーバーが TCP/IP 接続を待機するポート番号。デフォルトは 3306 です。

    この値は、サーバー起動時に --port オプションで設定できます。

  • -DMYSQL_UNIX_ADDR=file_name

    サーバーがソケット接続を待機する Unix ソケットファイルのパス。これは絶対パス名でなければなりません。デフォルトは /tmp/mysql.sock です。

    この値は、サーバー起動時に --socket オプションで設定できます。

  • -DOPTIMIZER_TRACE=bool

    オプティマイザのトレースをサポートするかどうか。「MySQL Internals: Tracing the Optimizer」を参照してください。このオプションは MySQL 5.6.3 で追加されました。

  • -DWITH_ASAN=bool

    AddressSanitizer を有効にするかどうか (サポートするコンパイラの場合)。デフォルトはオフです。このオプションは MySQL 5.6.15 で追加されました。

  • -DWITH_DEBUG=bool

    デバッグサポートを含めるかどうか。

    デバッグサポートを有効にして MySQL を構成することにより、サーバーを起動するときに --debug="d,parser_debug" オプションを使用できるようになります。これにより、SQL ステートメントの処理に使用される Bison パーサーが、パーサートレースをサーバーの標準エラー出力にダンプします。一般的に、この出力はエラーログに書き込まれます。

  • -DWITH_DEFAULT_FEATURE_SET=bool

    cmake/build_configurations/feature_set.cmake からのフラグを使用するかどうか。このオプションは MySQL 5.6.6 で追加されました。

  • -DWITH_EDITLINE=value

    どの libedit/editline ライブラリを使用するか。許可される値は、bundled (デフォルト) および system です。

    WITH_EDITLINE は MySQL 5.6.12 で追加されました。これは、削除された WITH_LIBEDIT に代わるものです。

  • -DWITH_EMBEDDED_SERVER=bool

    libmysqld 組み込みサーバーライブラリをビルドするかどうか。

  • -DWITH_EMBEDDED_SHARED_LIBRARY=bool

    共有 libmysqld 組み込みサーバーライブラリをビルドするかどうか。このオプションは MySQL 5.6.17 で追加されました。

  • -DWITH_EXTRA_CHARSETS=name

    どの追加文字セットをインクルードするか。

    • all: すべての文字セット。これはデフォルトです。

    • complex: 複雑な文字セット。

    • none: 追加の文字セットなし。

  • -DWITH_INNODB_MEMCACHED=bool

    memcached 共有ライブラリ (libmemcached.so および innodb_engine.so) を生成するかどうか。

  • -DWITH_LIBEVENT=string

    どの libevent ライブラリを使用するか。許可される値は、bundled (デフォルト)、system、および yes です。system または yes を指定した場合、システム libevent ライブラリが存在すればそれが使用されます。システムライブラリが見つからない場合は、バンドルの libevent ライブラリが使用されます。libevent ライブラリは、InnoDB memcached が必要とします。

  • -DWITH_LIBEDIT=bool

    配布にバンドルされている libedit ライブラリを使用するかどうか。

    WITH_LIBEDIT は、MySQL 5.6.12 で削除されました。代わりに WITH_EDITLINE を使用します。

  • -DWITH_LIBWRAP=bool

    libwrap (TCP ラッパー) サポートを含めるかどうか。

  • -DWITH_READLINE=bool

    配布にバンドルされている readline ライブラリを使用するかどうか。readline はバンドルされなくなったため、このオプションは MySQL 5.6.5 で削除されました。

  • -DWITH_SSL={ssl_type|path_name}

  • 含める SSL サポートのタイプ (ある場合) または使用する OpenSSL インストールへのパス名。

    • ssl_type には、次の値のいずれかを指定できます。

      • no: SSL サポートなし。これは MySQL 5.6.6 以前のデフォルトです。5.6.6 では、これは許可される値ではなくなりました。デフォルトは bundled です。

      • yes: システムの SSL ライブラリが存在すればそれを使用します。そうでない場合は配布にバンドルされたライブラリを使用します。

      • bundled: 配布にバンドルされた SSL ライブラリを使用します。これは MySQL 5.6.6 のデフォルトです。

      • system: システムの SSL ライブラリを使用します。

    • path_name, MySQL 5.6.7 以降で許可されます。使用する OpenSSL インストールへのパス名です。CMake が、システムにインストールされた古いまたは誤った OpenSSL バージョンを検出して使用するのを防ぐことができるため、systemssl_type 値を使用するよりもこちらの方が推奨されます。(同じことをするためのもう 1 つの許可される方法は、CMAKE_PREFIX_PATH オプションを path_name にセットすることです。)

    SSL サポートの使用の詳細は、セクション6.3.10「セキュアな接続のための SSL の使用」を参照してください。

  • -DWITH_UNIXODBC=1

    Connector/ODBC に関して、unixODBC サポートを有効にします。

  • -DWITH_VALGRIND=bool

    Valgrind ヘッダーファイルをコンパイルするかどうか。これにより、Valgrind API が MySQL コードに公開されます。デフォルトは OFF です。

    Valgrind 対応のデバッグビルドを生成するには、-DWITH_VALGRIND=1 は通常 -DWITH_DEBUG=1 と組み合わされます。Building Debug Configurations を参照してください。

  • -DWITH_ZLIB=zlib_type

    一部の機能では、サーバーが COMPRESS() および UNCOMPRESS() 関数などの圧縮ライブラリサポートでビルドされていること、およびクライアント/サーバープロトコルの圧縮を必要とします。WITH_ZLIBzlib サポートのソースを示します。

    • bundled: 配布にバンドルされた zlib ライブラリを使用します。

    • system: システムの zlib ライブラリを使用します。これはデフォルトです。

  • -DWITHOUT_SERVER=bool

    MySQL Server なしでビルドするかどうか。デフォルトは OFF で、サーバーをビルドします。

コンパイラフラグ

  • -DCMAKE_C_FLAGS="flags"

    C コンパイラのフラグ。

  • -DCMAKE_CXX_FLAGS="flags"

    C++ コンパイラのフラグ。

  • -DWITH_DEFAULT_COMPILER_OPTIONS=bool

    cmake/build_configurations/compiler_options.cmake からのフラグを使用するかどうか。このオプションは MySQL 5.6.6 で追加されました。

    注記

    すべての最適化フラグは、MySQL ビルドチームによって慎重に選択およびテストされています。オーバーライドすると予期しない結果になることがあります。自己責任において行なってください。

  • -DSUNPRO_CXX_LIBRARY="lib_name"

    Solaris 10 以降で stlport4 の代わりに libCstd へのリンクを可能にします。サーバーは C++98 に依存するため、これはクライアントコードのみに機能します。使用例:

    cmake -DWITHOUT_SERVER=1 -DSUNPRO_CXX_LIBRARY=Cstd

    このオプションは MySQL 5.6.20 で追加されました。

独自の C および C++ コンパイラフラグを指定するには、最適化に影響しないフラグの場合は CMAKE_C_FLAGS および CMAKE_CXX_FLAGS CMake オプションを使用します。

独自のコンパイラフラグを提供する場合、CMAKE_BUILD_TYPE も指定するとよいでしょう。

たとえば、32 ビットリリースビルドを 64 ビット Linux マシンに作成するには次のようにします。

shell> mkdir bldshell> cd bldshell> cmake .. -DCMAKE_C_FLAGS=-m32 \-DCMAKE_CXX_FLAGS=-m32 \-DCMAKE_BUILD_TYPE=RelWithDebInfo

最適化に影響するフラグ (-Onumber) をセットする場合は、CMAKE_C_FLAGS_build_type および/または CMAKE_CXX_FLAGS_build_type オプションをセットする必要があります。ここで、build_typeCMAKE_BUILD_TYPE 値に対応します。デフォルトのビルドタイプ (RelWithDebInfo) に異なる最適化を指定するには、CMAKE_C_FLAGS_RELWITHDEBINFO および CMAKE_CXX_FLAGS_RELWITHDEBINFO オプションをセットします。たとえば、Linux で -O3 とデバッグシンボルを使用してコンパイルするには、次のようにします。

shell> cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"

MySQL Cluster のコンパイルのための CMake オプション

次のオプションは、MySQL Cluster を MySQL Cluster ソースでビルドする場合に使用されます。現在、MySQL 5.6 Server ツリーからのソースを使用する場合は、サポートされていません。

  • -DMEMCACHED_HOME=path

    path で示されるシステムディレクトリにインストールされた memcached (バージョン 1.6 以降) を使用してビルドを実行します。ビルドに使用されるこのインストールからのファイルは、memcached バイナリ、ヘッダーファイル、およびライブラリに加えて、memcached_utilities ライブラリおよびヘッダーファイル engine_testapp.h を含みます。

    ndbmemcache を、バンドルの memcached ソースを使用してビルドする場合 (WITH_BUNDLED_MEMCACHED オプション)、このオプションはセットしないでください。すなわち、デフォルトでバンドルのソースが使用されます。

    このオプションは MySQL Cluster NDB 7.2.2 で追加されました。

    SASL 承認および dtrace サポートの提供など、追加の CMake オプションは、外部ソースから memcached をコンパイルするときに使用可能ですが、これらのオプションは現在、MySQL Cluster にバンドルされる memcached ソースには有効にはなっていません。

  • -DWITH_BUNDLED_LIBEVENT={ON|OFF}

    MySQL Cluster を ndbmemcached サポート (MySQL Cluster NDB 7.2.2 以降) でビルドする際には、MySQL Cluster ソースに含まれる libevent を使用します。デフォルトで有効。OFF にすると、システムの libevent が代わりに使用されます。

  • -DWITH_BUNDLED_MEMCACHED={ON|OFF}

    MySQL Cluster ソースツリー (MySQL Cluster NDB 7.2.3 以降) に含まれる memcached ソースをビルドし、ndbmemcache エンジンをビルドするときにその結果の memcached サーバーを使用します。この場合、make installmemcached バイナリをインストールの bin ディレクトリに置き、ndbmemcache エンジン共有オブジェクトファイル ndb_engine.so をインストールの lib ディレクトリに置きます。

    このオプションはデフォルトで ON です。

  • -DWITH_CLASSPATH=path

    Java 用 MySQL Cluster Connector のビルド時に使用するクラスパスをセットします。デフォルトは空です。MySQL Cluster NDB 7.2.9 以降では、-DWITH_NDB_JAVA=OFF が使用されている場合はこのオプションは無視されます。

  • -DWITH_ERROR_INSERT={ON|OFF}

    NDB カーネルのエラーインジェクションを有効化します。テスト専用です。本番環境のバイナリのビルドに使用することは意図していません。デフォルトは OFF です。

  • -DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}

    mysqldNDB (NDBCLUSTER) ストレージエンジンのサポートのビルドおよびリンク。デフォルトは ON です。

  • -DWITH_NDBCLUSTER={ON|OFF}

    これは WITH_NDBCLUSTER_STORAGE_ENGINE のエイリアスです。

  • -DWITH_NDBMTD={ON|OFF}

    マルチスレッドのデータノード実行ファイル ndbmtd をビルド。デフォルトは ON です。

  • -DWITH_NDB_BINLOG={ON|OFF}

    このオプションを使用して、mysqld ビルド内でデフォルトでバイナリロギングを有効にします。デフォルトで ON です。

  • -DWITH_NDB_DEBUG={ON|OFF}

    MySQL Cluster バイナリのデバッグバージョンのビルドを有効にします。デフォルトで OFF です。

  • -DWITH_NDB_JAVA={ON|OFF}

    ClusterJ を含め、MySQL Cluster の Java サポート付きでのビルドを有効にします。

    このオプションは MySQL Cluster NDB 7.2.9 で追加され、デフォルトで ON です。MySQL Cluster を Java サポート付きでコンパイルしない場合は、CMake の実行時に -DWITH_NDB_JAVA=OFF を指定することによって明示的に無効にする必要があります。そうしないと、Java が検出できない場合にビルドの構成が失敗します。

  • -DWITH_NDB_PORT=port

    ビルドされた MySQL Cluster 管理サーバー (ndb_mgmd) が、この port をデフォルトで使用するようにします。このオプションがセットされていない場合、結果の管理サーバーはデフォルトでポート 1186 を使用しようとします。

  • -DWITH_NDB_TEST={ON|OFF}

    有効の場合、NDB API テストプログラムをインクルードします。デフォルトは OFF です。

2.9.5 MySQL のコンパイルに関する問題

多くの問題の解決方法には再構成が含まれます。再構成を行う場合は、次に注意してください。

  • CMake を以前に実行したあとで実行すると、以前の起動時に収集した情報を使用する場合があります。この情報は CMakeCache.txt に格納されています。CMake は、起動時にそのファイルを探し、存在すればその情報がまだ正しいと仮定して内容を読み込みます。この仮定は再構成した場合には無効です。

  • CMake を実行するたびに、make を再実行して再コンパイルする必要があります。しかし、前のビルドの古いオブジェクトファイルが異なる構成オプションでコンパイルされている場合、それらを最初に削除する場合もあります。

古いオブジェクトファイルまたは構成情報が使用されることを予防するために、CMake を再実行する前に次のコマンドを実行します。

Unix の場合:

shell> make cleanshell> rm CMakeCache.txt

Windows の場合:

shell> devenv MySQL.sln /cleanshell> del CMakeCache.txt

ソースツリー外でビルドする場合、CMake を再実行する前にビルドディレクトリを削除して再作成します。ソースツリー外でのビルドに関する説明は、Build MySQL Server を CMake でビルドする方法を参照してください。

一部のシステムでは、システムインクルードファイルの違いにより警告が生じる場合があります。次のリストは、MySQL のコンパイル時にもっともよく生じることがよくわかっているその他の問題を記述しています。

  • どの C および C++ コンパイラを使用するかを定義するために、CC および CXX 環境変数を使用できます。例:

    shell> CC=gccshell> CXX=g++shell> export CC CXX

    独自の C および C++ コンパイラフラグを指定するには、CMAKE_C_FLAGS および CMAKE_CXX_FLAGS CMake オプションを使用します。Compiler Flagsを参照してください。

    指定する必要がある可能性のあるフラグを確認するには、mysql_config を、--cflags および --cxxflags オプションを使用して起動します。

  • コンパイル段階でどのコマンドが実行されるかを確認するには、CMake を使用して MySQL を構成したあと、単なる make ではなく make VERBOSE=1 を実行します。

  • コンパイルに失敗する場合は、MYSQL_MAINTAINER_MODE オプションが有効かどうかをチェックします。このモードでは、コンパイラの警告はエラーになるため、無効にすることによりコンパイルを続行できる場合があります。

  • コンパイルが次のいずれかのエラーで失敗した場合、make のバージョンを GNU make にアップグレードする必要があります。

    make: Fatal error in reader: Makefile, line 18:
    Badly formed macro assignment

    または:

    make: file `Makefile' line 18: Must be a separator (:

    または:

    pthread.h: No such file or directory

    Solaris および FreeBSD は、make プログラムに問題が多いことが知られています。

    GNU make 3.75 は動作が確認されています。

  • sql_yacc.cc ファイルは sql_yacc.yy から生成されます。通常、MySQL には事前生成された sql_yacc.cc が付属しているため、ビルドプロセスでコピーを作成する必要はありません。しかし、それを再度作成する必要がある場合、次のエラーに遭遇する場合もあります。

    "sql_yacc.yy", line xxx fatal: default action causes potential...

    これは yacc のバージョンに問題があることを意味しています。おそらく、代わりに bison (the GNU version of yacc) の最近のバージョンをインストールして使用する必要があります。

    bison 1.75 以前のバージョンでは次のエラーがレポートされる場合があります。

    sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded

    テーブルの最大サイズを実際には超えていなくても、bison の旧バージョンのバグでエラーが発生します。

ツールの取得または更新の詳細は、セクション2.9「ソースから MySQL をインストールする」のシステム要件を参照してください。

2.9.6 MySQL の構成とサードパーティーツール

MySQL のソースから MySQL のバージョンを判断する必要のあるサードパーティーツールは、トップレベルソースディレクトリの VERSION ファイルを読み取ることができます。このファイルには、バージョンの各部分が個別にリストされています。たとえば、バージョンが MySQL 5.7.4-m14 の場合、このファイルは次のようになります。

MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=7
MYSQL_VERSION_PATCH=4
MYSQL_VERSION_EXTRA=-m14

ソースが General Availablility (GA) リリースでない場合は、MYSQL_VERSION_EXTRA 値は空ではありません。この例の場合、値はマイルストーン 14 に対応します。

バージョンのコンポーネントから 5 桁の数字を構成するには、次の式を使用します。

MYSQL_VERSION_MAJOR*10000 + MYSQL_VERSION_MINOR*100 + MYSQL_VERSION_PATCH

2.10 インストール後のセットアップとテスト

このセクションでは、Unix 類似システムでのインストール後の項目について説明します。Windows を使用している場合は、セクション2.3.8「Windows でのインストール後の手順」を参照してください。

MySQL のインストール後、対処するべき項目がいくつかあります。例:

2.10.1 Unix 類似システムでのインストール後の手順

Unix 類似システムへの MySQL のインストール後、付与テーブルを初期化してサーバーを起動し、サーバーが満足に機能することを確認する必要があります。サーバーを、システムの起動および停止とともに自動的に起動および停止させることもできます。付与テーブルでアカウントにパスワードの割り当ても行なってください。

Unix 類似システムでは、付与テーブルは mysql_install_db プログラムによってセットアップされます。一部のインストール方法では、既存のデータベースが検出できない場合このプログラムが自動的に実行されます。

  • RPM 配布を使用して MySQL を Linux にインストールする場合、サーバー RPM が mysql_install_db を実行します。

  • Debian Linux、Ubuntu Linux、Gentoo Linux などの多くのプラットフォームでは、ネイティブのパッケージングシステムを使用すると、mysql_install_db コマンドが自動的に実行されます。

  • DMG 配布を使用して MySQL を OS X にインストールする場合、インストーラが mysql_install_db を実行します。

一般的なバイナリおよびソースインストールを含むその他のプラットフォームおよびインストールタイプでは、mysql_install_db を実行する必要があります。

次の手順は、付与テーブルを初期化して (まだ実行されていない場合)、サーバーを起動する方法を説明します。同時に、サーバーへのアクセスおよびサーバーの正常動作のテストに使用できるいくつかのコマンドも示してあります。サーバーの自動起動および停止に関する情報は、セクション2.10.1.2「MySQL を自動的に起動および停止する」を参照してください。

手順を完了してサーバーが実行できたら、mysql_install_db によって作成されたアカウントにパスワードを割り当て、テストデータベースへのアクセスを制限するとよいでしょう。その手順は、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」を参照してください。

次の例では、サーバーは mysql のログインアカウントのユーザー ID で動作します。これはそのようなアカウントが存在することを前提にしています。存在しない場合は作成するか、あるいはサーバーの実行に使用する計画の別の既存のログインアカウントの名前を代用します。アカウント作成の詳細は、セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」mysql システムユーザーおよびグループの作成を参照してください。

  1. MySQL インストールのトップレベルのディレクトリ (ここでは BASEDIR で示されます) に場所を変更します。

    shell> cd BASEDIR

    BASEDIR は、MySQL インスタンスのインストールディレクトリです。それは、/usr/local/mysql/usr/local、または /usr/bin (MySQL Yum リポジトリまたはその他の方法によるインストールの場合、) などのようになります。次の手順では、このディレクトリに移動していることを前提とします。

    BASEDIR ディレクトリにはいくつかのファイルとサブディレクトリがあります。インストールにもっとも重要なものは bin サブディレクトリおよび scripts サブディレクトリです。

    • bin ディレクトリにはクライアントプログラムとサーバーが含まれています。シェルが MySQL プログラムを正しく見つけることができるように、このディレクトリの完全なパス名を PATH 環境変数に追加してください。セクション2.12「環境変数」を参照してください。

    • scripts ディレクトリには、サーバーアクセス権限を格納する付与テーブルを含む mysql データベースの初期化に使用される、mysql_install_db プログラムが含まれます。

  2. 必要に応じて、mysql が配布のコンテンツにアクセスできることを確認します。配布を mysql としてインストールした場合は、追加のアクションは不要です。配布を root としてインストールした場合は、そのコンテンツは root が所有します。インストールディレクトリで次のコマンドを root として実行することで、所有権を mysql に変更します。最初のコマンドはファイルの所有者属性を mysql ユーザーに変更します。2 番目のコマンドはグループ属性を mysql グループに変更します。

    shell> chown -R mysql .shell> chgrp -R mysql .
  3. 必要に応じて mysql_install_db プログラムを実行して、ユーザーによるサーバーへの接続許可を決定する権限を含む、初期 MySQL 付与テーブルをセットアップします。これは、インストール手順でこのプログラムが自動的に実行されないような配布タイプを使用した場合には必要になります。

    shell> scripts/mysql_install_db --user=mysql

    一般的には、mysql_install_db は MySQL を最初にインストールする際にのみ実行する必要があるため、既存のインストールをアップグレードした場合にはこのステップをスキップできます。しかし、mysql_install_db は既存の権限テーブルを上書きしないので、どのような場合でもこれを実行するのが安全でしょう。

    mysql_install_db がインストールディレクトリまたはデータディレクトリの正しい場所を特定しない場合は、--basedir--datadir などのほかのオプションを指定する必要がある場合があります。例:

    shell> scripts/mysql_install_db --user=mysql \--basedir=/opt/mysql/mysql \--datadir=/opt/mysql/mysql/data

    mysql_install_db プログラムは、mysql を所有者としてサーバーのデータディレクトリを作成します。データディレクトリの下に、付与テーブルを保持する mysql データベースと MySQL のテストに使用できる test データベースが作成されます。そのスクリプトはまた、root および匿名ユーザーアカウントの権限テーブルのエントリを作成します。これらのアカウントには、最初パスワードがありません。セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」で、初期権限について説明しています。瞬間的に、これらの権限により MySQL root ユーザーはあらゆることを実行可能であり、だれでも test という名前または test_ で始まる名前のデータベースを作成したり使用したりできます。付与テーブルの完全なリストと説明については、セクション6.2「MySQL アクセス権限システム」を参照してください。

    インストールをよりセキュアにするには、mysql_install_db--random-passwords オプションで起動します。これにより、ランダムパスワードが MySQL root アカウントに割り当てられ、これらのアカウントに対して有効期限切れパスワードフラグが設定され、匿名ユーザー MySQL アカウントが削除されます。追加情報についてはセクション4.4.3「mysql_install_db — MySQL データディレクトリの初期化」を参照してください。(Unbreakable Linux Network での RPM を使用したインストール操作は mysql_install_db を使用しないため、影響されません。)

    あとでサーバーを起動したときに、サーバーがデータベースのディレクトリおよびファイルに対して読み取りアクセスおよび書き込みアクセスを持つように、それらが mysql のログインアカウントの所有になっていることを確認しておくことが重要です。これを確認するには、mysql_install_dbroot として実行する場合は、示されるように --user オプションを含めます。そうでない場合は、mysql としてログインしている間にそのスクリプトを実行する必要があります。その場合 --user オプションをコマンドから除外できます。

    test データベースを保持しない場合は、サーバーを起動してから、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」の指示に従って削除できます。

    この段階で mysql_install_db の問題に遭遇した場合、セクション2.10.1.1「mysql_install_db 実行の問題」を参照してください。

  4. ほとんどの MySQL インストールは、必要に応じて root を所有者にできます。例外は、データディレクトリを mysql が所有する必要があることです。これを行うには、次のコマンドをインストールディレクトリで root として実行します。

    shell> chown -R root .shell> chown -R mysql data
  5. プラグインディレクトリ (plugin_dir システム変数によって指定されるディレクトリ) が、サーバーによる書き込みが可能な場合、ユーザーが SELECT ... INTO DUMPFILE を使用してそのディレクトリ内のファイルに実行可能なコードを書き込むことができる場合があります。これを防ぐために、plugin_dir をサーバーに対して読み取り専用にしたり、SELECT 書き込みが安全に実行できるディレクトリに --secure-file-priv を設定したりできます。

  6. ソース配布を使用して MySQL をインストールした場合、提供される構成ファイルをオプションで support-files ディレクトリからご自身の /etc ディレクトリにコピーするとよいでしょう。さまざまなユースケース、サーバータイプ、および CPU と RAM の構成に対して、さまざまなサンプル構成ファイルがあります。これらの標準ファイルのいずれかを使用する場合、それを /etc/my.cnf または /etc/mysql/my.cnf にコピーして、最初に MySQL Server を起動する前に構成を編集してチェックするとよいでしょう。

    標準構成ファイルのいずれかをコピーしない場合、MySQL Server はデフォルト設定で起動されます。

    マシンをブートしたときに MySQL を自動的に起動する場合は、support-files/mysql.server をシステムの起動ファイルがある場所にコピーします。詳細情報は、mysql.server スクリプト自体、およびセクション2.10.1.2「MySQL を自動的に起動および停止する」にあります。

  7. MySQL Server を起動します。

    shell> bin/mysqld_safe --user=mysql &

    MySQL Server を権限のない (非 root) ログインアカウントで起動することが重要です。これを確認するには、mysqld_saferoot として実行する場合は、示されるように --user オプションを含めます。または、mysql としてログインしている間にそのスクリプトを実行する必要があります。その場合 --user オプションをコマンドから除外できます。

    MySQL を権限なしのユーザーとして実行する方法の詳細は、セクション6.1.5「MySQL を通常ユーザーとして実行する方法」を参照してください。

    コマンドがただちに失敗して mysqld ended を出力する場合は、エラーログ (デフォルトではデータディレクトリ内の host_name.err ファイル) で情報を探してください。

    この手順に進む前に mysql_install_db を実行して付与テーブルの作成を行わなかった場合は、サーバーの起動時にエラーログファイルに次のメッセージが現れます。

    mysqld: Can't find file: 'host.frm'

    このエラーは、mysql_install_dbroot として実行し、--user オプションを使用しなかった場合にも生じます。data ディレクトリを削除して、前述のように mysql_install_db--user オプションを使用して実行します。

    サーバーの起動時にほかの問題が発生した場合には、セクション2.10.1.3「MySQL サーバーの起動とトラブルシューティング」を参照してください。mysqld_safe の詳細は、セクション4.3.2「mysqld_safe — MySQL サーバー起動スクリプト」を参照してください。

  8. mysqladmin を使用してサーバーが動作していることを確認します。次のコマンドは、サーバーの起動および接続を確認する簡単なテストを提供します。

    shell> bin/mysqladmin versionshell> bin/mysqladmin variables

    mysqladmin version の出力は、プラットフォームおよび MySQL のバージョンによって多少異なりますが、次に示すものに類似します。

    shell> bin/mysqladmin versionmysqladmin Ver 14.12 Distrib 5.6.23, for pc-linux-gnu on i686
    ...
    Server version 5.6.23
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /var/lib/mysql/mysql.sock
    Uptime: 14 days 5 hours 5 min 21 sec
    Threads: 1 Questions: 366 Slow queries: 0
    Opens: 0 Flush tables: 1 Open tables: 19
    Queries per second avg: 0.000

    mysqladmin のほかに機能を表示するには、それを --help オプションで起動します。

  9. サーバーをシャットダウンできることを確認します。

    shell> bin/mysqladmin -u root shutdown
  10. サーバーを再度起動できることを確認します。これは、mysqld_safe を使用するか、あるいは mysqld を直接起動して行います。例:

    shell> bin/mysqld_safe --user=mysql &

    mysqld_safe が失敗する場合は、セクション2.10.1.3「MySQL サーバーの起動とトラブルシューティング」を参照します。

  11. 簡単なテストをいくつか実行して、サーバーから情報を取り出せることを確認します。その出力は次に示すものと類似しているはずです。

    shell> bin/mysqlshow+--------------------+
    | Databases |
    +--------------------+
    | information_schema |
    | mysql |
    | test |
    +--------------------+
    shell> bin/mysqlshow mysqlDatabase: mysql
    +---------------------------+
    | Tables |
    +---------------------------+
    | columns_priv |
    | db |
    | event |
    | func |
    | help_category |
    | help_keyword |
    | help_relation |
    | help_topic |
    | host |
    | plugin |
    | proc |
    | procs_priv |
    | servers |
    | tables_priv |
    | time_zone |
    | time_zone_leap_second |
    | time_zone_name |
    | time_zone_transition |
    | time_zone_transition_type |
    | user |
    +---------------------------+
    shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql+------+--------+------+
    | host | db | user |
    +------+--------+------+
    | % | test | |
    | % | test_% | |
    +------+--------+------+
  12. sql-bench ディレクトリ (MySQL インストールディレクトリの下) に、異なるプラットフォームでの MySQL の動作の違いを比較したベンチマークスイートがあります。ベンチマークスイートは Perl で書かれています。それにはさまざまなデータベースへのデータベース非依存型インタフェースを提供する Perl DBI、およびその他いくつかの Perl モジュールが必要です。

    DBI
    DBD::mysql
    Data::Dumper
    Data::ShowTable

    これらのモジュールは CPAN (http://www.cpan.org/) で入手できます。セクション2.13.1「Unix に Perl をインストールする」も参照してください。

    sql-bench/Results ディレクトリには、さまざまなデータベースおよびプラットフォームでの多くの実行結果が含まれています。すべてのテストを行うには、次のコマンドを実行します。

    shell> cd sql-benchshell> perl run-all-tests

    sql-bench ディレクトリがない場合は、おそらくソース RPM 以外の RPM ファイルを使用して MySQL をインストールしました。(ソース RPM には sql-bench ベンチマークディレクトリが含まれています。)この場合、ベンチマークスイートを使用する前に、まずそれをインストールする必要があります。mysql-bench-VERSION.i386.rpm の名前の個別のベンチマーク RPM ファイルがあり、その中にはベンチマークのコードおよびデータが含まれています。

    ソース配布の場合には、テストも tests サブディレクトリにあり、実行できます。たとえば、auto_increment.tst を実行するには、このコマンドをソース配布のトップレベルのディレクトリから実行します。

    shell> mysql -vvf test < ./tests/auto_increment.tst

    想定されるテストの結果は ./tests/auto_increment.res ファイルにあります。

  13. この段階では、サーバーが稼働しているはずです。しかし、初期 MySQL アカウントにはいずれもパスワードが設定されておらず、サーバーはテストデータベースへのアクセスを寛容に許可します。セキュリティーを厳しくするには、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」の手順に従ってください。

MySQL 5.6 インストール手順では、mysql データベースにタイムゾーンテーブルが作成されますが、データは移入されません。そのためには、セクション10.6「MySQL Server でのタイムゾーンのサポート」を参照してください。

インストールディレクトリの下の bin ディレクトリにインストールされたプログラムの起動をより便利にするために、そのディレクトリを PATH 環境変数設定に追加できます。それにより、プログラムのパス名全体ではなく名前のみを入力して実行できます。セクション4.2.10「環境変数の設定」を参照してください。

2.10.1.1 mysql_install_db 実行の問題

mysql_install_db プログラムの目的は、新しい MySQL 権限テーブルを生成することです。それは既存の MySQL 権限テーブルを上書きせず、ほかのデータに影響を及ぼすことはありません。

権限のテーブルを再度作成する場合は、mysqld サーバーが稼働していればそれを停止します。次にデータディレクトリの mysql ディレクトリを保存するために名前変更を行い、次に mysql_install_db を実行します。現在のディレクトリが MySQL のインストールディレクトリで、mysql_install_dbbin ディレクトリにあり、データディレクトリ名が data であるとします。mysql データベースの名前変更を行い mysql_install_db を実行するには、次のコマンドを使用します。

shell> mv data/mysql data/mysql.oldshell> scripts/mysql_install_db --user=mysql

mysql_install_db を実行すると、次の問題が発生する場合があります。

  • mysql_install_db が付与テーブルのインストールに失敗する

    mysql_install_db が付与テーブルのインストールに失敗し、次のメッセージの表示後に終了する場合があります。

    Starting mysqld daemon with databases from XXXXXX
    mysqld ended

    この場合、エラーのログファイルを非常に慎重に調べる必要があります。ログは、エラーメッセージで指定されるディレクトリ XXXXXX にあるはずで、mysqld が起動しなかった理由を示しているはずです。どのような問題が発生したかわからない場合は、バグレポートを投稿するときにログを一緒に送ります。セクション1.6「質問またはバグをレポートする方法」を参照してください。

  • mysqld プロセスが実行されている

    これはサーバーが稼働していることを示しています。この場合、付与テーブルはおそらくすでに作成されています。その場合、mysql_install_db を起動する必要があるのは一度だけ (最初に MySQL をインストールしたとき) であるため、それを起動する必要はまったくありません。

  • 1 台のサーバーの起動中に 2 台目の mysqld サーバーのインストールができない

    これは既存の MySQL のインストールがあり、異なる場所に新たにインストールを行う場合に起こることがあります。たとえば、本番用のインストールがすでにあるが、テスト目的に 2 台目のインストールを作成する場合です。一般的に 2 台目のサーバーを起動しようとしたときに起こる問題は、1 台目のサーバーが使用しているネットワークインタフェースを 2 台目のサーバーが使用しようとした場合に発生します。この場合、次のエラーメッセージのいずれかが表示されるはずです。

    Can't start server: Bind on TCP/IP port:
    Address already in use
    Can't start server: Bind on unix socket...

    複数のサーバーの設定に関する説明は、セクション5.3「1 つのマシン上での複数の MySQL インスタンスの実行」を参照してください。

  • /tmp ディレクトリに対する書き込みアクセス権がない

    デフォルトの場所 (/tmp ディレクトリ) または TMP_DIR 環境変数 (設定されている場合) に、一時ファイルまたは Unix ソケットファイルを作成するための書き込みアクセス権がない場合、mysql_install_db または mysqld サーバーを起動するとエラーが生じます。

    mysql_install_db あるいは mysqld を起動する前に次のコマンドを実行して、一時ディレクトリおよび Unix のソケットファイルに別の場所を指定できます。ここで、some_tmp_dir は書き込み許可のあるディレクトリへのフルパス名です。

    shell> TMPDIR=/some_tmp_dir/shell> MYSQL_UNIX_PORT=/some_tmp_dir/mysql.sockshell> export TMPDIR MYSQL_UNIX_PORT

    そうすれば、mysql_install_db を起動して次のコマンドでサーバーを起動できるはずです。

    shell> scripts/mysql_install_db --user=mysqlshell> bin/mysqld_safe --user=mysql &

    mysql_install_dbscripts ディレクトリにある場合には、最初のコマンドを scripts/mysql_install_db に変更します。

    セクションB.5.4.5「MySQL の UNIX ソケットファイルを保護または変更する方法」、およびセクション2.12「環境変数」を参照してください。

MySQL の配布で提供される mysql_install_db プログラムを実行するには、いくつかの方法があります。

  • 初期権限を標準のデフォルトと異なるものにする場合、mysql_install_db を実行する前に変更できます。しかし、付与テーブルを設定したあとにGRANT および REVOKE を使用して権限を変更することが推奨されます。つまり、mysql_install_db を起動し、次に mysql -u root mysql を使用して MySQL root ユーザーとしてサーバーに接続します。これで必要な GRANT および REVOKE ステートメントを発行できます。

    同じ権限で複数のマシンに MySQL をインストールする場合、GRANT および REVOKE ステートメントを 1 つのファイルに入れ、mysql_install_db を起動後に、mysql を使用してそのファイルをスクリプトとして実行できます。例:

    shell> scripts/mysql_install_db --user=mysqlshell> bin/mysql -u root < your_script_file

    このようにすることで、各マシンでステートメントを手動で発行する必要がなくなります。

  • 付与テーブルを作成したあとで、完全に再作成できます。単に GRANT および REVOKE の使用方法を学習していて、mysql_install_db の実行後にあまりに多くの変更を行なったためテーブルを消去してやり直す場合には、このようにするとよいでしょう。

    付与テーブルを再度作成するには、mysql データベースディレクトリにあるすべての .frm.MYI、および .MYD ファイルを削除します。次に、mysql_install_db プログラムを再度実行します。

  • mysqld--skip-grant-tables オプションを使用して手動で起動し、mysql を使用してご自身で権限情報を追加することができます。

    shell> bin/mysqld_safe --user=mysql --skip-grant-tables &shell> bin/mysql mysql

    mysql から、mysql_install_db の SQL コマンドを手動で実行します。mysqladmin flush-privileges あるいは mysqladmin reload を必ずあとで実行して、付与テーブルをリロードするようサーバーに指示します。

    mysql_install_db を使用しなかった場合は、付与テーブルに手動でデータを移入しなければならないのみではなく、まず付与テーブルを作成する必要があります。

2.10.1.2 MySQL を自動的に起動および停止する

一般的には、mysqld サーバーは次のいずれかの方法で起動します。

mysqld_safe スクリプトおよび mysql.server スクリプト、Solaris/OpenSolaris SMF、および OS X Startup Item (または MySQL Preference Pane) を使用して、サーバーを手動で、あるいはシステムの起動時に自動的に起動できます。mysql.server および Startup Item は、サーバーの停止にも使用できます。

mysql.server スクリプトを使用してサーバーを手動で起動または停止するには、サーバーを start 引数または stop 引数を使用して呼び出します。

shell> mysql.server startshell> mysql.server stop

mysql.server は、サーバーを起動する前に場所を MySQL インストールディレクトリに変更し、次に mysqld_safe を実行します。サーバーを特定のユーザーとして起動するには、このセクションで後述するように、適切な user オプションを /etc/my.cnf オプションファイルの [mysqld] グループに追加します。(バイナリ配布の MySQL を標準と異なる場所にインストールした場合には mysql.server の編集が必要になる場合があります。mysqld_safe を実行する前に場所を適切なディレクトリに変更するように、それを修正します。これを行うと、将来 MySQL をアップグレードすると変更したバージョンの mysql.server が上書きされる場合がありますので、編集したバージョンを再インストールできるようにコピーを取っておくとよいでしょう。)

mysql.server stop は、サーバーに信号を送って停止します。mysqladmin shutdown を実行してサーバーを手動で停止することもできます。

サーバー上の MySQL を自動的に起動および停止するには、起動および停止のコマンドを /etc/rc* ファイルの適切な場所に加える必要があります。

Linux サーバーの RPM パッケージ (MySQL-server-VERSION.rpm) またはネイティブの Linux パッケージインストールを使用する場合は、mysql.server スクリプトは /etc/init.d のディレクトリに mysql という名前でインストールされる場合があります。Linux RPM パッケージに関する詳細は、セクション2.5.5「RPM パッケージを使用して MySQL を Linux にインストールする」を参照してください。

ベンダーによっては、起動スクリプトを mysqld のような別名でインストールする RPM パッケージを提供している場合もあります。

MySQL をソース配布から、あるいは mysql.server を自動的にインストールしないバイナリの配布形式を使用してインストールする場合、それを手動でインストールできます。そのスクリプトは、MySQL インストールディレクトリの support-files ディレクトリあるいは MySQL のソースツリーにあります。

mysql.server を手動でインストールするには、それを /etc/init.d ディレクトリに mysql の名前でコピーし、次にそれを実行ファイルにします。それには、mysql.server のある適切なディレクトリに場所を変更して、次のコマンドを実行します。

shell> cp mysql.server /etc/init.d/mysqlshell> chmod +x /etc/init.d/mysql
注記

古い Red Hat システムは /etc/init.d ではなく /etc/rc.d/init.d ディレクトリを使用しています。前述のコマンドを適宜調整します。または、最初に /etc/init.d/etc/rc.d/init.d を指すシンボリックリンクとして作成します。

shell> cd /etcshell> ln -s rc.d/init.d .

スクリプトをインストールしたあと、それを有効にしてシステムの起動時に実行するために必要なコマンドは、使用しているオペレーティングシステムによって異なります。Linux では、chkconfig を使用します。

shell> chkconfig --add mysql

一部の Linux システムでは、mysql スクリプトを完全に有効にするには次のコマンドも必要になる場合があります。

shell> chkconfig --level 345 mysql on

FreeBSD では、起動スクリプトは通常 /usr/local/etc/rc.d/ にあります。rc(8) のマニュアルページでは、このディレクトリのスクリプトはそれらのベース名が *.sh シェルファイル名のパターンに一致したときのみ実行できると記載されています。そのディレクトリの、その他のファイルあるいおよびディレクトリは警告なしで無視されます。つまり FreeBSD では、自動起動を有効にするには mysql.server スクリプトを /usr/local/etc/rc.d/mysql.server.sh としてインストールするべきです。

前述の設定の代案として、オペレーティングシステムの中には /etc/rc.local あるいは /etc/init.d/boot.local を使用して起動時に追加のサービスを起動するものもあります。この方法で MySQL を起動するには、次のようなコマンドを適切な起動ファイルに追加します。

/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'

ほかのシステムの起動スクリプトのインストール方法についてはそのオペレーティングシステムのドキュメントをお読みください。

mysql.server のオプションを、グローバル /etc/my.cnf ファイルに追加できます。一般的な /etc/my.cnf ファイルは次のようになります。

[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql

The mysql.server スクリプトは、basedirdatadir、および pid-file の各オプションをサポートしています。指定する場合は、コマンド行ではなくオプションファイルに配置する必要がありますmysql.server は、start および stop のみをコマンド行の引数としてサポートしています。

次の表は、サーバーおよび各起動スクリプトがオプションファイルから読み取るオプショングループを示しています。

表 2.12 MySQL 起動スクリプトとサポートされるサーバーオプショングループ

スクリプトオプショングループ
mysqld[mysqld][server][mysqld-major_version]
mysqld_safe[mysqld][server][mysqld_safe]
mysql.server[mysqld][mysql.server][server]

[mysqld-major_version] は、[mysqld-5.5] および [mysqld-5.6] のような名前のグループが、5.5.x、5.6.x、などのバージョンのサーバーによって読み取られることを意味します。この機能は、所定のリリースシリーズのサーバーによってのみ読み取られるオプションを指定するために使用できます。

下位互換性のため、mysql.server[mysql_server] グループも読み取り、mysqld_safe[safe_mysqld] グループも読み取ります。ただし、MySQL 5.6 を使用する場合は、代わりに [mysql.server] および [mysqld_safe] グループを使用するようにオプションファイルを更新するとよいでしょう。

MySQL 構成ファイルとその構造とコンテンツについては、セクション4.2.6「オプションファイルの使用」を参照してください。

2.10.1.3 MySQL サーバーの起動とトラブルシューティング

このセクションでは、Unix 類似システムでのサーバー起動の問題に関するトラブルシューティングの提案を示します。Windows を使用している場合には、セクション2.3.6「Microsoft Windows MySQL Server インストールのトラブルシューティング」を参照してください。

サーバーの起動時に問題がある場合、次を試してみます。

  • エラーログをチェックして、サーバーが起動しない原因を確認します。ログファイルはデータディレクトリ (通常、Windows では C:\Program Files\MySQL\MySQL Server 5.6\data、Unix/Linux バイナリ配布では /usr/local/mysql/data、Unix/Linux ソース配布では /usr/local/var) にあります。データディレクトリの host_name.err および host_name.log の形式のファイル名のファイルを探します。ここで、host_name はサーバーホストの名です。次にこれらのファイルの最後の数行を調べます。それらを表示するには tail を使用します。

    shell> tail host_name.errshell> tail host_name.log
  • 使用しているストレージエンジンに必要なオプションがあれば指定します。my.cnf ファイルを作成して、使用するエンジンの起動オプションを指定します。トランザクションテーブルをサポートするストレージエンジン (InnoDBNDB) を使用する予定である場合、サーバーを起動する前に、それらが適切に構成されていることを確認します。InnoDB テーブルを使用している場合は、ガイドラインについてはセクション14.3「InnoDB の構成」、オプションの構文についてはセクション14.12「InnoDB の起動オプションおよびシステム変数」を参照してください。

    ストレージエンジンは、省略したオプションについてはデフォルト値を使用しますが、使用可能なオプションを確認し、デフォルト値がインストールに対して適切でないようなオプションがあれば明示的に値を指定することを推奨します。

  • サーバーが、データディレクトリを検索する場所を認識していることを確認してください。mysqld サーバーはこのディレクトリを現在のディレクトリとして使用します。そこでデータベースを探し、ログファイルに書き込むことを想定しています。サーバーはデータディレクトリで pid (プロセス ID) ファイルも書き込みます。

    デフォルトのデータディレクトリの場所は、サーバーのコンパイル時にハードコードされます。デフォルトのパス設定を確認するには、mysqld--verbose オプションおよび --help オプションで起動します。データディレクトリがシステム上の別の場所にある場合は、その場所を、コマンド行またはオプションファイルで --datadir オプションを使用して mysqld または mysqld_safe に指定します。そうしないと、サーバーは適切に動作しません。--datadir オプションの代替として、MySQL がインストールされているベースディレクトリの場所を、mysqld--basedir で指定できます。そうすれば、mysqld はそこで data ディレクトリを検索します。

    パスオプションの指定の結果を知るには、mysqld をそれらのオプションで実行し次に--verbose および --help オプションを実行します。たとえば、場所を mysqld をインストールしたディレクトリに変更してから次のコマンドを実行すると、ベースディレクトリ /usr/local でサーバーを起動した結果が表示されます。

    shell> ./mysqld --basedir=/usr/local --verbose --help

    --datadir のようなオプションも同様に指定できますが、--verbose および --help は最後のオプションでなければなりません。

    任意のパスを設定したあと、サーバーを --verbose および --help を使用しないで起動します。

    mysqld が動作しているときは、次のコマンドを実行してどのパス設定が使用されているか確認できます。

    shell> mysqladmin variables

    または:

    shell> mysqladmin -h host_name variables

    host_name は MySQL サーバーのホスト名です。

  • サーバーが、データディレクトリにアクセスできることを確認してください。データディレクトリとそのコンテンツの所有権と許可は、サーバーがそれらを読み取って修正できるようなものでなければなりません。

    mysqld の起動時に Errcode 13 (許可が却下されたことを意味します) を受け取る場合は、データディレクトリまたはそのコンテンツの特権が、サーバーアクセスを許可しないものであることを意味します。この場合、関連するファイルおよびディレクトリの権限を変更して、サーバーがそれらを使用する権限を持つようにします。サーバーを root から起動することもできますが、この場合セキュリティーの問題が生じるため、避けるべきです。

    場所をデータディレクトリに変更し、データディレクトリとそのコンテンツの所有権をチェックして、サーバーにアクセス権があることを確認します。たとえば、データディレクトリが /usr/local/mysql/var の場合は、次のコマンドを使用します。

    shell> ls -la /usr/local/mysql/var

    データディレクトリあるいはそのファイルまたはサブディレクトリが、サーバーを稼働するためのログインアカウントの所有でない場合、それらの所有権をそのアカウントに変更します。そのアカウントが mysql の場合、次のコマンドを使用します。

    shell> chown -R mysql /usr/local/mysql/varshell> chgrp -R mysql /usr/local/mysql/var

    所有権が適切な場合でも、ファイルシステムのさまざまな部分へのアプリケーションのアクセスを管理するようなセキュリティーソフトウェアがシステム上で実行されている場合、MySQL が起動に失敗することがあります。この場合は、そのソフトウェアを再構成して mysqld が通常の動作中に使用するディレクトリにアクセスできるようにします。

  • サーバーが使用するネットワークインタフェースが利用できることを確認します。

    次のいずれかのエラーが発生した場合、ほかのプログラム (おそらく別の mysqld サーバー) が、mysqld が使用する TCP/IP ポートあるいは Unix のソケットファイルを使用していることを意味します。

    Can't start server: Bind on TCP/IP port: Address already in use
    Can't start server: Bind on unix socket...

    ps を使用して、別の mysqld サーバーが稼働しているかどうか判断します。その場合、mysqld を再度起動する前にサーバーをシャットダウンします。(別のサーバーが動作中で、複数のサーバーを稼働させる必要がある場合は、その方法に関する情報は、セクション5.3「1 つのマシン上での複数の MySQL インスタンスの実行」にあります。)

    別のサーバーが稼働していない場合は、コマンド telnet your_host_nametcp_ip_port_number を実行します。(デフォルトの MySQL ポート番号は 3306 です。)次に Enter を数回押します。telnet: Unable to connect to remote host: Connection refused などのエラーメッセージが表示されない場合は、mysqld が使用しようとしている TCP/IP ポートをほかのプログラムが使用しています。それがどのプログラムなのかを追跡して無効にするか、--port オプションを使用して、mysqld に別のポートで待機するよう指示します。この場合、TCP/IP を使用してサーバーに接続するときに、クライアントプログラムに同じデフォルト以外のポート番号を指定します。

    ポートにアクセスできない別の理由に、ファイアウォールがその接続をブロックしている場合があります。その場合は、ファイアウォールの設定を、ポートへのアクセスを許可するように変更します。

    サーバーは起動するがそれに接続できない場合は、/etc/hosts に次のようなエントリがあることを確認します。

    127.0.0.1 localhost
  • mysqld を起動できない場合は、--debug オプションを使用して、トレースファイルを作成して問題を発見してみてください。セクション24.4.3「DBUG パッケージ」を参照してください。

2.10.2 最初の MySQL アカウントのセキュリティー設定

MySQL インストールプロセスの一環として、付与テーブルを含む mysql データベースを設定します。

  • Windows 配布は事前に初期化された付与テーブルを含みます。

  • Unix では、mysql_install_db プログラムが付与テーブルに移入します。一部のインストール方法ではこのプログラムは自動的に実行されます。その他では、手動でそれを実行する必要があります。詳細については、セクション2.10.1「Unix 類似システムでのインストール後の手順」を参照してください。

mysql.user 付与テーブルは、初期 MySQL ユーザーアカウントとそのアクセス権限を定義します。

  • いくつかのアカウントはユーザー名が root です。これらは、すべての権限を持ち、どのようなことも可能なスーパーユーザーアカウントです。root アカウントの初期パスワードは空です。そのため、だれでもパスワードなしでroot として MySQL Server に接続して、すべての権限を付与されることができます。

    • Windows では、ローカルホストからの接続のみを許可する root アカウントが作成されます。ホスト名 localhost、IP アドレス 127.0.0.1、または IPv6 アドレス ::1 を指定することで接続できます。ユーザーが、インストール中に「Enable root access from remote machines」オプションを選択した場合は、Windows インストーラは、に荷のホストからの接続を許可する別の root アカウントを作成します。

    • Unix では、各 root アカウントはローカルホストからの接続を許可します。ホスト名 localhost、IP アドレス 127.0.0.1、または IPv6 アドレス ::1、あるいは実際のホスト名または IP アドレスを指定することで接続できます。

    ホスト 127.0.0.1 への接続を試みると、通常 localhost アカウントに解決します。ただし、サーバーが --skip-name-resolve オプションを使用して稼働されている場合は、これは失敗します。そのため、その場合には 127.0.0.1 アカウントが便利です。::1 アカウントは IPv6 接続に使用されます。

  • 一部のアカウントは匿名ユーザー用です。これらは空のユーザー名を持ちます。匿名のアカウントにはパスワードがないため、だれでもそのアカウントを使用して MySQL サーバーに接続できます。

    • Windows では、ローカルホストからの接続を許可する匿名アカウントが 1 つあります。localhost のホスト名を指定することで接続できます。

    • Unix では、各匿名アカウントはローカルホストからの接続を許可します。アカウントの 1 つのホスト名 localhost を指定するか、その他のアカウントの実際のホスト名または IP アドレスを指定することで接続できます。

mysql.user テーブルにどのアカウントが存在するか、それらのパスワードが空かどうかを表示するには、次のステートメントを使用します。

mysql> SELECT User, Host, Password FROM mysql.user;+------+--------------------+----------+
| User | Host | Password |
+------+--------------------+----------+
| root | localhost | |
| root | myhost.example.com | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | myhost.example.com | |
+------+--------------------+----------+

この出力は、いくつかの root アカウントと匿名ユーザーアカウントがあり、いずれにもパスワードがないことを示しています。使用しているシステムでは出力が異なる場合がありますが、空のパスワードのアカウントが存在するということは、何らかの対処をするまで MySQL インストールが保護されていないということを意味します。

  • それぞれの MySQL root アカウントにパスワードを割り当てるべきです。

  • クライアントが匿名ユーザーとしてパスワードなしで接続することを防ぐには、それぞれの匿名のアカウントにパスワードを割り当てるか、あるいはそれらのアカウントを削除するとよいでしょう。

さらに、mysql.db テーブルにはすべてのアカウントが test データベースおよび test_ で始まる名前を持つその他のデータベースにアクセスすることを許可する行が含まれます。これは、デフォルトの匿名アカウントのように、そうでなければ特別な権限を持たないアカウントにも当てはまります。これはテスト用には便利ですが、本番サーバーでは推奨されません。データベースへのアクセスを、その目的のために明示的に許可を付与されたアカウントのみに制限する場合は、管理者は mysql.db テーブルのこれらの行を削除するとよいでしょう。

次の手順では、初期 MySQL アカウントにパスワードを設定する方法を、最初に root アカウント、次に匿名アカウントの順で説明します。この手順では、匿名アクセスをまったく許可しない場合に、匿名アカウントを削除する方法にも触れ、データベースをテストするための寛容なアクセスを削除する方法も説明します。例の中の newpwd は使用するパスワードに置き換えてください。host_name はサーバーのホスト名に置き換えます。この名前は、前述の SELECT ステートメントの出力から判断できます。示された出力では、host_namemyhost.example.com です。

注記

パスワード設定の詳細は、セクション6.3.5「アカウントパスワードの割り当て」を参照してください。root パスワードを設定したあとでそれを忘れた場合は、セクションB.5.4.1「root のパスワードをリセットする方法」を参照してください。

追加のセットアップやテストを実行する間、パスワードを指定する必要を避けるために、パスワードの設定を遅らせたい場合があります。しかし、インストールを本番用に使用する前にはそれらを忘れずに設定してください。

追加のアカウントをセットアップするには、セクション6.3.2「ユーザーアカウントの追加」を参照してください。

root アカウントのパスワードの割り当て

root アカウントのパスワードは、いくつかの方法でセットできます。次の説明では 3 種類の方法を示します。

  • SET PASSWORD ステートメントを使用する

  • UPDATE ステートメントを使用する

  • mysqladmin コマンド行のクライアントプログラムを使用する

SET PASSWORD を使用してパスワードを割り当てるには、サーバーに root として接続し、SET PASSWORD ステートメントを、mysql.user テーブルにリストされている各 root アカウントに対して発行します。PASSWORD() 関数を使用してパスワードを忘れずに暗号化します。

Windows では、次のようにします。

shell> mysql -u rootmysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');

mysql.user テーブルに、ホスト値が % である root アカウントがない場合は、最後のステートメントは不要です。

Unix では、次のようにします。

shell> mysql -u rootmysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');

UPDATE を使用して mysql.user テーブルを直接変更することで、すべての root アカウントにパスワードを割り当てる単独のステートメントを使用することもできます。この方法はどのプラットフォームでも機能します。

shell> mysql -u rootmysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') -> WHERE User = 'root';mysql> FLUSH PRIVILEGES;

FLUSH ステートメントにより、サーバーが付与テーブルを再度読み取ります。それがないと、パスワードの変更はサーバーを再起動するまでサーバーには認識されません。

パスワードを root アカウントに mysqladmin を使用して割り当てるには、次のコマンドを実行します。

shell> mysqladmin -u root password "newpwd"shell> mysqladmin -u root -h host_name password "newpwd"

これらのコマンドは Windows および Unix の両方に該当します。パスワードを囲む二重引用符は必ずしも常に必要なわけではありませんが、パスワードにスペースその他のコマンドインタプリタにとって特殊な文字が含まれる場合は使用するべきです。

mysqladmin を使用して root アカウントのパスワードを設定する方法は、'root'@'127.0.0.1' or 'root'@'::1' アカウントでは機能しません。前述の SET PASSWORD の方法を使用します。

root の設定後は、root としてサーバーに接続するたびに適切なパスワードを提供する必要があります。たとえば、mysqladmin でサーバーをシャットダウンするには、次のコマンドを使用します。

shell> mysqladmin -u root -p shutdownEnter password: (enter root password here)

匿名アカウントのパスワードの割り当て

次の手順の mysql コマンドは、前述の手順を使用して root のパスワードを設定し、サーバーへの接続時にそのパスワードを指定しなければならないことを前提として、-p オプションを含んでいます。

匿名アカウントにパスワードを割り当てるには、サーバーに root として接続してから、SET PASSWORD または UPDATE を使用します。PASSWORD() 関数を使用してパスワードを忘れずに暗号化します。

Windows で SET PASSWORD を使用するには、次のようにします。

shell> mysql -u root -pEnter password: (enter root password here)mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd');

Unix で SET PASSWORD を使用するには、次のようにします。

shell> mysql -u root -pEnter password: (enter root password here)mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd');mysql> SET PASSWORD FOR ''@'host_name' = PASSWORD('newpwd');

単独の UPDATE ステートメントで匿名ユーザーアカウントのパスワードを設定するには、次のようにします (任意のプラットフォームで)。

shell> mysql -u root -pEnter password: (enter root password here)mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') -> WHERE User = '';mysql> FLUSH PRIVILEGES;

FLUSH ステートメントにより、サーバーが付与テーブルを再度読み取ります。それがないと、パスワードの変更はサーバーを再起動するまでサーバーには認識されません。

匿名アカウントの削除

匿名アカウントにパスワードを割り当てるのではなく、削除する場合は、Windows では次のようにします。

shell> mysql -u root -pEnter password: (enter root password here)mysql> DROP USER ''@'localhost';

Unix では、次のように匿名アカウントを削除します。

shell> mysql -u root -pEnter password: (enter root password here)mysql> DROP USER ''@'localhost';mysql> DROP USER ''@'host_name';

テストデータベースのセキュリティー設定

デフォルトでは、mysql.db テーブルには任意のユーザーによる test データベースおよび test_ で始まる名前を持つその他のデータベースへのアクセスを許可する行が含まれます。(これらの行は空の User カラム値を持ち、アクセスチェックのために任意のユーザー名に一致します。)これは、そうでなければ何の権限も持たないアカウントでさえも、このようなデータベースを使用できることを意味します。テストデータベースへの任意のユーザーによるアクセスを削除する場合は、次のようにします。

shell> mysql -u root -pEnter password: (enter root password here)mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';mysql> FLUSH PRIVILEGES;

FLUSH ステートメントにより、サーバーが付与テーブルを再度読み取ります。それがないと、権限の変更はサーバーを再起動するまでサーバーには認識されません。

前述の変更により、グローバルデータベース権限、または test データベース用に明示的に付与された権限を持つユーザーのみがそれを使用できます。ただし、データベースがまったく不要である場合は、ドロップします。

mysql> DROP DATABASE test;
注記

Windows では、MySQL Installer (セクション2.3.3「MySQL Installer を使用した MySQL の Microsoft Windows へのインストール」を参照してください) でのインストール中に、このセクションで説明した手順を実行することもできます。すべてのプラットフォームで、MySQL 配布には、MySQL インストールをセキュアにするプロセスの大部分を自動化するコマンド行ユーティリティー mysql_secure_installation が含まれます。また、MySQL Workbench はすべてのプラットフォームで使用可能で、ユーザーアカウントの管理機能も提供します (第26章「MySQL Workbenchを参照してください)。

2.11 MySQL のアップグレードとダウングレード

このセクションでは、MySQL インストールのアップグレードまたはダウングレードの手順を説明します。

MySQL の同じリリースシリーズ内でのバグフィックスや、MySQL の主なリリース間の重大な機能を入手する場合など、アップグレードは一般的な手順です。この手順は、テストシステムでまず実行して、すべてが問題なく動作することを確認してから本番システムで実行します。

ダウングレードはそれほど一般的ではありません。通常、最初にテストシステムでアップグレードを確認したときには発見されなかった互換性またはパフォーマンスの問題が本番システムで発生したために、アップグレードを元に戻します。アップグレードの手順と同様に、ダウングレードの手順は本番システム上で使用する前に、まずテストシステム上で実行して確認します。

2.11.1 MySQL のアップグレード

原則として、あるリリースシリーズから別のものにアップグレードするには、シリーズをスキップせずに次のシリーズに移動します。MySQL 5.5 より前のリリースシリーズからアップグレードするには、MySQL 5.5 に到達するまで順に次のリリースシリーズにアップグレードしてから、MySQL 5.6 へのアップグレードに進みます。たとえば、現在 MySQL 5.1 を稼働していて、新しいシリーズにアップグレードする場合は、MySQL 5.6 にアップグレードする前にまず 5.5 にアップグレードする、などです。MySQL 5.5 へのアップグレードの詳細は、『MySQL 5.5 リファレンスマニュアル』を参照してください。

MySQL 5.6 にアップグレードするには、次のチェックリストの項目を参考にしてください。

  • アップグレードの前に、付与テーブルを含む mysql データベースなどのデータベースのバックアップを作成します。セクション7.2「データベースバックアップ方法」を参照してください。

  • セクション2.11.1.3「MySQL 5.5 から 5.6 へのアップグレード」すべての注釈をお読みください。これらの注釈によって、現在の MySQL インストールに適用されるアップグレードの問題を識別できます。そのセクションで説明されている一部の互換性の欠如は、アップグレードの前に注意する必要があります。アップグレードのあとにアクションが必要なものもあります。

  • リリースノートもお読みください。ここには、MySQL 5.6 の新機能や MySQL の以前のリリースとは異なるものに関する情報があります。

  • MySQL の新しいバージョンにアップグレードしたら、mysql_upgrade を実行します (セクション4.4.7「mysql_upgrade — MySQL テーブルのチェックとアップグレード」を参照してください)。このプログラムはテーブルを確認し、必要に応じて修復を試みます。また、付与テーブルを更新して最新の構造を持つようにし、新しい機能を活用できるようにします。(MySQL のリリースの中には、新たに権限や機能を加えるために付与テーブルの構造に変更を加えているものもあります。)

    mysql_upgrade では、ヘルプテーブルの内容はアップグレードされません。アップグレードの手順については、セクション5.1.10「サーバー側のヘルプ」を参照してください。

    mysql_upgrade は、サーバーが --gtid-mode=ON で稼働している場合には使用しないでください。使用すると、mysql データベース内の非トランザクションシステムテーブルが変更される場合があります。これらの多くは MyISAM で、異なるストレージエンジンを使用するように変更することはできません。GTID モードと mysql_upgradeを参照してください。

  • MySQL Server を Windows 上で使用する場合は、セクション2.3.7「Windows 上の MySQL をアップグレードする」を参照してください。

  • レプリケーションを使用する場合は、レプリケーションのセットアップのアップグレードについてセクション17.4.3「レプリケーションセットアップをアップグレードする」を参照してください。

  • InnoDB を使用する場合は、サーバーをシャットダウンしてアップグレードする前に、innodb_fast_shutdown を 0 に設定することを考慮します。innodb_fast_shutdown を 0 に設定すると、InnoDB はシャットダウンの前に低速シャットダウン、完全なパージ、および挿入バッファーのマージを実行します。これにより、アップグレードプロセスでファイル形式が変更される場合に備えて、すべてのデータファイルが完全に準備されます。

  • もともと複数の RPM パッケージをインストールして生成したインストールをアップグレードする場合は、一部だけでなくすべてのパッケージをアップグレードするのが最善です。たとえば、以前にサーバーおよびクライアントの RPM をインストールした場合は、サーバーの RPM だけをアップグレードすることはしないでください。

  • ユーザー定義関数 (UDF) を所定の名前で作成したあとで、MySQL を同じ名前の組み込み関数を実装した新しいバージョンにアップグレードした場合、その UDF はアクセスできなくなります。これを修正するには、DROP FUNCTION を使用して UDF を削除してから、CREATE FUNCTION を使用して競合しない別の名前で UDF を再作成します。新しいバージョンの MySQL が、既存のストアドファンクションと同名の組み込み関数を実装している場合にも、同じとこが言えます。各種の関数への参照をサーバーが解釈する方法を記述したルールについては、セクション9.2.4「関数名の構文解析と解決」を参照してください。

EL5、EL6、または EL7 ベースの Linux プラットフォームおよび Fedora 20 または 21 では、MySQL およびそのコンポーネントを、MySQL Yum リポジトリでインプレースアップグレードできます。セクション2.11.1.1「MySQL Yum リポジトリを使用する MySQL のアップグレード」を参照してください。

Debian 7、Ubuntu 12、および Ubuntu 14 では、MySQL およびそのコンポーネントを、MySQL APT リポジトリでインプレースアップグレードできます。セクション2.11.1.2「MySQL APT リポジトリを使用する MySQL のアップグレード」を参照してください。

MySQL リリースシリーズの一般提供ステータスに到達したバージョン間のアップグレードでは、MySQL 形式のファイルおよびデータファイルを、同じアーキテクチャーを持つシステム上の異なるバージョン間で移動できます。MySQL リリースシリーズの開発ステータスにあるバージョンへのアップグレードでは、必ずしもそうではありません。開発リリースは自己責任でご使用ください。

新しいバージョンの使用に慎重な場合には、新しいバージョンをインストールする前に、常に古い mysqld の名前を変更できます。たとえば、MySQL 5.5 のバージョンを使用していて 5.6 にアップグレードする場合は、現在のサーバーを mysqld から mysqld-5.5 に名前変更します。新しい mysqld に予想外の問題が発生した場合は、単にそれをシャットダウンして古い mysqld を起動するだけで済みます。

新しい mysqld サーバーが起動しない、あるいはパスワードなしで接続できないなどの問題が発生した場合には、前のインストールの古い my.cnf ファイルが残っていないか確認します。これは --print-defaults オプション (たとえば、mysqld --print-defaults) で確認できます。このコマンドがプログラム名以外の何かを表示した場合、サーバーあるいはクライアントオペレーションに影響を及ぼすアクティブな my.cnf ファイルがあることになります。

アップグレード後に、コンパイル済みのクライアントプログラムに Commands out of sync または予測外のコアダンプなどの問題が発生した場合は、プログラムのコンパイル時に、古いヘッダーファイルまたはライブラリファイルを使用した可能性があります。この場合、mysql.h ファイルおよび libmysqlclient.a ライブラリの日付をチェックして、それらが新しい MySQL 配布のものであることを確認します。そうでない場合には、プログラムを新しいヘッダーおよびライブラリで再度コンパイルします。(libmysqlclient.so.15 から libmysqlclient.so.16 など) ライブラリのメジャーバージョン番号が変更された場合は、共有クライアントライブラリを使用してコンパイルされたプログラムも再コンパイルが必要になることがあります。

MySQL インストールに、インプレースアップグレード後の変換に長い時間がかかる可能性のある大量のデータが含まれている場合は、必要な変換とその実行に関係する作業を評価するための仮のデータベースインスタンスを作成すると役立つことがあります。mysql データベースの完全なコピーと、データを含まないその他のすべてのデータベースを含む MySQL インスタンスのコピーを作成します。このダミーのインスタンスに対してアップグレードの手順を実行し、必要になるアクションを確認して、元のデータベースインスタンスで実際のデータ変換を実行するときに関係する作業をよりよく評価できるようにします。

新しいリリースの MySQL をインストールした際は必ず Perl DBD::mysql モジュールを再構築して再インストールするのがいいでしょう。同じことが、PHP mysql 拡張や Python MySQLdb モジュールなどの、ほかの MySQL インタフェースにも言えます。

2.11.1.1 MySQL Yum リポジトリを使用する MySQL のアップグレード

サポートされる Yum ベースのプラットフォーム (リストについてはセクション2.5.1「MySQL Yum リポジトリを使用して MySQL を Linux にインストールする」を参照してください) では、MySQL Yum リポジトリを使用して、MySQL のインプレースアップグレード (つまり、古いバージョンを置換して、古いデータファイルに対して新しいバージョンを実行) を実行できます。

メモ

  1. ターゲットシリーズの選択

    デフォルトでは、MySQL Yum リポジトリは、インストール中に選択したリリースシリーズ内の最新バージョンに MySQL を更新します (詳細はSelecting a Release Seriesを参照してください)。つまり、たとえば 5.6.x インストールは 5.7.x リリースに自動的には更新されません。別のリリースシリーズに更新するには、(デフォルトで、または自分で) 選択したシリーズのサブリポジトリを無効にし、ターゲットシリーズのサブリポジトリを有効にする必要があります。それをするには、 Selecting a Release Seriesで説明されている、/etc/yum.repos.d/mysql-community.repo ファイル内のサブリポジトリのエントリを編集するための手順に従います。

    原則として、あるリリースシリーズから別のものにアップグレードするには、シリーズをスキップせずに次のシリーズに移動します。たとえば、現在 MySQL 5.5 を稼働していて、5.7 にアップグレードする場合は、MySQL 5.7 にアップグレードする前にまず 5.6 にアップグレードします。

    重要

    MySQL 5.6 から 5.7 へのアップグレードに関する重要な情報については、「Upgrading from MySQL 5.6 to 5.7」を参照してください。

  2. MySQL のアップグレード

    次のコマンドで MySQL およびそのコンポーネントをアップグレードします。

    shell> sudo yum update mysql-server

    または、Yum に対してシステム上のすべてを更新するように指示することで、MySQL を更新することもできます (これにはかなり時間がかかる場合があります)。

    shell> sudo yum update

  3. MySQL の再起動

    MySQL Server は、Yum による更新後必ず再起動します。サーバーの再起動後、mysql_upgrade を実行して、古いデータとアップグレードされたソフトウェアとの間の非互換性をチェックし、あれば解決します。mysql_upgrade はその他の機能も実行します。詳細は、セクション4.4.7「mysql_upgrade — MySQL テーブルのチェックとアップグレード」を参照してください。

特定のコンポーネントのみを更新することもできます。次のコマンドを使用して、MySQL コンポーネントのインストール済みのすべてのパッケージをリストできます。

shell> sudo yum list installed | grep "^mysql"

選択したコンポーネントのパッケージ名を特定したら、次のコマンドで package-name をそのパッケージ名に置換して、パッケージを更新します。

shell> sudo yum update package-name

共有クライアントライブラリのアップグレード

Yum リポジトリを使用して MySQL を更新したあとも、古いバージョンの共有クライアントライブラリを使用してコンパイルされたアプリケーションは機能するはずです。

アプリケーションを再コンパイルして、更新されたライブラリに動的にリンクする場合: 一般的に、新しいバージョンの共有ライブラリでは新旧ライブラリ間でシンボルバージョン管理に違いや追加があるため (たとえば、新しい標準 5.6 共有クライアントライブラリと、Linux 配布のソフトウェアリポジトリによってネイティブで出荷された、またはその他のソースからの一部の古い (以前のまたはバリアントの) バージョンの共有ライブラリとの間で)、更新された新しい共有ライブラリを使用してコンパイルされたアプリケーションは、アプリケーションが配備されるシステム上で更新済みのライブラリを必要とします。また、これらのライブラリがない場合は、共有ライブラリを必要とするアプリケーションは予想どおり失敗します。したがって、MySQL からの共有ライブラリのパッケージを、必ずこれらのシステムに配備してください。これは、MySQL Yum リポジトリをシステムに追加し (Adding the MySQL Yum Repositoryを参照してください)、Installing Additional MySQL Products and Components with Yumに記載の手順を使用して最新の共有ライブラリをインストールすることによって実行できます。

2.11.1.2 MySQL APT リポジトリを使用する MySQL のアップグレード

Debian 7、Ubuntu 12、および Ubuntu 14 では、MySQL およびそのコンポーネントを、MySQL APT リポジトリでインプレースアップグレードできます。「A Quick Guide to Using the MySQL APT Repository」の、「Upgrading MySQL with the MySQL APT Repository」を参照してください。

2.11.1.3 MySQL 5.5 から 5.6 へのアップグレード

注記

MySQL 5.6.6 以降では、MySQL Server のいくつかのパラメータのデフォルト値が、前のリリースと異なっています。このセクションで後述するこれらの変更に関する注記、特に後方互換性の維持が懸念事項である場合は、それらのオーバーライドに関する注記を参照してください。

注記

新しいバージョンのソフトウェアをインストールする前にデータのバックアップを必ず励行してください。MySQL は、高水準の品質を保証するため多大な努力を行なっていますが、バックアップを取ってデータを保護してください。

以前のバージョンから 5.6 にアップグレードするには、アップグレードの前に mysqldump でテーブルをダンプし、アップグレード後にダンプファイルをリロードすることを、MySQL は推奨します。すべてのデータベースをダンプに含めるには、--all-databases オプションを使用します。データベースにストアドプログラムが含まれる場合は、--routines オプションおよび --events オプションも使用します。

一般的に、MySQL 5.5 から 5.6 へのアップグレードを行う場合は次を実行します。

  • 次のセクションにあるすべての項目を読み、いずれかの項目がアプリケーションに影響を及ぼすかどうか確認します。

    • セクション2.11.1「MySQL のアップグレード」に、更新に関する一般的な情報があります。

    • このセクションで後述する変更リスト内の項目によって、現在の MySQL インストールに該当するアップグレードの問題を識別できます。そこで説明されている互換性の欠如の一部は、アップグレードの前に注意する必要があります。ほかの点はアップグレードのあとで扱うようにしてください。

    • MySQL 5.6 リリースノートでは、5.6 で使用できる主な新機能や、MySQL の以前のリリースとは異なるものについて説明しています。これらの変更の一部には互換性がない場合があります。

    既知の問題または非互換の変更というマークが付いている変更に特に注意してください。以前のバージョンの MySQL との互換性がないこれらの変更では、アップグレードする前に注意を払う必要があることがあります。弊社の目的はそれらの変更を避けることですが、各リリースの間の非適合性よりもさらに深刻な問題を修正するために必要である場合もあります。使用しているインストールに当てはまるアップグレードの問題に、特別な処置を必要とする互換性の欠如が関係している場合は、互換性の欠如の説明にある手順に従ってください。これには、テーブルのダンプとリロード、あるいは CHECK TABLEREPAIR TABLE などのステートメントの使用が含まれる場合があります。

    ダンプとリロードの手順については、セクション2.11.4「テーブルまたはインデックスの再作成または修復」を参照してください。USE_FRM オプションを使う REPAIR TABLE に関係する手順は、アップグレードの前に実行する必要があります。テーブルの作成に使用したものとは異なるバージョンの MySQL でこのステートメントを使用すると (つまり、アップグレード後にこのステートメントを使用すると)、テーブルが破損することがあります。セクション13.7.2.5「REPAIR TABLE 構文」を参照してください。

  • 新しいバージョンの MySQL にアップグレードする前に、現在使用している MySQL のバージョンとアップグレードするバージョンとの間でテーブルの形式または文字セットまたは照合順序に変更があったかどうかを、セクション2.11.3「テーブルまたはインデックスの再構築が必要かどうかのチェック」で確認してください。その場合、それらの変更により MySQL バージョン間に互換性の欠如が生じている場合は、セクション2.11.4「テーブルまたはインデックスの再作成または修復」の手順を使用して影響されるテーブルをアップグレードすることが必要になります。

  • MySQL の新しいバージョンにアップグレードしたら、mysql_upgrade を実行します (セクション4.4.7「mysql_upgrade — MySQL テーブルのチェックとアップグレード」を参照してください)。このプログラムはテーブルを確認し、必要に応じて修復を試みます。また、付与テーブルを更新して最新の構造を持つようにし、新しい機能を活用できるようにします。(MySQL のリリースの中には、新たに権限や機能を加えるために付与テーブルの構造に変更を加えているものもあります。)

    mysql_upgrade では、ヘルプテーブルの内容はアップグレードされません。アップグレードの手順については、セクション5.1.10「サーバー側のヘルプ」を参照してください。

  • MySQL Server を Windows 上で使用する場合は、セクション2.3.7「Windows 上の MySQL をアップグレードする」を参照してください。

  • レプリケーションを使用する場合は、レプリケーションのセットアップのアップグレードについてセクション17.4.3「レプリケーションセットアップをアップグレードする」を参照してください。

MySQL インストールに、インプレースアップグレード後の変換に長い時間がかかる可能性のある大量のデータが含まれている場合は、必要な変換とその実行に関係する作業を評価するための仮のデータベースインスタンスを作成すると役立つことがあります。mysql データベースの完全なコピーと、データを含まないその他のすべてのデータベースを含む MySQL インスタンスのコピーを作成します。このダミーのインスタンスに対してアップグレードの手順を実行し、必要になるアクションを確認して、元のデータベースインスタンスで実際のデータ変換を実行するときに関係する作業をよりよく評価できるようにします。

次からのセクションにあるすべての項目を読み、いずれかの項目がアプリケーションに影響を及ぼすかどうか確認します。

構成の変更
  • MySQL 5.6.6 以降では、MySQL Server のいくつかのパラメータのデフォルト値が、前のリリースと異なっています。これらの変更の目的は、初期設定のままで優れたパフォーマンスを提供し、データベース管理者が設定を手動で変更する必要性を低下させることです。これらの変更は、フィードバックの取得に伴い将来のリリースでのリビジョンにつながる場合があります。

    パラメータが異なる静的なデフォルト値を持つ場合もあります。あるいは、静的な値を使用するのではなく、ほかの関連するパラメータやサーバーホスト構成に基づく公式を使用して、サーバーが起動時にパラメータを自動サイズ設定する場合もあります。たとえば、back_log の現在の設定は、以前のデフォルトの 50 で、max_connections の値に比例する量に応じて上方に調整されます。自動サイズ設定の背後には、固定値よりも適切だと思われるパラメータ設定について、決定を下すために利用できる情報をサーバーが持つ場合、その決定を下すという考え方があります。

    次の表は、デフォルトへの変更を要約したものです。これらはすべて、サーバー起動時に明示的な値を指定することによってオーバーライドできます。

    パラメータ古いデフォルト新しいデフォルト
    back_log50max_connections を使用した自動サイズ設定
    binlog_checksumNONECRC32
    --binlog-row-event-max-size10248192
    flush_time1800 (Windows の場合)0
    innodb_autoextend_increment864
    innodb_buffer_pool_instances18 (プラットフォームに依存)
    innodb_checksum_algorithmINNODBCRC32
    innodb_concurrency_tickets5005000
    innodb_file_per_table01
    innodb_old_blocks_time01000
    innodb_open_files300innodb_file_per_tabletable_open_cache を使用した自動サイズ設定
    innodb_stats_on_metadataONOFF
    join_buffer_size128KB256KB
    max_allowed_packet1MB4MB
    max_connect_errors10100
    sync_master_info010000
    sync_relay_log010000
    sync_relay_log_info010000

    以前のリリースとの互換性に関して、もっとも重要な変更は:

    • innodb_file_per_table は有効です (以前は無効)。

    • innodb_checksum_algorithmCRC32 です (以前は INNODB)。

    • binlog_checksumCRC32 です (以前は NONE)。

    したがって、既存の MySQL インストールからアップグレードする場合で、これらのパラメータの値を以前のデフォルトからまだ変更しておらず、後方互換性が懸念事項である場合は、これらを以前のデフォルト値に明示的にセットするとよいでしょう。たとえば、サーバーのオプションファイルに次の行を挿入します。

    [mysqld]
    innodb_file_per_table=0
    innodb_checksum_algorithm=INNODB
    binlog_checksum=NONE

    これらの設定により、互換性が次のように維持されます。

    • innodb_file_per_table の新しいデフォルトは有効で、アップグレード後に ALTER TABLE 操作を行うとシステムのテーブルスペース内の InnoDB テーブルが個々の .ibd ファイルに移動されます。innodb_file_per_table=0 を使用するとこれを防ぐことができます。

    • innodb_checksum_algorithm=INNODB を設定することにより、このリリースにアップグレードしたあとでバイナリのダウングレードが可能になります。CRC32 を設定することにより、InnoDB は MySQL の古いバージョンが使用できないチェックサムを使用します。

    • binlog_checksum=NONE により、バイナリログチェックサムを理解しない古いスレーブが失敗することなく、サーバーをレプリケーションマスターとして使用できます。

  • MySQL 5.6.5 では、4.1 より前のパスワードと mysql_old_password 認証プラグインは非推奨です。MySQL 4.1 より前で使用される古いハッシュ形式で格納されているパスワードは、ネイティブのパスワードハッシュ方式を使用するパスワードよりもセキュアでないため、使用しないようにしてください。4.1 より前のパスワードハッシュを持つアカウントを使用して接続することを防ぐために、secure_auth システム変数はデフォルトで有効になりました。(このようなパスワードハッシュを持つアカウントに対して接続を許可するには、--secure_auth=0 を使用してサーバーを起動してください。)

    データベース管理者は、mysql_old_password 認証プラグインを使用するアカウントを、代わりに mysql_native_password を使用するように変換することが推奨されます。アカウントのアップグレード手順については、セクション6.3.8.3「4.1 よりも前のパスワードハッシュ方式と mysql_old_password プラグインからの移行」を参照してください。

    既知の問題: MySQL 5.6 の以前の開発バージョンの一部 (5.6.6 から 5.6.10) では、サーバーが、パスワードハッシュと認証プラグインが一致しないアカウントを作成することがあります。たとえば、デフォルトの認証プラグインが mysql_native_password の場合、次のステートメントのシーケンスにより、プラグインが mysql_native_password だが、4.1 より前のパスワードハッシュ (mysql_old_password で使用される形式) であるアカウントになります。

    SET old_passwords = 1;
    CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';

    この不一致により、MySQL Server に接続できない、SET PASSWORDOLD_PASSWORD() または old_passwords=1 で使用できない、などの現象が発生します。

    MySQL 5.6.11 では、この不一致は発生しなくなりました。代わりに、サーバーがエラーを生成します。

    mysql> SET old_passwords = 1;mysql> CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';ERROR 1827 (HY000): The password hash doesn't have the expected
    format. Check if the correct password algorithm is being used with
    the PASSWORD() function.

    不一致の影響を受けているアカウントを処理するには、データベース管理者はそのアカウントの mysql.user テーブルの行の plugin カラムまたは Password カラムを、ほかのカラムと一致するように修正できます。

    • old_passwords を 0 に設定してから、SET PASSWORD および PASSWORD() を使用してアカウントに新しいパスワードを割り当てます。これにより、Password カラムが 4.1 パスワードハッシュを持つようになり、mysql_native_password プラグインと一致します。これが、推奨されるアカウントの修正方法です。

    • あるいは、データベース管理者はプラグインがパスワードハッシュ形式に一致するように mysql_old_password を変更してから、権限をフラッシュできます。mysql_old_password プラグインおよび 4.1 より前のパスワードハッシュは非推奨であり、MySQL の将来のバージョンではサポートされなくなるため、この方法は推奨されません。

サーバーの変更
  • 互換性のない変更: あるカラムの DEFAULT 値が、テーブル作成時の sql_mode 値に対しては有効だが、行の挿入または更新を行うときの sql_mode 値に対しては無効であるということが起こり得ます。例:

    SET sql_mode = '';
    CREATE TABLE t (d DATE DEFAULT 0);
    SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES';
    INSERT INTO t (d) VALUES(DEFAULT);

    この場合、0 は CREATE TABLE に対しては受け入れられるべきですが、INSERT に対しては受け入れられるべきではありません。しかし、サーバーは挿入または更新時の DEFAULT 値を現在の sql_mode に対して評価しませんでした。この例では、INSERT は成功し、'0000-00-00'DATE カラムに挿入します。

    MySQL 5.6.13 では、サーバーは適切な sql_mode チェックを適用して、挿入時または更新時に警告またはエラーを生成します。

    その結果、ステートメントベースのロギング (binlog_format=STATEMENT) を使用している場合に、レプリケーションに関する非互換性が生じます。スレーブがアップグレードされた場合、アップグレードされていないマスターが次の例をエラーなしで実行しますが、INSERT はスレーブで失敗し、レプリケーションは停止します。

    これに対処するには、マスター上のすべての新しいステートメントを停止し、スレーブが追い付くのを待ちます。そのあと、スレーブに続いてマスターをアップグレードします。あるいは、新しいステートメントを停止できない場合は、マスターで一時的に行ベースのロギングに変更し (binlog_format=ROW)、すべてのスレーブが、この変更の時点までに生成されたすべてのバイナリログを処理するまで待ちます。そのあと、スレーブに続いてマスターをアップグレードし、マスターをステートメントベースのロギングに戻します。

  • 互換性のない変更: MySQL 5.6.11 以降では、CREATE TABLE ... [SUB]PARTITION BY ALGORITHM=n [LINEAR] KEY (...) をサポートします。これは、KEY のパーティション化が MySQL 5.1 Server と互換性を持つテーブルを作成するのに使用できます (n=1)。(Bug #14521864、Bug #66462) この構文は MySQL 5.5.31 以降の MySQL 5.5 ではサポートされていますが、MySQL 5.6.10 以前では受け入れられません。MySQL 5.5.31 以降の MySQL 5.5 リリースの mysqldump には、このオプションを使用してテーブルをダンプするときに ALGORITHM オプションが含まれますが、次のように条件コメントで囲みます。

    CREATE TABLE t1 (a INT) 

    このような CREATE TABLE ステートメントを含むダンプを MySQL 5.6.10 以前の MySQL 5.6 Server にインポートする場合、バージョン付きコメントは無視されず構文エラーが発生します。したがって、このようなダンプファイルをインポートする前に、MySQL 5.6 Server がコメントを無視するように変更するか (文字列 !50531 が出現するたびにそれを削除するか、!50611 に置換することによって)、あるいは削除します。

    これは、MySQL 5.6.11 以降を使用して作成されたダンプファイルでは問題になりません。ここでは ALGORITHM オプションは を使用して書き込まれています。

  • 互換性のない変更: TIMEDATETIME、および TIMESTAMP カラムについては、MySQL 5.6.4 より前に作成されたテーブルに必要なストレージは、5.6.4 以降で作成されたテーブルに必要なストレージとは異なります。これは、5.6.4 で、これらの時間型が少数部を持つことを許可するように変更されたためです。MySQL 5.5 から MySQL 5.6.4 以降にアップグレードしたあと、MySQL 5.5 から MySQL 5.6 の TIMEDATETIME、および TIMESTAMP 型にもアップグレードすることを推奨します。ALTER TABLE は現在、MySQL 5.5 および MySQL 5.6.4 (以降) のバイナリ形式の時間カラムを含むテーブルの作成を許可しますが、このため、.frm ファイルが利用できない場合にテーブルを再作成するのがより困難になります。さらに、MySQL 5.6.4 では、前述の時間型はスペース効率が改善されています。MySQL 5.6.4 での時間型の変更の詳細は、Storage Requirements for Date and Time Typesを参照してください。

    MySQL 5.6.16 では、ALTER TABLE は、ADD COLUMNCHANGE COLUMNMODIFY COLUMNADD INDEX、および FORCE 操作に関して、古い時間カラムを 5.6 形式にアップグレードします。したがって、次のステートメントは、古い形式のカラムを含むテーブルをアップグレードします。

    ALTER TABLE tbl_name FORCE;

    テーブルを再構築しなければならないため、この変換は INPLACE アルゴリズムを使用して実行することはできません。そのため、これらの場合に ALGORITHM=INPLACE を指定するとエラーになります。必要であれば、ALGORITHM=COPY を指定します。

    ALTER TABLE は、時間形式の変換を実行しない場合には、SHOW WARNINGS: TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format で表示できるメッセージを生成します。

  • 前記の互換性のない変更で説明した時間型の変更のため、DATETIME 型および TIMESTAMP 型を含む、MySQL 5.6.4 より前のテーブルを MySQL 5.6.4 (以降) にインポートすると失敗します。これらの時間型を持つ MySQL 5.5 テーブルを MySQL 5.6.4 (以降) にインポートする場合が、この問題が発生する可能性がもっとも高いシナリオです。

    次の手順では、元の MySQL 5.6.4 より前の .frm ファイルを使用して、5.6.4 (以降) と互換性のある行構造を持つテーブルを再作成する回避策について説明します。この手順には、.frm ファイルを目的のインスタンスのデータディレクトリにコピーし、ALTER TABLE を使用してテーブルのストレージエンジンタイプを InnoDB に戻すことで、MySQL 5.6.4 より前の元の .frm ファイルを、InnoDB の代わりに Memory ストレージエンジンを使用するように変更することが含まれます。テーブルに外部キーがない場合は最初の手順を使用します。テーブルに外部キーが含まれる場合は、追加の手順を含む 2 番目の手順を使用します。

    テーブルに外部キーがない場合:

    1. テーブルの元の .frm ファイルを、テーブルスペースをインポートするサーバーのデータディレクトリにコピーします。

    2. テーブルの .frm ファイルを、InnoDB ストレージエンジンの代わりに Memory ストレージエンジンを使用するように変更します。この変更には、.frm ファイル内の、テーブルのストレージエンジンタイプを定義する 7 バイトを変更する必要があります。16 進の編集ツールを使用する場合:

      • 次に示すように、オフセット位置 0003 のバイト legacy_db_type を、0c (InnoDB) から 06 (Memory) に変更します。

        00000000 fe 01 09 06 03 00 00 10 01 00 00 30 00 00 10 00 
      • 残りの 6 バイトには固定のオフセットはありません。.frm ファイルで InnoDB を検索し、その他の 6 バイトを含む行を探します。行は次に示すようになります。

        00001010 ff 00 00 00 00 00 00 06 00 49 6e 6e 6f 44 42 00 |.........InnoDB.|
      • 行が次のようになるようにバイトを変更します。

        00001010 ff 00 00 00 00 00 00 06 00 4d 45 4d 4f 52 59 00
    3. ALTER TABLE ... ENGINE=INNODB を実行して、テーブル定義を InnoDB データディクショナリに追加します。これにより、新しい形式の時間データ型を持つ InnoDB テーブルが作成されます。ALTER TABLE 操作が正常に完了するためには、.frm ファイルがテーブルスペースに対応していなければなりません。

    4. ALTER TABLE ... IMPORT TABLESPACE を使用してテーブルをインポートします。

    テーブルに外部キーがある場合:

    1. SHOW CREATE TABLE の出力からテーブルの定義を使用して、外部キーのあるテーブルを再作成します。この時点では、正しくない時間カラムフォーマットは問題ではありません。

    2. INFORMATION_SCHEMA.TABLE_CONSTRAINTS および INFORMATION_SCHEMA.KEY_COLUMN_USAGE から外部キー情報を選択して、すべての外部キー定義をテキストファイルにダンプします。

    3. すべてのテーブルを削除し、外部キーのないテーブルに関する前述の手順のステップ 1 から 4 で説明されているテーブルのインポートプロセスを完了します。

    4. インポート操作が完了したら、テキストファイルに保存した外部キー定義から外部キーを追加します。

  • 互換性のない変更: MySQL 5.6 では、character_set_serverucs2utf16utf16le、または utf32 の場合、全文ストップワードファイルがロードされ、latin1 を使用して検索されます。サーバーの文字セットが ucs2utf16utf16le、または utf32 である間に、FULLTEXT インデックスを持つテーブルが作成された場合は、次のステートメントを使用して修復してください。

    REPAIR TABLE tbl_name QUICK;
  • 互換性のない変更: MySQL 5.6.20 では、Bug #69477 に対するパッチにより、BLOB で書き込まれる Redo ログのサイズが Redo ログファイルサイズの 10% に制限されます。この新しい制限の結果として、innodb_log_file_size は、テーブルの行で見つかった最大の BLOB データサイズの 10 倍よりも大きい値に設定するべきです。innodb_log_file_size 設定がすでに、最大の BLOB データサイズの 10 倍になっているか、テーブルに BLOB データが含まれない場合は、アクションは不要です。

    MySQL 5.6.22 では、Redo ログ BLOB の書き込み制限は 合計 Redo ログサイズ (innodb_log_file_size * innodb_log_files_in_group) の 10% に緩められました。(Bug #19498877)

SQL の変更
  • MySQL 5.5 では予約されていなかった一部のキーワードが、MySQL 5.6 では予約されている場合があります。セクション9.3「予約語」を参照してください。

  • YEAR(2) データ型には、使用する前に考慮する必要のある特定の問題があります。MySQL 5.6.6 以降、YEAR(2) は非推奨です。既存のテーブル内の YEAR(2) カラムは以前のとおりに扱われますが、新規または変更したテーブルでは YEAR(2)YEAR(4) に変換されます。詳細は、セクション11.3.4「YEAR(2) の制限と YEAR(4) への移行」を参照してください。

  • MySQL 5.6.6 では、値 DEFAULT をストアドプロシージャーまたはストアドファンクションのパラメータや、ストアドプログラムのローカル変数に割り当てることは (SET var_name = DEFAULT ステートメント)、明示的に不許可です。これは、以前にはサポートされておらず、許可されるという説明もありませんでしたが、何らかの都合で既存のコードでこの構造が使用されていた場合のために、互換性のない変更としてフラグが付けられました。システム変数に DEFAULT を割り当てることは以前と同様に許可されますが、DEFAULT をパラメータやローカル変数に割り当てると、構文エラーになります。

    MySQL 5.6.6 以降へのアップグレード後、この構造を使用する既存のストアドプログラムが起動されると、構文エラーになります。5.6.5 以前の mysqldump ファイルが 5.6.6 以降にロードされると、ロード操作は失敗し、影響を受けるストアドプログラム定義を変更する必要があります。

  • MySQL では、TIMESTAMP データ型は非標準的な方式であるという点でほかのデータ型と異なります。

    • NULL 属性で明示的に宣言されない TIMESTAMP カラムには、NOT NULL 属性が割り当てられます。(ほかのデータ型のカラムは、NOT NULL として明示的に宣言されない場合、NULL 値が許可されます。)そのようなカラムを NULL に設定すると、カラムは現在のタイムスタンプに設定されます。

    • テーブル内の最初の TIMESTAMP カラムは、NULL 属性や明示的な DEFAULT または ON UPDATE 句で宣言されない場合、DEFAULT CURRENT_TIMESTAMP および ON UPDATE CURRENT_TIMESTAMP 属性が自動的に割り当てられます。

    • 最初のカラムに続く TIMESTAMP カラムは、NULL 属性または明示的な DEFAULT 句で宣言されない場合、DEFAULT '0000-00-00 00:00:00' (ゼロタイムスタンプ) が自動的に割り当てられます。そのようなカラムに対して明示的な値を指定しない挿入された行については、カラムに '0000-00-00 00:00:00' が自動的に割り当てられて、警告は発生しません。

    これらの非標準の動作は TIMESTAMP についてはデフォルトのままですが、MySQL 5.6.6 以降では非推奨となり、起動時に次の警告が表示されます。

    [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
    Please use --explicit_defaults_for_timestamp server option (see
    documentation for more details).

    警告が示すように、非標準の動作をオフにするには、新しい explicit_defaults_for_timestamp システム変数を起動時に有効にします。この変数を有効にすると、サーバーは TIMESTAMP を、代わりに次のように処理します。

    • 明示的に NOT NULL として宣言されない TIMESTAMP カラムでは、NULL 値が許可されます。そのようなカラムを NULL に設定することで、カラムは現在のタイムスタンプではなく NULL に設定されます。

    • TIMESTAMP カラムに DEFAULT CURRENT_TIMESTAMP または ON UPDATE CURRENT_TIMESTAMP 属性が自動的に割り当てられません。これらの属性は、明示的に指定する必要があります。

    • NOT NULL として宣言され、明示的な DEFAULT 句を持たない TIMESTAMP カラムは、デフォルト値を持たないものとして処理されます。そのようなカラムについて明示的な値を指定しない挿入された行の場合、結果は SQL モードによって異なります。厳密 SQL モードが有効である場合、エラーが発生します。厳密 SQL モードが有効でない場合、カラムには暗黙的なデフォルトの '0000-00-00 00:00:00' が割り当てられ、警告が発生します。これは、MySQL が DATETIME などのほかの時間型を処理する方法に類似しています。

    レプリケーションに使用されるサーバーをアップグレードする場合は、まずスレーブをアップグレードしてからマスターをアップグレードします。マスターとそのスレーブとの間のレプリケーションは、すべてが explicit_defaults_for_timestamp の同じ値を使用しているという条件で、機能するはずです。

    1. スレーブを停止してアップグレードし、explicit_defaults_for_timestamp の任意の値で構成してから起動します。

      スレーブは、マスターから受信したバイナリログの形式から、マスターが古い (explicit_defaults_for_timestamp の導入に先行する) こと、およびマスターからの TIMESTAMP カラムが古い TIMESTAMP 動作を使用していることを認識します。

    2. マスターを停止してアップグレードし、スレーブに使用されるのと同じ explicit_defaults_for_timestamp の値で構成してから起動します。

2.11.2 MySQL のダウングレード

このセクションでは、新しいバージョンよりも以前のバージョンの方がよく動作するというまれな場合のために、MySQL の古いバージョンにダウングレードする方法について説明します。

ダウングレードが失敗してインスタンスが不安定な状態になった場合に備えて、前もってバックアップを取るとよいでしょう。

同じリリースシリーズ内の一般提供 (GA) ステータスのバージョン間でダウングレードする場合は、通常は新しいバイナリを古いものの上にインストールするだけで、データベースには何も変更を加えません。

同じリリースシリーズ内のマイルストーンリリース間 (または GA リリースからマイルストーンリリースへ) のダウングレードはサポートされておらず、問題が発生する場合があります。

次の項目は、ダウングレードを実行する際に必ず行うことのチェックリストです。

ほとんどの場合、MySQL の同じリリースシリーズのバージョン内にとどまっているかぎり、MySQL 形式のファイルおよびデータファイルは、同じアーキテクチャーの異なる GA バージョン間で移動できます。

1 つのリリースシリーズから別のリリースシリーズにダウングレードする場合、テーブルストレージフォーマットの互換性が取れなくなる場合があります。その場合は、ダウングレードする前に mysqldump を使用してテーブルをダンプします。ダウングレードしたら、mysql あるいは mysqlimport を使用してダンプファイルをロードし、テーブルを再作成します。参考例は、セクション2.11.5「MySQL データベースのほかのマシンへのコピー」を参照してください。

ダウンロードした際の、下位互換性のないテーブル形式の変更の一般的な現象は、テーブルを開くことができないことです。そのような場合には、次の手順に従います。

  1. ダウングレード先の古い MySQL サーバーを停止します。

  2. ダウングレード元の新しい MySQL Server を再起動します。

  3. mysqldump を使用して、古いサーバーからアクセスできなかったテーブルをすべてダンプしてダンプファイルを作成します。

  4. 新しい MySQL Server を停止して古いサーバーを再起動します。

  5. 古いサーバーにダンプファイルをリロードします。これでテーブルにアクセスできるはずです。

mysql データベース内のシステムテーブルが変更された場合は、ダウングレードによって一部の機能が失われたり、調整が必要になったりする場合があります。次にいくつかの例を示します。

  • MySQL 5.1 では、トリガー作成には TRIGGER 権限が必要です。MySQL 5.0 では、TRIGGER 権限はなく、代わりに SUPER が必要です。MySQL 5.1 から 5.0 にダウングレードする場合は、5.1 で TRIGGER 権限を持っていたアカウントに SUPER 権限を付与する必要があります。

  • トリガーは MySQL 5.0 で追加されたため、5.0 から 4.1 にダウングレードする場合は、トリガーをまったく使用できません。

  • mysql.proc.comment カラム定義は、MySQL 5.1 と 5.5 との間で変更されました。5.5 から 5.1 へのダウングレード後、このテーブルは壊れていて修復が必要であるとみなされます。この問題を回避するには、ダウングレード先の MySQL のバージョンから mysql_upgrade を実行します。

2.11.2.1 MySQL 5.5 へのダウングレード

MySQL 5.6 から MySQL 5.5 にダウングレードする場合、MySQL 5.5 とは異なる MySQL 5.6 の動作または機能に関係する次の問題に注意してください。

システムテーブル
  • MySQL 5.6 の mysql.user テーブルには password_expired カラムがあります。MySQL 5.5 の mysql.user テーブルにはありません。これは、MySQL 5.6 でパスワードが期限切れになっているアカウントは MySQL 5.5 では正常に機能しないことを意味します。

データ型
  • TIMEDATETIME、および TIMESTAMP カラムについては、MySQL 5.6.4 より前に作成されたテーブルに必要なストレージは、5.6.4 以降で作成されたテーブルに必要なストレージとは異なります。これは、5.6.4 で、これらの時間型が少数部を持つことを許可するように変更されたためです。5.6.4 より前のバージョンにダウングレードする場合は、ダウングレードする前に mysqldump を使用して影響されるテーブルをダンプし、ダウングレード後にテーブルをリロードします。

InnoDB
  • InnoDB 検索インデックス (型が FULLTEXT のもの) は MySQL 5.6.4 で導入され、5.6 シリーズの以前のリリースを含む、MySQL の以前のバージョンとは互換性がありません。ダウングレードを実行する前に、このようなインデックスは削除します。

  • innodb_page_size 構成オプションで指定される InnoDB の小さいページサイズは MySQL 5.6.4 で導入され、5.6 シリーズの以前のリリースを含む、MySQL の以前のバージョンとは互換性がありません。小さい InnoDB ページサイズを使用するインスタンス内のすべての InnoDB テーブルをダンプし、テーブルを削除し、ダウングレード後に再作成してリロードします。

レプリケーション
  • MySQL 5.6 では、relay-log.info ファイルは行カウントおよびレプリケーション遅延値を含むため、古いバージョンとはファイル形式が異なります。セクション17.2.2.2「スレーブステータスログ」を参照してください。スレーブサーバーを MySQL 5.6 より前のバージョンにダウングレードすると、古いサーバーはファイルを正しく読み取りません。これに対処するには、テキストエディタでファイルを変更し、行数を含む最初の行を削除します。

  • MySQL 5.6.6 より、MySQL Server はバイナリログへの書き込みに Version 2 バイナリログイベントを使用します。Version 2 ログイベントを使用して書き込まれたバイナリログは、前のバージョンの MySQL Server では読み取れません。古いサーバーが読み取ることができる、Version 1 ログイベントを使用して書き込まれたバイナリログを生成するには、MySQL 5.6.6 以降のサーバーを --log-bin-use-v1-row-events=1 を使用して起動します。これは、バイナリログの書き込みに Version 1 イベントを使用することをサーバーに強制します。

2.11.3 テーブルまたはインデックスの再構築が必要かどうかのチェック

バイナリアップグレードまたはバイナリダウングレードでは、テーブルをダンプしてリロードせずに、あるバージョンの MySQL を既存のバージョンの上にインプレースでインストールします。

  1. 既存のバージョンのサーバーが動作している場合は、それを停止します。

  2. 別のバージョンの MySQL をインストールします。新しいバージョンが元のバージョンより新しい場合はアップグレードになり、古い場合はダウングレードになります。

  3. 新しいバージョンのサーバーを起動します。

多くの場合、MySQL の以前のバージョンのテーブルは新しいバージョンで問題なく使用できます。ただし、このセクションで説明するように、テーブルまたはテーブルのインデックスの再構築が必要になるような変更が生じることもあります。ここで説明する問題のいずれかの影響を受けるテーブルがある場合は、必要に応じてそのテーブルまたはインデックスをセクション2.11.4「テーブルまたはインデックスの再作成または修復」に記載の手順を使用して再構築します。

テーブルの非互換性

ARCHIVE テーブルを含む MySQL 5.0 インストールから MySQL 5.1 へのバイナリアップグレードのあと、これらのテーブルにアクセスすると、mysql_upgrade または CHECK TABLE ... FOR UPGRADE を実行済みでもサーバーがクラッシュします。この問題を回避するには、アップグレードの前に mysqldump を使用してすべての ARCHIVE テーブルをダンプし、アップグレード後に MySQL 5.1 にリロードします。MySQL 5.1 から 5.0 へのバイナリダウングレードでも同じ問題が生じます。

アップグレードの問題は MySQL 5.6.4 で修正されています。サーバーは MySQL 5.0 で作成された ARCHIVE テーブルを開けます。ただし、引き続き推奨されるアップグレード手順は、アップグレードの前に 5.0 の ARCHIVE テーブルをダンプし、アップグレード後にリロードする手順です。

インデックスの非互換性

MySQL 5.6.3 では、ROW_FORMAT=DYNAMIC または ROW_FORMAT=COMPRESSED を使用する InnoDB テーブルについては、インデックスプリフィクスキーの長さ制限は 767 バイトから 3072 バイトに増加しました。詳細は、セクション14.6.7「InnoDB テーブル上の制限」を参照してください。この変更は、MySQL 5.5.14 にも移植されています。これら以上のリリースのいずれかから、長さ制限が短い以前のリリースにダウングレードする場合、インデックスプリフィクスキーを 767 バイトに切り捨てることができます。そうしないとダウングレードが失敗することがあります。この問題は、ダウングレードするサーバー上で構成オプション innodb_large_prefix が有効であった場合にのみ生じる可能性があります。

テーブルのダンプおよびリロードを実行せずにバイナリアップグレードを実行する場合、MySQL 4.1 から 5.1 以上に直接アップグレードすることはできません。これは、MySQL 5.0 の MyISAM テーブルインデックスの形式の非互換な変更によるものです。MySQL 4.1 から 5.0 にアップグレードし、すべての MyISAM テーブルを修復してください。その後、MySQL 5.0 から 5.1 にアップグレードし。テーブルをチェックして修復します。

文字セットまたは照合順序の処理の変更により、文字セットの順序が変更されることがあり、そのために、影響を受ける文字セットまたは照合順序を使用するインデックスのエントリの順序が正しくなくなることがあります。こうした変更から、いくつかの問題が生じることがあります。

  • 比較の結果が前の結果と異なる

  • インデックスエントリの順序付けが間違っているために一部のインデックス値を見つけることができない

  • ORDER BY の結果の順序付けが間違っている

  • CHECK TABLE によってレポートされるテーブルを修復する必要がある

これらの問題の解決方法は、インデックスを削除して再作成するか、テーブル全体をダンプしてリロードすることにより、影響を受ける文字セットまたは照合順序を使用するインデックスを再構築することです。場合によっては、影響を受けるカラムを変更して、別の照合順序を使用するようにすることができます。インデックスの再構築については、セクション2.11.4「テーブルまたはインデックスの再作成または修復」を参照してください。

再構築する必要のあるインデックスがテーブルにあるかどうかを確認するには、次のリストを参照してください。このリストは、インデックスの再構築が必要な文字セットまたは照合順序の変更が導入された MySQL のバージョンを示しています。各エントリは、変更が行われたバージョンと、その変更の影響を受ける文字セットまたは照合順序を示しています。変更が特定のバグレポートに関連付けられている場合は、そのバグ番号が示されています。

このリストは、バイナリアップグレードとバイナリダウングレードの両方に適用されます。たとえば、Bug #27877 は MySQL 5.1.24 で修正されたため、5.1.24 より前のバージョンから 5.1.24 以上のバージョンへのアップグレード、および 5.1.24 以上から 5.1.24 より前のバージョンへのダウングレードに適用されます。

多くの場合、CHECK TABLE ... FOR UPGRADE を使用して、インデックスの再構築が必要なテーブルを識別できます。次のメッセージがレポートされます。

Table upgrade required.
Please do "REPAIR TABLE `tbl_name`" or dump/reload to fix it!

これらの場合には、mysqlcheck --check-upgrade または mysql_upgrade も使用できます。これらは CHECK TABLE を実行します。ただし、CHECK TABLE を使用できるのは、ダウングレードではなくアップグレードのあとだけです。また、CHECK TABLE は、すべてのストレージエンジンに適用できるとは限りません。CHECK TABLE がサポートするストレージエンジンの詳細は、セクション13.7.2.2「CHECK TABLE 構文」を参照してください。

これらの変更により、インデックスの再構築が必要になります。

  • MySQL 5.1.24 (Bug #27877)

    'ß' LATIN SMALL LETTER SHARP S (ドイツ語) を含むカラムの utf8_general_ci または ucs2_general_ci 照合順序を使用するインデックスに影響します。このバグフィックスでは、元の照合順序のエラーが修正されましたが、'ß' が、以前は異なるという比較結果だった文字と同じという比較結果になるという、非互換性が導入されました。

    影響を受けるテーブルは、MySQL 5.1.30 では CHECK TABLE ... FOR UPGRADE で検出できます (Bug #40053 を参照してください)。

    この問題の回避策は、MySQL 5.1.62、5.5.21、および 5.6.5 で実装されています。回避策には、影響されるカラムを utf8_general_mysql500_ci および ucs2_general_mysql500_ci 照合順序を使用するように変更することが含まれます。この照合順序では、元の 5.1.24 より前の utf8_general_ci および ucs2_general_ci の順序付けを維持します。

  • MySQL 5.0.48、5.1.23 (Bug #27562)

    '`' GRAVE ACCENT、'[' LEFT SQUARE BRACKET、'\' REVERSE SOLIDUS、']' RIGHT SQUARE BRACKET、'~' TILDE のいずれかの文字を含むカラムで ascii_general_ci 照合順序を使用するインデックスに影響があります

    影響を受けるテーブルは、MySQL 5.1.29 では CHECK TABLE ... FOR UPGRADE で検出できます (Bug #39585 を参照してください)。

  • MySQL 5.0.48、5.1.21 (Bug #29461)

    eucjpmseuc_krgb2312latin7macceujis のいずれかの文字セットを使用するカラムのインデックスに影響があります

    影響を受けるテーブルは、MySQL 5.1.29 では CHECK TABLE ... FOR UPGRADE で検出できます (Bug #39585 を参照してください)。

2.11.4 テーブルまたはインデックスの再作成または修復

このセクションでは、データ型または文字セットの処理方法に関する MySQL の変更後の、テーブルの再構築方法を説明します。たとえば、照合順序のエラーが修正され、その照合順序を使用する文字カラムのインデックスを更新するためにテーブルの再構築が必要になることがあります。(例については、セクション2.11.3「テーブルまたはインデックスの再構築が必要かどうかのチェック」を参照してください。)CHECK TABLEmysqlcheck、または mysql_upgrade によって実行されるようなテーブルチェック操作によって示されるように、テーブルを修復またはアップグレードする必要がある場合があります。

テーブルを再構築する方法には、テーブルをダンプしてリロードする方法や、ALTER TABLE または REPAIR TABLE を使用する方法があります。REPAIR TABLEMyISAMARCHIVE、および CSV の各テーブルのみに適用されます。

注記

バイナリ (インプレース) アップグレードまたはダウングレード後に、MySQL の異なるバージョンがテーブルを処理しないためにテーブルを再構築する場合は、ダンプしてリロードする方法を使用する必要があります。アップグレードまたはダウングレードの前に、元のバージョンの MySQL を使用してテーブルをダンプします。次に、アップグレードまたはダウングレードのあとに、テーブルをリロードします。

インデックスを再構築する目的のためだけにダンプしてリロードする方法を使ってテーブルを再構築する場合は、アップグレードまたはダウングレードの前でもあとでもダンプを実行できます。その場合でも、リロードはあとで行う必要があります。

テーブルをダンプしてリロードすることによって再構築するには、mysqldump を使用してダンプファイルを作成し、mysql でファイルをリロードします。

shell> mysqldump db_name t1 > dump.sqlshell> mysql db_name < dump.sql

単独のデータベース内のテーブルをすべて再構築する場合は、データベース名を、そのあとにテーブル名なしで指定します。

shell> mysqldump db_name > dump.sqlshell> mysql db_name < dump.sql

すべてのデータベース内のすべてのテーブルをリロードするには、--all-databases オプションを使用してください。

shell> mysqldump --all-databases > dump.sqlshell> mysql < dump.sql

ALTER TABLE でテーブルを再構築する場合は、null 変更を使用します。すなわち、すでに使用しているストレージエンジンを使用するように、テーブルを変更する ALTER TABLE ステートメントです。たとえば、t1InnoDB テーブルである場合、次のステートメントを利用します。

mysql> ALTER TABLE t1 ENGINE = InnoDB;

ALTER TABLE ステートメントで指定するストレージエンジンがわからない場合は、SHOW CREATE TABLE を使用してテーブル定義を表示します。

CHECK TABLE 操作でテーブルのアップグレードが必要であることが示されるために InnoDB テーブルを再構築する必要がある場合は、前述のように mysqldump を使用してダンプファイルを作成し、mysql でファイルをリロードします。CHECK TABLE 操作で、破損があることが示されたり InnoDB が失敗したりする場合は、innodb_force_recovery オプションを使用して InnoDB を再起動する方法について、セクション14.19.2「InnoDB のリカバリの強制的な実行」を参照してください。CHECK TABLE が遭遇している問題のタイプを理解するには、セクション13.7.2.2「CHECK TABLE 構文」InnoDB に関する注記を参照してください。

MyISAMARCHIVE、または CSV テーブルについては、テーブルチェック操作で破損があることやアップグレードが必要なことが示された場合は、REPAIR TABLE を使用できます。たとえば、MyISAM テーブルを修復するには、次のステートメントを使用します。

mysql> REPAIR TABLE t1;

mysqlcheck --repair は、コマンド行で REPAIR TABLE ステートメントへのアクセスを提供します。--databases オプションまたは --all-databases オプションをそれぞれ使用して、特定のデータベースまたはすべてのデータベースのすべてのテーブルを修復できるため、テーブル修復の方法として、より便利な場合があります。

shell> mysqlcheck --repair --databases db_name ...shell> mysqlcheck --repair --all-databases

MySQL 5.1.24 で、Bug #27877 に対する修正 (utf8_general_ci および ucs2_general_ci 照合順序を修正しました) によって導入された非互換性については、MySQL 5.1.62、5.5.21、および 5.6.5 で回避策が実装されています。これらのいずれかのバージョンにアップグレードしてから、影響を受ける各テーブルを次の方法のいずれかを使用して変換します。どの場合も、回避策には、影響されるカラムを utf8_general_mysql500_ci および ucs2_general_mysql500_ci 照合順序を使用するように変更することが含まれます。この照合順序では、元の 5.1.24 より前の utf8_general_ci および ucs2_general_ci の順序付けを維持します。

  • テーブルファイルをそのまま残すバイナリアップグレード後に、影響を受けるテーブルを変換するには、新しい照合順序を使用するようにテーブルを変更します。テーブル t1 に 1 つまたは複数の問題のある utf8 カラムがあるとします。テーブルをテーブルレベルで変換するには、次のようなステートメントを使用します。

    ALTER TABLE t1
    CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;

    カラム固有ベースで変更を適用するには、次のようなステートメントを使用します (COLLATE 句を除き、最初に指定されていたカラム定義を必ず繰り返します)。

    ALTER TABLE t1
    MODIFY c1 CHAR(N) CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;
  • ダンプしてリロードする手順を使用してテーブルをアップグレードする場合は、mysqldump を使用してテーブルをダンプし、ダンプファイル内の CREATE TABLE ステートメントを新しい照合順序を使用するように変更して、テーブルをリロードします。

適切な変更を行うと、CHECK TABLE はエラーをレポートしないはずです。

2.11.5 MySQL データベースのほかのマシンへのコピー

データベースを異なるアーキテクチャー間で移動する必要がある場合、mysqldump を使用して SQL ステートメントを含むファイルを作成します。次にそのファイルを別のマシンに転送して mysql クライアントへの入力として扱います。

注記

同じ浮動小数点形式をサポートしている異なるアーキテクチャー間で、MyISAM テーブルの .frm.MYI、および .MYD ファイルをコピーできます。(MySQL はバイトスワッピング問題を処理します。)セクション15.2「MyISAM ストレージエンジン」を参照してください。

利用できるオプションを表示するには mysqldump --help を使用します。

データベースを 2 つのマシンで間で移動するもっとも容易な (ただし、速くはない) 方法は、データベースを搭載したマシン上で次のコマンドを実行することです。

shell> mysqladmin -h 'other_hostname' create db_nameshell> mysqldump db_name | mysql -h 'other_hostname' db_name

データベースをリモートマシンから速度の遅いネットワークを介してコピーするには、次のコマンドを使用できます。

shell> mysqladmin create db_nameshell> mysqldump -h 'other_hostname' --compress db_name | mysql db_name

ダンプをファイルに保存して、そのファイルをターゲットマシンに転送し、そのファイルをそこのデータベースにロードすることもできます。たとえば、データベースをソースマシンの圧縮ファイルに次のようにダンプできます。

shell> mysqldump --quick db_name | gzip > db_name.gz

データベースのコンテンツを含んだファイルをターゲットマシンに転送し、そこで次のコマンドを実行します。

shell> mysqladmin create db_nameshell> gunzip < db_name.gz | mysql db_name

データベースの転送に mysqldump および mysqlimport を使用することもできます。大きなテーブルの場合、これは単に mysqldump を使用するよりも非常に速いです。次のコマンドで、DUMPDIRmysqldump の出力の保存に使用されるディレクトリのフルパス名です。

最初に、その出力ファイルのディレクトリを作成してデータベースをダンプします。

shell> mkdir DUMPDIRshell> mysqldump --tab=DUMPDIRdb_name

次に DUMPDIR ディレクトリのファイルをターゲットマシンの相当するディレクトリに転送して、そのファイルをそこの MySQL にロードします。

shell> mysqladmin create db_name # create databaseshell> cat DUMPDIR/*.sql | mysql db_name # create tables in databaseshell> mysqlimport db_nameDUMPDIR/*.txt # load data into tables

mysql データベースをコピーすることを忘れないでください。付与テーブルがそこに格納されているからです。新しいマシンで mysql データベースが用意できるまで、コマンドを MySQL root ユーザーとして実行しなければならない場合があります。

mysql データベースを新しいマシンにインポートしたら、mysqladmin flush-privileges を実行してサーバーに付与テーブルの情報をロードさせます。

2.12 環境変数

このセクションでは、MySQL で直接的あるいは間接的に使用されるすべての環境変数について説明します。これらの多くは本ドキュメントの別の場所にもあります。

コマンド行のどのようなオプションも、オプションファイルおよび環境変数で指定された値に優先し、オプションファイルの値は環境変数の値に優先することにご留意ください。

多くの場合、MySQL の動作を変更するには、環境変数ではなくオプションファイルを使用する方が好ましいといえます。セクション4.2.6「オプションファイルの使用」を参照してください。

変数説明
CXXC++ コンパイラの名前 (CMake 実行用)。
CCC コンパイラの名前 (CMake 実行用)。
DBI_USERPerl DBI のデフォルトユーザー名。
DBI_TRACEPerl DBI のトレースオプション。
HOMEmysql 履歴ファイルのデフォルトのパスは $HOME/.mysql_history です。
LD_RUN_PATHlibmysqlclient.so のロケーション指定に使用。
LIBMYSQL_ENABLE_CLEARTEXT_PLUGINmysql_clear_password 認証プラグインを有効化。セクション6.3.8.7「クライアント側のクリアテキスト認証プラグイン」を参照してください。
LIBMYSQL_PLUGIN_DIRクライアントプラグインを検索するディレクトリ。
LIBMYSQL_PLUGINSプリロードするクライアントプラグイン。
MYSQL_DEBUGデバッグ中のデバッグトレースオプション。
MYSQL_GROUP_SUFFIXオプショングループのサフィクスの値 (--defaults-group-suffix などの指定)。
MYSQL_HISTFILEmysql 履歴ファイルへのパス。この変数を設定すると、その値は $HOME/.mysql_history のデフォルトをオーバーライドします。
MYSQL_HISTIGNORE$HOME/.mysql_history にログ記録しないステートメントを指定するパターン。
MYSQL_HOMEサーバー固有の my.cnf ファイルが存在するディレクトリへのパス。
MYSQL_HOSTmysql コマンド行クライアントが使用するデフォルトのホスト名。
MYSQL_PS1mysql コマンド行クライアントで使用するコマンドプロンプト。
MYSQL_PWDmysqld に接続する際のデフォルトのパスワード。これを使用することはセキュアではありません。セクション6.1.2.1「パスワードセキュリティーのためのエンドユーザーガイドライン」を参照してください。
MYSQL_TCP_PORTデフォルトの TCP/IP ポート番号。
MYSQL_TEST_LOGIN_FILE.mylogin.cnf ログインファイルの名前。
MYSQL_UNIX_PORTlocalhost への接続に使用される、デフォルトの Unix ソケットファイル名。
PATHシェルが MySQL プログラムの検索に使用します。
TMPDIR一時ファイルが作成されるディレクトリ。
TZローカルタイムゾーンに設定するようにしてください。セクションB.5.4.6「タイムゾーンの問題」を参照してください。
UMASKファイルを作成する際のユーザーファイル作成モード。表のあとにある注釈を参照してください。
UMASK_DIRディレクトリを作成する際のユーザーディレクトリ作成モード。表のあとにある注釈を参照してください。
USERmysqld に接続する際の Windows のデフォルトのユーザー名。

mysql の履歴ファイルの詳細は、セクション4.5.1.3「mysql のロギング」を参照してください。

MYSQL_TEST_LOGIN_FILE は、ログインファイル (mysql_config_editor によって作成されるファイル) のパス名です。設定されていない場合、デフォルト値は Windows では %APPDATA%\MySQL\.mylogin.cnf ディレクトリ、Windows 以外のシステムでは $HOME/.mylogin.cnf です。セクション4.6.6「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください。

UMASK 変数および UMASK_DIR 変数は、その名前にもかかわらず、マスクではなくモードとして使用されます。

  • UMASK が設定されている場合、mysqld($UMASK | 0600) をファイル作成のモードとして使用し、新しく作成されるファイルのモードは 0600 から 0666 の範囲になります (すべて 8 進数の値)。

  • UMASK_DIR が設定されている場合、mysqld($UMASK_DIR | 0700) をディレクトリ作成のベースモードとして使用し、次に ~(~$UMASK & 0666) との AND が取られます。そのため新しく作成されるファイルのモードは 0700 から 0777 の範囲になります (すべて 8 進数の値)。AND 演算によってディレクトリモードから読み取り/書き込み権が削除されることがありますが、実行権が削除されることはありません。

MySQL では、UMASK または UMASK_DIR の値がゼロで始まる場合、その値は 8 進数と見なされます。

2.13 Perl のインストールに関する注釈

PerlDBIモジュールはデータベースアクセスのための一般的なインタフェースを提供します。変更なしで多くの異なったデータベースエンジンで作動する DBI スクリプトを書くことができます。DBI を使用するには、DBI モジュール、および DataBase Driver (DBD) モジュールを、アクセスする各データベースサーバーのタイプごとにインストールする必要があります。MySQL の場合、このドライバは DBD::mysql モジュールです。

MySQL ベンチマークスクリプトを実行する場合は、Perl および DBIDBD::MySQL モジュールがインストールされていなければなりません。セクション8.12.2「MySQL ベンチマークスイート」を参照してください。

注記

MySQL の配布には Perl のサポートは含まれていません。必要なモジュールは、Unix の場合は http://search.cpan.org から、Windows では ActiveState ppm プログラムを使用して取得できます。次のセクションでその方法について説明します。

DBI/DBD インタフェースは Perl 5.6.0 を必要とし、5.6.1 以降が推奨されます。それより古いバージョンの Perl の場合、DBI は機能しませんDBD::mysql 4.009 以上を使用するようにしてください。それより前のバージョンは使用可能ですが、MySQL 5.6 の全機能をサポートしているわけではありません。

2.13.1 Unix に Perl をインストールする

MySQL の Perl のサポートには MySQL のクライアントプログラムサポート (ライブラリおよびヘッダーファイル) をインストールする必要があります。ほとんどのインストール方法で、必要なファイルがインストールされます。MySQL を RPM ファイルからインストールする場合、開発者 RPM もインストールしてください。クライアントプログラムはクライアント RPM にありますが、クライアントプログラムサポートは開発者 RPM にあります。

Perl のサポートに必要なファイルは、http://search.cpan.org の CPAN (Comprehensive Perl Archive Network) から入手できます。

Unix に Perl モジュールをインストールするには CPAN モジュールを使用するのがいちばん簡単です。例:

shell> perl -MCPAN -e shellcpan> install DBIcpan> install DBD::mysql

DBD::mysql インストールは多くのテストを実行します。これらのテストでは、デフォルトのユーザー名とパスワードを使用してローカルの MySQL サーバーに接続を試みます。(デフォルトのユーザー名は、Unix ではログイン名であり、Windows では ODBC です。デフォルトのパスワードはパスワードなしです)。サーバーにそれらの値で接続できない場合 (たとえば、アカウントにパスワードを設定している場合)、テストは失敗します。force install DBD::mysql を使用すると、失敗したテストを無視できます。

DBI には Data::Dumper モジュールが必要です。それはインストールされている場合があります。もしされていない場合、DBI をインストールする前にそれをインストールするようにしてください。

モジュールの配布を圧縮 tar アーカイブの形でダウンロードして、モジュールを手動でビルドすることもできます。たとえば、DBI 配布をアンパックしてビルドするには、次のような手順に従います。

  1. 配布を現在のディレクトリにアンパックします。

    shell> gunzip < DBI-VERSION.tar.gz | tar xvf -

    このコマンドは、DBI-VERSION という名前のディレクトリを作成します。

  2. アンパックした配布のトップレベルのディレクトリに場所を変更します。

    shell> cd DBI-VERSION
  3. 配布をビルドしてすべてをコンパイルします。

    shell> perl Makefile.PLshell> makeshell> make testshell> make install

make test コマンドはモジュールが動作していることを確認するために重要です。DBD::mysql のインストール中にそのコマンドを実行してインタフェースのコードを実行するには、MySQL サーバーが動作していなければなりません。そうしないとそのテストは失敗します。

新しいリリースの MySQL をインストールする際は必ず DBD::mysql 配布を再構築して再インストールするのがいいでしょう。これにより、MySQL クライアントライブラリの最新バージョンが正しくインストールされていることが保証されます。

Perl モジュールをシステムディレクトリにインストールするアクセス権がない場合、またはローカルの Perl をインストールする場合、次のリファレンスが有用でしょう。http://learn.perl.org/faq/perlfaq8.html#How-do-I-keep-my-own-module-library-directory-

2.13.2 Windows に ActiveState Perl をインストールする

Windows 上で、MySQL DBD モジュールを ActiveState Perl でインストールするには次の手順に従います。

  1. http://www.activestate.com/Products/ActivePerl/ から ActiveState Perl を入手してインストールします。

  2. コンソールウィンドウを開きます。

  3. 必要に応じて HTTP_proxy 変数を設定します。たとえば、次のような設定を試してみます。

    C:\> set HTTP_proxy=my.proxy.com:3128
  4. PPM プログラムを起動します。

    C:\> C:\perl\bin\ppm.pl
  5. まだ DBI をインストールしていない場合は、インストールします。

    ppm> install DBI
  6. これが成功したら、次のコマンドを実行します。

    ppm> install DBD-mysql

この手順は ActiveState Perl 5.6 以降で機能するはずです。

手順が機能しない場合は、代わりに ODBC ドライバをインストールして ODBC から MySQL サーバーに接続するようにしてください。

use DBI;
$dbh= DBI->connect("DBI:ODBC:$dsn",$user,$password) || die "Got error $DBI::errstr when connecting to $dsn\n";

2.13.3 Perl DBI/DBD インタフェース使用の問題

Perl が ../mysql/mysql.so モジュールを見つけることができない場合、問題はおそらく Perl が libmysqlclient.so 共有ライブラリの場所がわからないことです。この問題は次の方法のいずれかで解決できるはずです。

  • libmysqlclient.so をほかの共有ライブラリがある (おそらく /usr/lib あるいは /lib) ディレクトリにコピーします。

  • DBD::mysql のコンパイルに使用される -L オプションを、libmysqlclient.so の実際の場所を反映するように変更します。

  • Linux では、libmysqlclient.so があるディレクトリのパス名を /etc/ld.so.conf ファイルに追加できます。

  • libmysqlclient.so があるディレクトリのパス名を LD_RUN_PATH 環境変数に追加します。システムの中には LD_LIBRARY_PATH を使用しているものもあります。

リンカーが見つけられないほかのライブラリがある場合も、-L オプションを変更する必要がある場合があります。たとえば、libc/lib にあり、リンクコマンドが -L/usr/lib を指定しているためにリンカーがそれを見つけられない場合、-L オプションを -L/lib に変更するかあるいは -L/lib を既存のリンクコマンドに追加します。

DBD::mysql から次のエラーが表示された場合、おそらく gcc (あるいは gcc でコンパイルされた旧バイナリ) を使用しているでしょう。

/usr/bin/perl: can't resolve symbol '__moddi3'
/usr/bin/perl: can't resolve symbol '__divdi3'

mysql.so ライブラリがビルドされるときに、-L/usr/lib/gcc-lib/... -lgcc をリンクコマンドに追加します (Perl クライアントのコンパイル時に、make の出力で mysql.so を確認します)。-L オプションは、システム上の libgcc.a があるディレクトリのパス名を指定するようにしてください。

この問題の別の原因は Perl および MySQL が両方とも gcc でコンパイルされていない場合です。この場合、両方を gcc でコンパイルすることでこの不一致を解決できます。

関連キーワード:  ,MySQL,します,インストール,mysql,2,および,してください,セクション,サーバー