兵どもが、夢のあとさき

JavaScript 系の言語に興味を惹かれ、まったりと更新しております

MySQL Install

1. インストール

① C:\MySQL フォルダを作成

 ・XAMPP を使用する場合この処理は不要。

 

② ファイルのダウンロード、インストール

 

 ・ZIP版の場合

 

http://www-jp.mysql.com/downloads/

=> 『Download MySQL Community Server』(http://www-jp.mysql.com/downloads/mysql/)

=> 『Windows(x86, 64bit),ZIP Archive』 を選択

=> Sign in の画面になるが、無視して下の方にある「No thanks, just start my download.」をクリック

=> ダウンロード

=> 展開

 

作成されたフォルダ『mysql-5.6.10-winx64』を、C:\MySQL フォルダへ移動

 

 

閑話休題

http://www.slideshare.net/h141/windowsmysql-14841563 に拠ると、ZIPアーカイブ版は

・インストールは展開してフォルダを置くのみなので超簡単

・データフォルダが作成済み
mysql_install_dbでの初期化不要

レジストリ汚さない

・サービスを作らない

・起動、停止も簡単

・複数サーバの起動もできる (MSI版でできないかは不明

・アンインストールも、サーバを停止してフォルダを消すだけ)

のメリットがあるので、テスト用や、複数のサーバを立てる場合などに便利。とのこと

 

閑話休題 終わり

 

 

MSI版の場合

 

http://www-jp.mysql.com/downloads/ へ移動。

 

mysql-installer-community-5.6.10.1.msi をクリック。ダウンロード

 

ダウンロードファイルを起動

 

Install MySQL Product を選択

 

Choosing a Setup Type 画面で

 

Developer Default を選択(Server Product に加え、管理ツールなど便利な機能が使用できる)

 

installation Path:

Data Path:

を適切に設定。サーバを複数インストールしない場合は、デフォルトでOK

 

Configuration 画面で

 

Enable TCP/IP Networking

Port 3306

Open Firewall port for network access=> チェックを外すとインストールエラーとなる。なぜ???

 

Root Account Password で、root のパスワードを設定

 

Windows service Details

 

 

・XAMPPの場合

 

XAMPPをダウンロードし、C:\XAMPPフォルダに展開する

 

2. 設定ファイルの設定

・設定ファイルの場所

 

ZIP版

 

インストール先の、ベースフォルダ内の「my.ini」ファイル。上記の場合、C:\MySQL\mysql-5.6.10-winx64\my.ini (XAMPPの場合、???)

まだ存在しないので、my-default.ini を my.ini に複写して適切に変更。# はコメント

まず行うデフォルトからの修正点は、以下の通り。

 

basedir = c:/MySQL/mysql-5.6.10-winx64

datadir = c:/MySQL/mysql-5.6.10-winx64/data

port = 3306

 

MSI

 

サービスが下記で起動している。ので、「"C:\ProgramData\MySQL\MySQL Server 5.6\my.ini"」の様だ。

 

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56

 

 

他にも多々あり。これから追記 *****

 

 

・設定ファイルの注意点

 

1. 設定項目(ディレクティブ)の単語の区切りの -(ハイフン)と _(アンダースコア)は等価

log-bin と log_bin は同じこと

 

2. 設定項目名は、大文字小文字を区別する

  

3. サーバ起動

C:\MySQL\mysql-5.6.10-winx64\bin\mysqld.exe --console

 

エラー時(11)エラー 参照

 

・XAMPPの場合

 

C:\xampp\xampp-control.exe を起動し、GUI画面から起動する

  

4. クライアント起動

C:\MySQL\mysql-5.6.10-winx64\bin\mysql.exe -u root(デフォルトでは root にパスワードは無い)

 

5. root ユーザのパスワードの設定

(4. クライアント起動)でログインし、下記コマンドを実行

 

mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');# new_password をパスワードにする

 

これで、mysql.exe -u root -pnew_password でログインできる

 

6. サービスへの登録

MySQLが実行されていれば停止する

 

管理者権限で、

 

c:\mysql\mysql-5.6.10-winx64\bin\mysqladmin -u root shutdownを実行

 

MySQLが実行されていなければエラーとなる。

 

 

 ② サービスとして登録

 

②-1 失敗

 

sc create "MySQL 5.6" binPath= "c:\mysql\mysql-5.6.10-winx64\bin\mysqld.exe" (sc create 『サービス名』 binPath= "実行ファイルパス")

(binPath= の後ろに半角スペースを入れること)

 

『[SC] CreateService SUCCESS』と表示されればOK

 

=> サービスは登録されるが、起動できない。

 

②-2 成功?

 

 C:\mysql\mysql-5.6.10-winx64\bin\mysqld.exe --install "MySQL 5.6" --defaults-file="C:\mysql\mysql-5.6.10-winx64\my.ini"

 

6-1. サービスの削除

sc delete 『サービス名』(『必ず』管理者権限で、コマンドラインプロンプトを起動すること)

 

エラーの場合

 

[SC] DeleteService FAILED 1072:

 

指定されたサービスは削除の対象としてマークされています。

 

=> サービスの削除はできているが、再起動が必要 (by Miscrosoft FQA)

 

7. ログ設定

・XAMPPの場合

 

- エラーログ (デフォルトで設定済み)

「datadir」パス/mysql_error.log (パスは、『my.ini』ファイルの[mysqld] =>「datadir」ディレクティブ参照(デフォルト "/xampp/mysql/data")

- クエリログ

デフォルトでは出力しない。下記の要領でmy.iniの[mysqld]項目に追加

 

# /13/04/08 追加 クエリログ (デフォルトでは「datadir」/配下に出力される)。絶対パスの場合 \ ではなく / を使用する

log = c:/temp/myquery.log

 

# /13/04/08 追加 スロークエリログ

slow_query_log = ON

slow_query_log_file = mysql-slow.log

#SQL実行時間が指定された秒数を超えた場合にスローログに書き込む時間。下記の場合 0.1秒

long_query_time = 0.1

#インデックスが使われていないSQLをスローログに書き込む

log-queries-not-using-indexes

# スロークエリログ関連ここまで

 

 

 

『my.ini』ファイルの[mysqld]に、「log=myquery.log」を追加。出力パスは「datadir」

- スロークエリログ

 

 

・ZIPの場合

- エラーログ

デフォルトでは出力しない。my.iniファイルの、[mysqld] に、「log_error = "mysql_error.log"」を記載。出力パスは、XAMPPと同様

- クエリログ

デフォルトでは出力しない。『my.ini』ファイルの[mysqld]に、「log=myquery.log」を追加。出力パスは「datadir」

 

8. 欠番 (すいません番号ふり間違えた)

9. 欠番

10. アンインストール

 

MSI版の場合

geek 等のツールを使い、レジストリなどの痕跡も削除する。

サービスも自動的に削除される

 

ZIP版の場合

 

フォルダをまとめて削除。上記の場合『MySQL

 

*** アンインストールしてもサービスが残ってしまった場合には、当該サービスを停止し、以下のコマンドを実行

 

(1) 『サービス』が消えない場合

 

sc.exe delete "サービス名"

 

error 1702 が発生する場合には、

 

http://stackoverflow.com/questions/305037/sc-deleteservice-failed-1072 を参照

 

regedt32 を使用して、HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/ 配下のMySQL関連のフォルダを削除

reboot

 

 

[SC] OpenService FAILED 5:

アクセスが拒否されました。の場合

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services 配下の MySQL関連のサービス削除

 

その他 アンインストールに苦労した (http://d.hatena.ne.jp/yasuhallabo/20111106/1320562901) によると

1)アプリのアンインストール

[コントロールパネル]→[プログラムと機能]→MySQLと名の付くものを全て削除

2)All UsersのMySQLを削除

 C:\Users\All Users\MySQLが残っていたら削除する。この中にmy.iniが入っていることもある。

3)Windows/PrefetchのMySQL関連を削除

 C:\Windows\PrefetchにあるMYSQLと名の付くファイルを全て削除。

