概要
Windows7に開発・検証目的用にMySQL Community Server 5.6をインストールし、初歩的な設定を行うまでの作業メモです。
MySQLはZIP Archiveを使用します。
環境
この記事の内容は下記のバージョンで動作確認を行いました。
- Windows7 (64bit)
- MySQL Community Server 5.6.25
参考サイト
下記のサイトの内容を参考にしました。
- [MySQL] (http://dev.mysql.com/)
- [MySQL 5.6 Reference Manual] (http://dev.mysql.com/doc/refman/5.6/en/index.html)
- [MySQLのmy.cnfファイルサンプル] (http://time-complexity.blogspot.jp/2013/10/mysqlmycnf.html)
- [MySQL5.6で今までのVerでは問題無かったSQL文がエラーになった場合の対処法] (http://oranie.hatenablog.com/entry/20130402/1364906656)
インストール
アーカイブファイルのダウンロード
ダウンロードページよりアーカイブファイルをダウンロードします。
今回ダウンロードしたファイルはmysql-5.6.25-winx64.zip
です。
アーカイブファイルの展開
アーカイブファイルを適当な場所(D:/dev/mysql-5.6.25-winx64
にしました)へ展開します。
また、次のディレクトリを作成します。
D:/dev/mysql-5.6.25-winx64/logs
D:/dev/mysql-5.6.25-winx64/tmp
my.iniの準備
D:/dev/mysql-5.6.25-winx64/my-default.ini
というテンプレートファイルをmy.ini
へリネームし、下記のように修正します。
# 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
+ innodb_buffer_pool_size = 64M
+ innodb_file_per_table = 1
+ innodb-status-output = 1
+ innodb-status-output-locks = 1
+
+ default-storage-engine = innodb
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
- # log_bin
+ log_bin = mysql-bin
# These are commonly set, remove the # and set as required.
- # basedir = .....
- # datadir = .....
- # port = .....
- # server_id = .....
+ basedir = "D:/dev/mysql-5.6.25-winx64"
+ datadir = "D:/dev/mysql-5.6.25-winx64/data"
+ tmpdir = "D:/dev/mysql-5.6.25-winx64/tmp"
+ port = 3306
+ server_id = 1
+
+ character-set-server = utf8
+ collation-server = utf8_general_ci
+
+ transaction-isolation = REPEATABLE-READ
+
+ # Logging
+ log_output = FILE
+ log_warnings = 1
+ log_error = "D:/dev/mysql-5.6.25-winx64/logs/mysqld_error.log
+ general_log = 1
+ general_log_file = "D:/dev/mysql-5.6.25-winx64/logs/general_query_all.log"
+ log-slow-admin-statements = 1
+ log-queries-not-using-indexes = 1
+ slow_query_log = 1
+ long_query_time = 1
+ slow_query_log_file = "D:/dev/mysql-5.6.25-winx64/logs/slow_query.log"
+
# 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
+
+ #autocommit = 0
+ explicit_defaults_for_timestamp = true
+
+ [mysql]
+ default-character-set = utf8
+ show-warnings
mysql serverの起動と接続
起動
> D:\dev\mysql-5.6.25-winx64\bin\mysqld.exe --defaults-file=D:\dev\mysql-5.6.25-winx64\my.ini --console
rootユーザーでログイン
> D:\dev\mysql-5.6.25-winx64\bin\mysql.exe -u root -p
停止
> D:\dev\mysql-5.6.25-winx64\bin\mysqladmin.exe -u root -p shutdown
mysqldのオプションの確認と設定値の出力
(結果が長いのでtextファイルに出力しています。)
> D:\dev\mysql-5.6.25-winx64\bin\mysqld.exe --help --verbose > option_dump.txt
インストール後の設定
rootユーザーのパスワード設定
rootユーザーでログイン
> D:\dev\mysql-5.6.25-winx64\bin\mysql.exe -u root -p
rootユーザーのパスワードを変更(パスワードは伏せています)
mysql> set password for 'root'@'localhost' = password('******');
不要なユーザーの削除
使用しないユーザーは削除します。
mysql> drop user ''@'localhost';
mysql> drop user 'root'@'127.0.0.1'
mysql> drop user 'root'@'::1'
コマンド実行サンプル
データベース
データベースの一覧
mysql> show databases;
データベースの作成
mysql> create database if not exists sample_db
default character set utf8
default collate utf8_general_ci;
[Manual - CREATE DATABASE Syntax] (http://dev.mysql.com/doc/refman/5.6/en/create-database.html)
データベースの削除
mysql> drop database sample_db;
カレントデータベースの変更
mysql> use sample_db
INNODB
mysql> show engine innodb status;
mysql> show variables like "innodb%";
ユーザーの作成と権限の付与
ユーザーの確認
mysql> select user,host from mysql.user;
ユーザーの作成
mysql> create user 'test_user'@'localhost' identified by 'test_user';
[Manual - CREATE USER Syntax] (http://dev.mysql.com/doc/refman/5.6/en/create-user.html)
ユーザーの削除
mysql> drop user 'test_user'@'localhost';
ユーザーへ権限の付与
mysql> grant all on sample_db.* to 'test_user'@'localhost';
[Manual - GRANT Syntax] (http://dev.mysql.com/doc/refman/5.6/en/grant.html)
ユーザーの権限を取り消す
mysql> revoke insert on sample_db.* from 'test_user'@'localhost'
ユーザーの権限をすべて取り消す
mysql> revoke all privileges, grant option from 'test_user'@'localhost';
[Manual - REVOKE Syntax] (http://dev.mysql.com/doc/refman/5.6/en/revoke.html)
ユーザーの権限を確認
mysql> show grants for 'test_user'@'localhost'
現在接続しているユーザーの権限を確認
mysql> show grants;
[Manual - SHOW GRANTS Syntax] (http://dev.mysql.com/doc/refman/5.6/en/show-grants.html)
テーブル
テーブルの一覧
mysql> show tables;
テーブルの作成
mysql> create table if not exists sample_tbl (
id int(11) not null auto_increment,
name varchar(20),
primary key(id)
);
[Manual - CREATE TABLE Syntax] (http://dev.mysql.com/doc/refman/5.6/en/create-table.html)
テーブル定義の確認
mysql> desc sample_tbl;
カラムの追加
mysql> alter table sample_tbl add column address varchar(256);
カラムの削除
mysql> alter table sample_tbl drop column address;
テーブルの削除
mysql> drop table sample_tbl;
インデックス
インデックスの一覧
mysql> show index from sample_tbl;
インデックスの作成
mysql> create index sample_tbl_idx01 on sample_tbl(address(64) asc);
[Manual - CREATE INDEX Syntax] (http://dev.mysql.com/doc/refman/5.6/en/create-index.html)
インデックスの削除
mysql> drop index sample_tbl_idx01 on sample_tbl;
キャラクターセット
利用できるキャラクターセットの一覧
mysql> show character set;
一部抜粋です。
|Charset |Description | |
|:---------|:----------------------------+---------------------|
|cp850
| DOS West European | |
|latin1
| cp1252 West European | |
|latin2
| ISO 8859-2 Central European | |
|ascii
| US ASCII | |
|ujis
| EUC-JP Japanese | |
|sjis
| Shift-JIS Japanese | |
|greek
| ISO 8859-7 Greek | |
|cp1250
| Windows Central European | |
|latin5
| ISO 8859-9 Turkish | |
|utf8
| UTF-8 Unicode | |
|ucs2
| UCS-2 Unicode | |
|cp852
| DOS Central European | |
|latin7
| ISO 8859-13 Baltic | |
|utf8mb4
| UTF-8 Unicode | |
|utf16
| UTF-16 Unicode | |
|utf16le
| UTF-16LE Unicode | |
|cp1256
| Windows Arabic | |
|cp1257
| Windows Baltic | |
|utf32
| UTF-32 Unicode | |
|cp932
| SJIS for Windows Japanese | |
|eucjpms
| UJIS for Windows Japanese | |
mysql> show variables like "char%";
+--------------------------+--------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\dev\mysql-5.6.25-winx64\share\charsets\ |
+--------------------------+--------------------------------------------+
8 rows in set (0.00 sec)
その他
環境変数
mysql> show variables;
mysql> show variables like "slow%";
+---------------------+------------------------------------------------+
| Variable_name | Value |
+---------------------+------------------------------------------------+
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | D:/dev/mysql-5.6.25-winx64/logs/slow_query.log |
+---------------------+------------------------------------------------+
3 rows in set (0.00 sec)
mysql> select @@slow_query_log_file;
+------------------------------------------------+
| @@slow_query_log_file |
+------------------------------------------------+
| D:/dev/mysql-5.6.25-winx64/logs/slow_query.log |
+------------------------------------------------+
1 row in set (0.00 sec)
status
mysql> status
help
mysql> help