WAMPの中の最後、MySQL 5.6.xのインストール&セットアップ。
MySQLだけは、Linux上で5.1.xを何度もインストールしたので余裕・・・なハズだったのですが、5.1 から 5.6 の間はすっかりご無沙汰で、色々とハマりました・・・(´Д` )
勘を取り戻すまでにネットの情報を漁ってインストールを試みましたが、誤情報も結構あって 『???』 状態。
自分のインストール&セットアップ手順に絶対的な自信があるワケではありませんが、取り敢えず先の Apache2.4 と PHP7.1 と、この MySQL 5.6 の組み合わせで WordPress 4.9.x が正常に動作したので、大ハズレって事はないと思います。
■関連記事
・Windows 7 64bit + PHP 7.1 / インストール&セットアップ 備忘録 – roomX.jp
・Windows 7 64bit + Apache 2.4 / インストール&セットアップ 備忘録 – roomX.jp
INDEX
1. MySQL 5.6 のダウンロード
先ずはMySQLのダウンロード。
本家公式サイトから5.6.41 がダウンロードできます。
公式サイトから mysql-5.6.41-winx64.zip をダウンロードして解凍インストール…ってのが一般的だとは思いますが、このファイルを解凍すると、HDD領域を1.5ギガ近く消費します。
すべてのファイルが圧縮されているので便利なのですが、使わない(参照しない)モノまで含まれているのはチョット・・・(´・ω・`)
なので、今回は日本のFTPミラーサーバーを漁ってミニマムな.msi付きの Ver.5.6 をダウンロードすることにしました。
ちなみに公開ミラーサーバー上のファイルは、登録されているファイルが絶対に安全とは言い切れない点に留意してください。
強固なセキュリティで守られた公式サイトからリンクされたファイルとは違い、改竄の可能性も有り得るのでダウンロードやインストールについては自己責任で行ってください。
システムがクラッシュしたりウィルスに感染しても当サイトは 『知らんがな…(´・ω・`)』 モードです。
大量にリストアップされたファイルの中から Windows x64版でmsiインストーラ付きの 5.6.1 を探すにはブラウザの検索機能を使って特定します。(.msiで検索するとかなり絞り込めます)
今回は、mysql-5.6.41-winx64.msi をダウンロードしてインストールします。
ちなみにmsiインストーラー付きのファイルなら mysql-installer-community-5.6.41.0.msi が公式サイトからもダウンロードできますが…
自分にとってはコレのインストーラーが判り辛く、超使い辛く感じたので今回はパスしました。
2. MySQL 5.6 のインストール
インストール先を間違えないように事前にインストール先のフォルダを作成しておきます。
C:¥
└ svs
├ Apache24
├ MySQL
│ └ 5.6 ← 今回はココにインストール
├ php_5.6.37
├ php_7.1.20
├ ...
ダウンロードした mysql-5.6.41-winx64.msi をダブルクリックするとセキュリティ警告に続いてインストーラーが起動します。
※インストーラー実行時に、使用環境によっては『Visual Studio 2013 x64 云々…』のダイアログが出て、インストールが先に進まないケースがあると思いますが、その場合は、Microsoftから『Visual Studio 2013 の Visual C++ 再頒布可能パッケージ』をダウンロードしてインストールした後に、再度MySQLのインストーラーを実行します。
【Next】をクリック…
「使用許諾」にチェックを入れて【Next】をクリック…
インストールするファイルやインストール先を指定するので【Custom】をクリック…
右下の【Browse…】をクリックして、事前に作成したフォルダをインストール先に指定します。
【install】をクリックするとインストールを開始します。
ファイルをコピーして…
コピーが完了したら【Finish】ボタンをクリックしてインストールを終了します。
以前のバージョンには、インストールに続いて環境設定やサービスの登録まで出来たのですが…今回インストールに使用したバージョンは、環境設定(my.ini の編集)は手動で行う必要があります。
3. my.ini の編集
インストールが終了したらMySQLをインストールしたフォルダを開きます。
my-default.ini を同一フォルダ内にコピーし、my.ini にリネーム。
テキストエディタで my.ini を開いて、4行を編集します。
basedir = C:/svs/MySQL/5.6/
datadir = C:/svs/MySQL/5.6/data
port = 3306
server_id = 1
※)インストールディレクトリの指定は自分の環境に合わせて書き換えます。
#character-set-server = utf8
※)通常、日本語などのマルチバイト環境下では先の4行の最後に、5行目として上記のように文字コード指定の行を追加しますが、今回、MySQLのインストール直後にコレを指定したら初回起動時にエラーコード 1067 を吐いたので後回しにしました。(取り敢えず5行目に記述しておき、#を付けてコメントアウトしておくと後の修正が楽)
■参考:MySQL 5.6 リファレンスマニュアル
・10.1.5 アプリケーションの文字セットおよび照合順序の構成
編集が終わったら my.ini を保存します。
4. MySQLの登録
次にMySQL を Windows サービスとしてインストールします。
■参考:MySQL 5.6 リファレンスマニュアル
・2.3.5.7 Windows のサービスとして MySQL を起動する
手順は Apache のインストール時と同じくコマンドプロンプトを管理者権限で起動し…
cd C:¥svs¥MySQL¥5.6¥bin
…で、MySQLのインストールフォルダに移動します。
次に mysqld –install と入力し…
mysqld --install
※)ハイフンは2個必要
…【Enter】キーを押して…
Service successfully installed.
…と表示されればサービスのインストールは成功です。
【MEMO】サービスからMySQLを削除
異なるバージョンやフォルダを変えてMySQLをインストールし直したい場合に、Windowsのアプリケーションのアンインストール機能を使ってMySQLをアンインストールしたにも関わらず、上手く再インストールができない場合がありますが、これはWindowsのサービス登録にMySQLの登録内容が残っているのが原因で発生する事が多いようです。
サービス登録からMySQLを抹消して再インストールを実行すれば良いのですが、MySQLをアンインストールした後ではMySQLのコマンドが使えないのでWindowsの【SC】コマンドを使います。
手順は管理者権限で cmd を開いて…
sc delete MySQL
…と入力します。
sc コマンド(正確には sc.exe)は、Windowsのサービス管理・情報表示・削除などを行うCUIベースのプログラムで、sc コマンドとサブコマンド(この場合は delete がサブコマンド)を組み合わせて使用します。
sc delete MySQL は、『MySQLをサービスから削除せよ』 ということになります。
ちなみにMySQLをアンインストールする前であれば…
mysqld --remove MySQL
…でもサービスの登録削除は可能ですが、今回は、Windows対応のインストールプログラムを使ってMySQLをインストールしたので、Windowsのアンインストール機能を使ってMySQLを削除後にサービス登録を抹消した方が確実だと考えました。
5. MySQLサービスの開始・停止
続いて MySQLサービスを開始します。
net start mysql
…と入力し【Enter】キーを押して…
【サービスは正常に開始されました。】
のメッセージが表示されれば MySQLサービスは開始されています。
サービスを停止する場合は…
net stop mysql
…と入力します。
ちなみにMySQLの起動・停止・再起動は、コマンドプロンプトでなくともWindowsのサービスコントロールマネージャーからも行えます。
6. MySQL への接続
mysql -u root
…と入力し【Enter】キーを押して…
mysql >
…と表示されればMySQLに接続完了です。
7. rootユーザーにパスワードを設定
続いてMySQL のrootユーザー(管理者)にパスワードを設定します。
この操作はプロンプト表示が…
mysql >
の状態、すなわち MySQLが起動し、接続状態で行う必要があります。
パスワードを設定の書式は…
update mysql.user set password=password('ユーザーのパスワード') where user = 'ユーザー名';
…ですが、具体的に【root】に【hoge】というパスワードを設定するには…
update mysql.user set password=password('hoge') where user = 'root';
…と入力し【Enter】キーを押して…
…と表示されれば【root】ユーザーのパスワードは【hoge】に設定されています。
パスワードを変更したい場合も…
update mysql.user set password=password('新しいパスワード') where user = 'root';
で変更できます。
ここで一旦、【Exit】コマンドでMySQLとの接続を解除、コマンドプロンプトに復帰、MySQLサービスを再起動します。
Exit;
パスワードの確認
設定したパスワードで MySQL にログインできるかの確認は、コマンドプロンプト上で…
mysql -u root -p
…と入力し、【Enter】キーを押すとパスワードの入力を求められるので…
設定したパスワードを入力します。
正しくパスワードが設定・登録されていれば…
root 権限で MySQL に接続できます。
ちなみにrootユーザーのパスワードが登録されていれば、コマンドプロンプトではなく、MySQL Command Line Client でも一連の操作・確認が可能です。
8. phpMyAdmin のインストール
【Download】のリンクからダウンロードページへ移動、自分の環境に合致するバージョンをダウンロードします。
今回は、Current version compatible with PHP 5.5 to 7.2 and MySQL 5.5 and newer.
…な、phpMyAdmin-4.8.2-all-languages.zip をダウンロードしてインストールします。
インストールは Apache をインストールしたフォルダ内にある《htdocs》にzipファイルを展開・解凍するだけです。
ただ、そのままだとフォルダ名が長いので phpMyAdmin などにフォルダ名をリネームします。
以上で phpMyAdmin のインストールだけは完了です。
ブラウザを開いて URL欄に localhost/phpmyadmin と入力すると…
エラーが出ます(笑)
これは…、
mysqli 拡張がありません。PHP の設定をチェックしてみてください。 See our documentation for more information.
…のエラーメッセージの通り、php.ini 内の php_mysqli.dll が正しく設定されていないからです。
テキストエディタで php.ini を開いて…
; extension=php_mysqli.dll
…の一行を探して先頭の【;】を削除します。
ついでに…
; extension_dir = "ext"
…の一行も先頭の【;】を削除して…
extension_dir = "C:/svs/php_7.1.20/ext"
…と、”ext” のフルパスを明示的に記述した方がイイような…。
(Apache 2.2 + PHP 5.4.x ではフルパスが必要でしたが 2.4 + 7.x はどうなんでしょう?)
以上の修正が終わったら php.ini を上書き保存して Apache を再起動します。
もう一度ブラウザを開いて URL欄に localhost/phpmyadmin と入力すると…
今度は無事に phpMyAdmin が起動するハズなので
先に設定した root ユーザーのパスワードでログインします。
データベースを作成して、日本語関連で文字化けなどのエラーが出たら my.ini に記述しておいた…
#character-set-server=utf8
…の一行のコメントを外して、MySQL を再起動。
更に php.ini の…
; extension=php_mbstring.dll
…の【;】を消去して設定を有効にし Apache も再起動してみてください。
※)文字化けの要因は他にも考えられますが、文字コード関連の設定を1個づつ確認するのが早道だったりします。
あと注意が必要なのは php.ini の short_open_tag の値は、デフォルトで Off になっているので…
<?php phpinfo(); ?>
ではなく…
<? phpinfo(); ?>
と、いうようにお行儀の悪いコードの書き方をしているとコードを実行してくれないので…
short_open_tag = On
に変更しておきます。(私はお行儀が悪いのでハマりました…)
ただし、本来は略記ではなく、<?php と正しく記述するべきなので php.ini の short_open_tag の修正は、一時的な解決策としてしてください。(自戒を込めて…PART 2)
使っているウチに httpd.conf、php.ini、my.ini の3つの主要環境ファイル以外にも色々と修正が必要となる箇所は出てくると思いますが、取り敢えずこれでWAMP環境の構築は完了です。
お疲れ様でした♪