4)WindowsサービスのMySQLを削除

・[コントロールパネル]→[管理ツール]→[サービス]→[MySQL]を右クリック→プロパティ→Pathを確認

 【参考】やすはるラボ削除時のパス(既に存在しないファイルを参照していたので問題なし)

  "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files (x86)\MySQL\MySQL Server 5.1\my.ini" MySQL

・[コマンドプロンプト]を「管理者権限で実行」←★★★重要!!!→「sc delete MySQL」とコマンド入力。

 成功すると”[SC] DeleteService SUCCESS”

 ※管理者権限で実行しないと”[SC] OpenService FAILED 5”と表示され、削除に失敗します。

 

これでなんとかアンインストールできました!

 

とのこと。

 

いずれにせよ、再起動は必要。

 

 

(2) ソフトウェアの残骸を削除

 

C:\Program Files (or Program Files(x86))\MySQL をフォルダごと削除(管理者権限要)

 

(3) データの残骸を削除

 

C:\ProgramData\MySQL をフォルダごと削除(管理者権限要)

 

 

* (2),(3)でフォルダが見えない場合には、以下で表示可

 

「コンピューター」→「ドライブ」選択→「整理」→「フォルダーと検索のオプション」→「表示」タブ→「隠しファイル、隠しフォルダー、または隠しドライブを表示する」をチェック

 

