WindowsにMySQL(zip版)をインストールする
WindowsにMySQL(zip版)をインストールする手順を紹介します。
通常のインストール版であればインストール時に初期設定が行われるのですが、zip版では設定ファイルを手動で作成したり、起動オプション・パスワードの設定を行ったりと、結構手間がかかりました。
ということで備忘録で残しておきます。
1.MySQLのダウンロード
MySQLのダウンロードにはOracleサイトのアカウントが必要です。
MySQLのサイトで「MySQL Community Server」をクリック。
「Other Downloads:」の32bit版または64bit版の「Download」をクリック。
アカウントを持っている場合は「Login」をクリック。持っていない場合は「Sign Up」をクリックしてアカウントを登録します。
「Login」の場合、ユーザーとパスワードを入力して、「サインイン」をクリック。
「Download Now」をクリック。これでダウンロードが開始します。
2.インストール
ダウンロードしたアーカイブを展開すると、「mysql-5.6.12-win32」というようなフォルダができるので、これを「mysql」にリネームして、Cドライブ直下など任意のフォルダに配置すればOKです。
3.設定
mysql配下のmy-default.iniをコピーして、同じフォルダにmy.iniを作成します。
その後、my.iniを下記のように修正します。ここではCドライブ直下にmysqlを配置したケースで記載しています。
変更前
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
変更後
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
socket = c:/mysql/mysql.sock
[mysqld]
port = 3306
socket = c:/mysql/mysql.sock
[mysql]
default-character-set=utf8
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
4.MySQL起動
コマンドプロンプトでC:\mysql\binに移動し、mysqldを起動します。なお起動の際はオプション「--standalone --console」を付与します。
C:\>cd mysql\bin
C:\mysql\bin>mysqld --standalone --console
起動時は以下のように表示されます。「Warning」や「Note」はここでは無視します。
C:\mysql\bin>mysqld --standalone --console
2013-06-18 00:03:06 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more det
ails).
2013-06-18 00:03:06 11952 [Note] Plugin 'FEDERATED' is disabled.
2013-06-18 00:03:06 11952 [Note] InnoDB: The InnoDB memory heap is disabled
2013-06-18 00:03:06 11952 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2013-06-18 00:03:06 11952 [Note] InnoDB: Compressed tables use zlib 1.2.3
2013-06-18 00:03:06 11952 [Note] InnoDB: Not using CPU crc32 instructions
2013-06-18 00:03:06 11952 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2013-06-18 00:03:06 11952 [Note] InnoDB: Completed initialization of buffer pool
2013-06-18 00:03:06 11952 [Note] InnoDB: Highest supported file format is Barracuda.
2013-06-18 00:03:06 11952 [Note] InnoDB: 128 rollback segment(s) are active.
2013-06-18 00:03:06 11952 [Note] InnoDB: Waiting for purge to start
2013-06-18 00:03:06 11952 [Note] InnoDB: 5.6.12 started; log sequence number 1625987
2013-06-18 00:03:06 11952 [Note] Server hostname (bind-address): '*'; port: 3306
2013-06-18 00:03:06 11952 [Note] IPv6 is available.
2013-06-18 00:03:06 11952 [Note] - '::' resolves to '::';
2013-06-18 00:03:06 11952 [Note] Server socket created on IP: '::'.
2013-06-18 00:03:06 11952 [Note] Event Scheduler: Loaded 0 events
2013-06-18 00:03:06 11952 [Note] mysqld: ready for connections.
Version: '5.6.12' socket: '' port: 3306 MySQL Community Server (GPL)
起動時に以下の警告が出るかもしれないので「ブロックを解除する」をクリックしてください。
5.mysqlを起動する
mysqldを上記のオプションで起動したあと、rootユーザー(パスワードなし)で起動することができます。
C:\mysql\bin>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
これでSQLコマンドを実行することができます。SQL文の最後には必ずセミコロン「;」をいれてください。いれないと文が実行されません。
終了するときは「quit」を入力します。
なお、別のマシンではエラーになるケースもありました。
C:\mysql\bin>mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Y
ES)
6.rootにパスワードを設定する
5項に書いたとおり、インストール直後の状態ではrootにパスワードが設定されていません。
rootユーザーにパスワードを設定するには、一旦mysqldを起動しているコマンドプロンプトをCtrl-cで停止し、「--skip-grant-tables」オプションつきでmysqldを起動します。
C:\mysql\bin>mysqld --standalone --console --skip-grant-tables
この状態からrootユーザーでmysqlコマンドを実行します。
C:\mysql\bin>mysql -u root
次のSELECTでパスワードの設定を確認できます。四角の中(カラム)にパスワードがまだ設定されていないことが分かります。
>SELECT Password FROM mysql.user;
+----------+
| Password |
+----------+
| |
| |
| |
| |
+----------+
4 rows in set (0.00 sec)
パスワードを設定するには次のUPDATEを実行します。「パスワード」の部分に任意のパスワードを設定してください。
mysql> UPDATE mysql.user SET Password=PASSWORD('パスワード') WHERE User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
さきほどのSELECTを実行するとパスワードが設定されていることが分かります。
mysql> SELECT Password FROM mysql.user;
+-------------------------------------------+
| Password |
+-------------------------------------------+
| *F8A3E6CC98133893A414205BC092314623091DF0 |
| *F8A3E6CC98133893A414205BC092314623091DF0 |
| *F8A3E6CC98133893A414205BC092314623091DF0 |
| |
+-------------------------------------------+
4 rows in set (0.00 sec)
最後に「flush privileges」で権限の変更を反映させます。
mysql> flush privileges;
Query OK, 0 rows affected (0.23 sec)
mysql> quit
mysqldを停止・再起動し、「--skip-grant-tables」オプションなしで起動します。
C:\mysql\bin>mysqld --standalone --console
これでmysqlをパスワードつきで実行すればOKです。
C:\mysql\bin>mysql -u root -p
Enter password: ***********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.11 MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
以下のように「-p」オプションの直後にパスワードを入力しても起動できます。
C:\mysql\bin>C:\mysql\bin>mysql -u root -pパスワード
「-p」の直後に半角スペースをいれないよう気をつけましょう。
7.エラーになる場合
色々実験しているときにmysqldが起動しないエラーに遭遇したので、情報展開しておきます。
以下のエラーが出るときはmysqldのプロセスが残っているようです。[ERROR]が発生するとmysqldは起動できません。
[ERROR] InnoDB: read can't be opened in .\ibdata1 mode
起動時のメッセージは次のとおりです。
C:\mysql\bin>mysqld --standalone --console
2013-05-30 21:00:25 5664 [Note] Plugin 'FEDERATED' is disabled.
2013-05-30 21:00:25 5664 [Note] InnoDB: The InnoDB memory heap is disabled
2013-05-30 21:00:25 5664 [Note] InnoDB: Mutexes and rw_locks use Windows interlo
cked functions
2013-05-30 21:00:25 5664 [Note] InnoDB: Compressed tables use zlib 1.2.3
2013-05-30 21:00:25 5664 [Note] InnoDB: Not using CPU crc32 instructions
2013-05-30 21:00:25 5664 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2013-05-30 21:00:25 5664 [Note] InnoDB: Completed initialization of buffer pool
2013-05-30 21:00:25 5664 [ERROR] InnoDB: read can't be opened in .\ibdata1 mode
2013-05-30 21:00:25 5664 [ERROR] InnoDB: The system tablespace must be writable!
2013-05-30 21:00:25 5664 [ERROR] Plugin 'InnoDB' init function returned error.
2013-05-30 21:00:25 5664 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGIN
E failed.
2013-05-30 21:00:25 5664 [ERROR] Unknown/unsupported storage engine: InnoDB
2013-05-30 21:00:25 5664 [ERROR] Aborting
タスクマネージャを起動してmysqlのプロセスが残っていたら停止して、再度mysqldを起動すればOKになると思います。
8.参考サイト
参考サイトは以下です。ありがとうございました。
- ZIPファイルから始めるMySQL のインストール・設定・実行方法
- 初めてのMySQLの実行 - 最低限のやらないといけないこと
- MySQLのrootパスワード設定
- Access denied エラーの原因
- MySQLでの「Access denied for user ‘root’@'localhost’ (using password: NO) 」への対処
- 【MySQL】ERROR 1045 (28000): Access denied for user ~ (using password: YES)の罠
- windowsXPのmysql5.1でrootパスワードを忘れた
- MySQL 権限の初期設定
- MySQLのrootログインで「Access denied for user 'root'@'localhost' (using password: YES)」に遭遇した場合の対処
- mysqlやmysqldumpで「 [Warning] Using a password on the command line interface can be insecure.」という警告が表示される場合の対処
- bashでMySQLのselect結果を出力する方法
- MySQL(phpMyAdmin)でエラー#1089になる場合の対処
- MySQLで「The used SELECT statements have a different number of columns」となる場合の対処
- mysqldumpで「Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces」となる場合の対処
- SSHポートフォワーディングでMySQLに接続する方法
- Windows向けMySQL管理クライアント「HeidiSQL」
- MySQLのmax_user_connectionsについて
- phpMyAdminでインポートできない大きなファイルを一気にインポートできる「BigDump」
- phpMyAdmin で MySQL のストレージエンジンを MyISAM から InnoDB に変更する方法