11. エラー対応

error: 1

 

2013-03-27 18:17:41 6900 [ERROR] InnoDB: read can't be opened in .\ibdata1 mode

 

上記の場合、MySQLが正常にシャットダウンされていない可能性があるので、以下の要領で強制シャットダウンする。

 

① pid (プロセス ID) を検索

 

datadir内の、「OWNER-PC.pid」ファイルに記載されている。例 6535

 

② 強制シャットダウン

 

> taskkill /PID 6535 /F

 

 

2013-03-27 18:17:41 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2013-03-27 18:17:41 6900 [Note] Plugin 'FEDERATED' is disabled.

2013-03-27 18:17:41 6900 [Note] InnoDB: The InnoDB memory heap is disabled

2013-03-27 18:17:41 6900 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions

2013-03-27 18:17:41 6900 [Note] InnoDB: Compressed tables use zlib 1.2.3

2013-03-27 18:17:41 6900 [Note] InnoDB: CPU does not support crc32 instructions

2013-03-27 18:17:41 6900 [Note] InnoDB: Initializing buffer pool, size = 128.0M

2013-03-27 18:17:41 6900 [Note] InnoDB: Completed initialization of buffer pool

2013-03-27 18:17:41 6900 [ERROR] InnoDB: read can't be opened in .\ibdata1 mode

2013-03-27 18:17:41 6900 [ERROR] InnoDB: The system tablespace must be writable!

2013-03-27 18:17:41 6900 [ERROR] Plugin 'InnoDB' init function returned error.

2013-03-27 18:17:41 6900 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

2013-03-27 18:17:41 6900 [ERROR] Unknown/unsupported storage engine: InnoDB

2013-03-27 18:17:41 6900 [ERROR] Aborting

 

2013-03-27 18:17:41 6900 [Note] Binlog end

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'partition'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_SYS_TABLES'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_FT_CONFIG'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_FT_DELETED'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_FT_INSERTED'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_METRICS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESET'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_CMPMEM'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_CMP_RESET'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_CMP'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_LOCKS'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'INNODB_TRX'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'BLACKHOLE'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'ARCHIVE'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'MRG_MYISAM'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'MyISAM'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'MEMORY'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'CSV'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'sha256_password'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'mysql_old_password'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'mysql_native_password'

2013-03-27 18:17:41 6900 [Note] Shutting down plugin 'binlog'

2013-03-27 18:17:41 6900 [Note] c:\mysql\mysql-5.6.10-winx64\bin\mysqld.exe: Shutdown complete

 

 

error 2

 

InnoDB 版で MySQLが起動しない

 

エラーメッセージは以下

 

[ERROR] Plugin 'InnoDB' init function returned error.

[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

[ERROR] Unknown/unsupported storage engine: InnoDB

[ERROR] Aborting

 

 

my.ini の設定を変更した場合には、\xampp\mysql\data\ib_logfile~ ファイルを削除して起動する

 

12. セキュリティ

①フォルダに対するアクセス権

上記の設定でインストールした場合、デフォルトで Authenticated Users, Users に、「変更」「読み取りと実行」「フォルダーの内容の一覧表示」「読み取り」「書き込み」が許可される。(users は「変更」「書き込み」が許可されない)

したがって、デフォルトの設定で、サーバ、クライアントの実行が各ユーザが可能となる。

 

なお、Authenticated Users と Users の違いについては、(From Microsoft QA)

 

結局 Users と Authenticated Users の違いとしては、

‐  Guest など、Users のメンバーのうち、Authenticated Users には含まれないものがある。Windows のバージョンによって多少の違いがあるかも。

‐  Users は、ビルトイングループなので≪その気になれば≫管理者がメンバーを自由に変更できる。

そのほか AD の場合に違いがあるという事ですが、通常は、あまり区別する必要はないようですね。

 

とのこと。(http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2003ja/thread/65298a28-c0ce-44f8-8fe6-341cc34227fa/)