Your SlideShare is downloading. ×

WindowsでMySQL入門

10,745

Published on

(↓訂正アリ↓)第3回大阪MySQL勉強会資料 …

(↓訂正アリ↓)第3回大阪MySQL勉強会資料

p.35「log-binは、log-bでも通ってしまう」
設定項目名にはlog-bin以外にも log_bin_trust_function_creatorsがあるので
例として不適切でした。
「read-onlyは、read-oでも通ってしまう」に修正、再アップロードしました

また、間違いがががが…。
p.25 WindowsやMAC OSXでlower_case_table_namesを0にしてしまうと、
MyISAMで、"index corruption"だった...。 インデックス破損てヤバス
あと
p.32 innodb_log_file_sizeの指定は、ib_logfile0の作り直し
(サーバ停止中にファイル削除すれば自動で作り直すが)が要り、
初心者向けじゃなくなるのでコメントアウトします...ダメダメだ
再アップロードしました

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,745
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
43
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Windows で MySQL入門 担当: @h141gm 対象者:MySQL に興味、関心のある人 レベル:初級者向け
  • 2. 自己紹介 石井と申します。( twitterID: @h141gm ) いわゆる”SIer”な仕事をしています。 業務でMySQLがらみの案件は今年まだ2本 仕事はPostgreSQLとOracleばかり いかんMySQL分が不足してきた… 今回の資料は、slideshareにアップ予定です アップできたらhttp://h141.github.com/ にリンクします パワポの作り方が下手なので全面的に白いです
  • 3. プロローグ(前説)最初に、お詫びとお断り今回はWindowsとMySQLの話ですが 「最新のWindows Server 2012を使って MySQL Enterprise Editionを本格運用するぜー」とか 「libmysqld.dll(←mysql”d”の方)を使って MySQLサーバ組み込みWindowsアプリを作るぜー」とかそういった派手な内容ではありません 「手元にあるのはWindows XP時代のプアなマシンだけど、 MySQLのテスト環境だけは欲しいなあ…」という貧乏なお話です。
  • 4. 前説(2) OSS系の勉強会にくるとMBA(Mac Book Air)ばっかりですが 会社で個人用に配布されるPCって、100%、Windowsですよね しかもDellの型落ちのWindowsXPマシンだったりしますよね VMwareやOracleVMを入れてLinuxを動かしたくても VT-dもVT-xすら付いてないので重くてしょうがなかったりしますよね Eclipseが重過ぎるので、自然とnetbeans派になりますよね メモリが2GBで、CPUがCerelonでHDDは250GBですよね(断言) 決して、具体的にどこかの会社ディスってるとか、 そういう話ではないですよ♪
  • 5. 前説(3) 今日の目標(テーマ)は、 「こういう腐ったWindowsマシンが配られた不幸な新人のPCに MySQLを入れさせて、MySQLerに洗脳してしまおう」 です。 初心者ではない方も、 「自分が新人教育係ならこう説明するな」 「あそこ、間違ってるwwwwwww」 とかそういう目線で、お楽しみください 愛のあるツッコミ、“随時“募集中です。
  • 6. テスト環境 ・Windows XP SP3 (32bit) 日本語版 (最新のパッチまでアップデート) ・MS Security Essentials ・MySQL 5.5.28 CommunityServer版 上記をOracleVM VirtualBox上の仮想環境で構築しました リソースは、CPUコア1個、メモリ500MB です
  • 7. アジェンダ  WindowsでMySQLを動かす  パッケージの入手  ファイルの展開  ファイル構成  サーバ起動(テスト起動)  接続確認  サーバ停止  設定変更  サーバ起動  複数サーバの同時起動 ここは時間があれば説明する  MySQL入門後  できた環境で色々な状況を試す  1. WARMバックアップとリカバリ  2. レプリケーション  3.BLACKHOLEレプリケーション
  • 8. ◆WindowsでMySQLを動かす  パッケージの入手  ファイルの展開  ファイル構成  サーバ起動(テスト起動)  接続確認  サーバ停止  設定変更  サーバ起動  複数サーバの同時起動  MySQL入門後
  • 9. パッケージの入手 MySQL Community Serverのダウンロードページへアクセス 公式: http://www.mysql.com/downloads/mysql/ 開発: http://dev.mysql.com/downloads/mysql/
  • 10. ・パッケージの選択開発サイトで、MySQLServer5.5(x86,32bit)のパッケージは選択肢が4つある
  • 11. ・どれかを選んで”download”ボタンをクリックするとユーザー登録画面になるが、下のほうのリンク ”No thanks, just take me to the downloads!”をクリックすることで、登録しないで、ダウンロードすることができる・ファイルをPCに保存する
  • 12. ・MySQL Installer for Windows mysql-installer-community-5.5.28.2.msi 207.0M 2011年9月に追加され(5.5.15~) 、2012年8月頃に改良された Serverの他WorkBenchなども一括でインストールできる統合インストーラ・ MySQL Server msi (インストーラ) mysql-5.5.28-win32.msi 31.1M “Server”のGUIインストーラ ・ MySQL Server zip (アーカイブ) mysql-5.5.28-win32.zip 143.3M バイナリ等とデータディレクトリを固めたアーカイブファイル ・ソースファイル mysql-5.5.28.zip 28.2M ソースファイル。コンパイルが必要
  • 13. 【疑問】 色々なパッケージが有るけど、結局どれが良いの?【回答】 簡単なテストとかMySQLを触ってみたいという人には、 “zipアーカイブ” 、超オススメ【理由】 ・インストールは、展開してディレクトリ置くだけなので、超簡単 データディレクトリが作成済み mysql_install_dbでの初期化不要 ・レジストリを汚さない ・サービスを作らない ・起動停止も簡単 ・複数サーバの起動もできる ・アンインストールも、サーバを停止して、ディレクトリを消すだけで簡単 ・ソースからのコンパイルは多言語処理のソースと日本語Windows の間で問題が発生するので避けたい
  • 14. ファイル展開(1) (この資料で“$”は、コマンドプロンプトの・MySQL用ディレクトリとして、C:¥MySQLを作る。 プロンプトとして使用します) $ md C:¥ MySQL 【注意①】 基本的にどこにおいても大丈夫だが、 後のことを考えて、日本語やスペースは使わない方がよい 【注意②】5.1以前は、インストール場所が強制されていたので、 一部の古いアプリでは、 C:¥mysqlにインストールされる前提で動く可能性がある・ダウンロードしたmysql-5.5.28-win32.zipをダブルクリックして展開する・mysql-5.5.28-win32ディレクトリをC:¥ MySQLの下にコピーするインストールはこれだけで完了です!
  • 15. ファイル展開(2)・【重要】ファイルを展開したら最初にやるべきこと サーバの起動前にデータディレクトリdataを別の場所にコピー保存するデータディレクトリとはC:¥MySQL¥mysql-5.5.28-win32¥data のディレクトリのこと【理由】 データディレクトリを作成するのに使われる“scripts/mysql_install_db.pl” は、 perlスクリプトなので、Windowsにperlを導入しないと初期化が面倒。 なので、あらかじめ、初期化済みのdataディレクトリを保存しておく。 これでいつでも、データは初期化できます。 安心してDBをいじり倒しましょう ・DBのデータが壊れたかもと思ったら、上記のコピーを用いて 以下の手順で、最初の状態に復旧できる ①サーバを停止(後述) ②C:¥MySQL¥mysql-5.5.28-win32¥data ディレクトリを削除 ③保存しておいたdata ディレクトリを C:¥MySQL¥mysql-5.5.28-win32¥の下にコピーする
  • 16. ファイル構成展開後のディレクトリ構成はこうなっている $ dir C:¥MySQL¥mysql-5.5.28-win32¥ bin/ …実行ファイル data/ … (初期化済み)データディレクトリ docs/ …ドキュメント include/ …Cのヘッダファイル lib/ …Cのライブラリファイル(dllファイル) mysql-test/ …MySQLテストスイート(Perlスクリプト) scripts/ …データディレクトリ初期化スクリプト(Perlスクリプト) share/ …色々な言語ファイル と 初期化用SQLファイル sql-bench/ …ベンチマーク(Perlスクリプト) README …配布物についての簡単な説明 COPYING …GPL v2 ファイル my-small.ini …設定ファイルサンプル(メモリ64M以下) my-medium.ini …設定ファイルサンプル(メモリ128Mくらい) my-large.ini …設定ファイルサンプル(メモリ512Mくらい) my-huge.ini …設定ファイルサンプル(メモリ1~2Gくらい) my-innodb-heavy-4G.ini …設定ファイルサンプル(メモリ4Gくらい)このディレクトリはインストールディレクトリと呼ばれる
  • 17. ・実行ファイルの簡単な解説 重要度に応じて、ミシュランガイド風に★付き (個人的な感想です)【exeファイル】 ・bin/ディレクトリ mysqld.exe … 【★★★】MySQLサーバ mysql.exe … 【★★★】MySQLクライアントツール mysqladmin.exe … 【★★★】MySQL管理ツール mysqldump.exe … 【★★★】バックアップ用にデータをSQLで出力 mysqlslap.exe …【★★】クライアントの負荷エミュレーション mysql_upgrade.exe …【★★】 MySQLのデータをアップグレードするツール mysqlbinlog.exe …【★★】バイナリログの内容を出力する mysqlimport.exe … 【★】テキストファイルからのデータインポート perror.exe …【★】エラーコードの説明を表示 my_print_defaults.exe …【★】設定ファイルから指定された[グループ]の設定を抜き出す mysqlcheck.exe …【☆】テーブルの検査、分析、修復(MyISAM用)、最適化 myisamchk.exe …【☆】テーブルの検査、分析、修復(MyISAM用) 、最適化 mysqlshow.exe … データベース、テーブル、カラムの情報表示 mysql_tzinfo_to_sql.exe …タイムゾーンテーブルのロード mysql_plugin.exe …どのMySQLプラグインをロードするか管理するツール
  • 18. 【exeファイル】続き ・bin/ディレクトリ続き mysqld-debuug.exe … デバッグメッセージ付きMySQLサーバ mysqltest.exe …MySQLのテストスイート言語 (リグレッションテストに使われる) mysql_client_test.exe …クライアントAPIのテストする myisam_ftdump.exe … MyISAMの全文検索の情報表示 myisampack.exe … MyISAMテーブルを圧縮、読み取り専用にする myisamlog.exe … MyISAMの動作ログを表示する (設定log-isamで出力されるMyISAMのデバッグ用バイナリファイルの解析) echo.exe …普通のechoコマンド? replace.exe …sedっぽいコマンド? resolveip.exe …nslookupっぽいコマンド? mysql_embedded.exe …多分、組み込み用クライアント? mysqltest_embedded.exe …多分、組み込み用テストスイート?
  • 19. 【Perlスクリプト】・bin/ディレクトリ mysql_secure_installation.pl …【★★】初期データベースをセキュアにする (testスキーマ削除、匿名ユーザアクセス権限削除、rootのパスワード設定など) mysqldumpslow.pl …【★】スロークエリのレポート出力 (設定log-slow-queriesで出力されるログファイル) mysqlhotcopy.pl …【★】MyISAMのホットバックアップ mysqld_multi.pl …複数のMySQLサーバの起動停止 mysql_convert_table_format.pl …指定されたDBの全テーブルのストレージエンジンを変更 (内部で”ALTER TABLE ENGINE=“を繰り返しているだけ) mysql_config.pl …コンパイルオプションの表示・mysql-test/ ディレクトリ mysql-test-run.pl …リグレッションテストをする mysql-stress-test.pl …ストレステスト?・scripts/ディレクトリ mysql_install_db.pl …【★★★】初期データベースを作成する mysqld.exeを—bootstrapモードで起動させ、次に示すSQL文を実行させることで、初期データベースを作成する
  • 20. 【SQLファイル】 ・share/ ディレクトリ mysql_system_tables.sql …【★】システムデータベースのテーブルを作成する mysql_system_tables_data.sql …【★】システムデータベースにデータをセットする mysql_system_tables_data.sqlで、 初期のtestスキーマの作成やrootユーザー匿名ユーザーが作成される fill_help_tables.sql …【☆】システムデータベースのhelp用テーブルに文をセット mysql_test_data_timezone.sql …システムデータベースのタイムゾーンのテーブル にデータをセット(使用せず?) (include/ や mysql-test/ にあるSQLファイルやexeファイルは省略しています)
  • 21. サーバ起動 (テスト起動)①コマンドプロンプト(cmd.exe)を起動させる②サーバファイルmysqldを起動させる$ C:¥MySQL¥mysql-5.5.28-win32¥bin¥mysqld.exe --console 初回実行時は、ファイアウォールのダイアログが出るので、 “ブロックを解除する”ボタンをクリックする ・ 環境変数PATHにmysqldへのパスは追加されていないのでmysqld.exeはフルパスで指定する。 ・この時点で設定ファイルは存在しないがMySQLサーバはデフォルトの設定だけで起動可能 (オプションがいらなければmysqld.exeをダブルクリックするだけでも起動可能)
  • 22. ・オプション--consoleが、重要エラーログへの出力をコンソール画面に表示し、Ctrl+Cでサーバを停止できるようになる $ C:¥ MySQL¥ mysql-5.5.28-win32¥bin¥mysqld.exe --console 121017 0:07:14 [Note] Plugin FEDERATED is disabled. 121017 0:07:14 InnoDB: The InnoDB memory heap is disabled 121017 0:07:14 InnoDB: Mutexes and rw_locks use Windows interlocked functions 121017 0:07:14 InnoDB: Compressed tables use zlib 1.2.3 121017 0:07:14 InnoDB: Initializing buffer pool, size = 128.0M 121017 0:07:14 InnoDB: Completed initialization of buffer pool 121017 0:07:14 InnoDB: highest supported file format is Barracuda. 121017 0:07:14 InnoDB: Waiting for the background threads to start ここ重要 121017 0:07:15 InnoDB: 1.1.8 started; log sequence number 1595675 121017 0:07:15 [Note] Server hostname (bind-address): 0.0.0.0; port: 3306 121017 0:07:15 [Note] - 0.0.0.0 resolves to 0.0.0.0; 121017 0:07:15 [Note] Server socket created on IP: 0.0.0.0. 121017 0:07:15 [Note] Event Scheduler: Loaded 0 events 121017 0:07:15 [Note] C:¥MySQL¥mysql-5.5.28-win32¥bin¥mysqld.exe: ready for connections.コマンドプロンプト上で--consoleオプションを付けてmysqld.exeを実行させると、上記のような起動ログを出して待ち状態になる。このウインドウを[×]で閉じてはいけない画面操作の邪魔な時は、ウインドウを最小化しておくとよい。
  • 23. 接続確認(1)①接続確認のために、もう一つコマンドプロンプトを起動させる (コマンドプロンプトの“プロパティ”から”画面の色”で”画面の背景”を変えると サーバとクライアントの区別が付きやすいので便利)②対話型のクライアントプログラム(mysql.exe)を起動する $ C:¥MySQL¥mysql-5.5.28-win32¥bin¥mysql.exe -uroot Welcome to the MySQL monitor. Commands end with ; or ¥g. Your MySQL connection id is 1 Server version: 5.5.28 MySQL Community Server (GPL) Copyright (c) 2000, 2012, 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>
  • 24. 接続確認(2) $ C:¥ MySQL¥ mysql-5.5.28-win32¥bin¥mysql.exe –uroot test ・ クライアントのmysql.exeもフルパスで指定する。 ・ -uオプションは、接続するユーザーの指定 ここでは、初期化時に自動的に作成される管理用のrootユーザーで接続している オプションとそのパラメータの間は離さないで書くほうがよい ○ -uroot △ -u root (参考:○ -ppass ×-p pass ) ・オプション-Pでポート番号を指定していない場合、 デフォルトのポート番号として3306が使用される・(余談)Windowsは、UNIXと接続がちょっと違う いわゆる”UNIXドメインソケット”を利用したプロセス間通信はできない つまり設定ファイルでのsocketの指定は意味がない 代わりにWindowsにしかない接続として、以下の2つがある ・”名前付きパイプ” …設定項目enable_named_pipe ・”共有メモリ” … 設定項目 shared-memory, shared-memory-base-name (ただしデフォルトではどちらも無効になっているため 必ずTCP/IPで接続される)
  • 25. 接続確認(3) (余談続き)そのほかのWindows版とUNIX版の違い ・MySQLスキーマ名、テーブル名はファイルシステムに依存するため Windows(NTFS)では大文字小文字の区別はしない (ただし、オプションやパスワードはどのOSでも、大文字小文字を区別する) (パスワードの大文字小文字を区別しないOracle(11g以前)とはこの点が異なる) ・Windowsでも、lower_case_table_names=2と設定すると、大文字小文字 を保持した名前で ディレクトリやファイルを作成するが、アクセス時の名前の チェックでは 大文字小文字を区別しない。 (WindowsでC:¥HOGEディレクト リが存在する状態で、C:¥hogeディレクトリを作ろうとしても "指定されたファイ ル名が既に存在します"エラーになるのと同じ現象) ・UNIXのデフォルトと同じ値のlower_case_table_names=0と設定しても大 文字小文字が区別されるが、 大文字小文字を変えたテーブル名でMyISAM のテーブルにアクセスした場合、 インデックスデータが破壊される可能性が あるので、この設定をするのは止めた方が良い ・設定項目名は、”lower_case_table_names”と「テーブル」となっているが、 スキーマ名へも影響を与える ・ファイルパスの区切り文字が「¥」なので、エスケープ文字と重複する そのため、ファイルパスは「¥¥」または「/」を使用する必要がある
  • 26. 接続確認(4)③サーバとの接続を切断 mysql> ¥qまたは mysql> quit または mysql> exitで切断する。どれを使っても結果は同じ。 (Ctrl+Cでmysql.exeを終了させることでも切断可能) クライアントで切断をしても、サーバの動作へは影響ありません
  • 27. サーバ停止(1) mysqld.exeが起動しているコマンドプロンプト上で、 Ctrl+Cを押すと、MySQLサーバが停止する (mysqld.exe起動時に--consoleオプションを有効にしたため)【注意】 コマンドプロンプトの[×]ボタンをクリックしてもサーバは停止しない mysld.exeプロセスは残ったままになる このような場合や、--consoleオプションを付けずにmysqld.exeを起動させた場合 タスクマネージャの”プロセス”からmysqld.exeのプロセスを停止させないほうが良い。 下記の【正式なシャットダウン方法】に従ってサーバを停止させる【正式なシャットダウン方法】 ①別のコマンドプロンプトを起動させます ②mysqladmin.exeで、シャットダウンコマンドを実行します $ C:¥ MySQL¥ mysql-5.5.28-win32¥bin¥mysqladmin.exe -uroot shutdown -u ... サーバへ接続するユーザの指定 サーバの停止には、root権限が必要
  • 28. サーバ停止(2)MySQLのmysqladmin.exeコマンドでのshutdownには、OracleやPostgreSQLのようなshutdownモードの指定はない 参考:他RDBMSのshutdownモード Oracle: NORMAL / TRANSACTIONAL / IMMEDIATE / ABORT PostgreSQL: smart / (transactionalは無し) / fast / immediate ちなみに、PostgreSQLの “pg_ctl”コマンドでの“shutdown”もモードを省略できるが、 これはデフォルトの”-m s” (smartモード)が選択されるのと同じMySQLのshutdownは、以下のような流れでサーバ停止する ・1.シャットダウンプロセスの開始 (mysqladminを使用してshutodownを指示する方法以外に、 UNIXの場合はSIGTERM割り込み(要するにkillコマンド)で、 Windowsのサービスで起動させた場合はサーバマネージャで、 シャットダウンプロセスを開始できる) ・2.(必要なら)シャットダウンスレッドの作成 ・3.新規接続の拒否 ・4.現行の動作中のスレッドを順次停止していく ・5.ストレージエンジンのシャットダウン (詳細後述) ・6.サーバの停止
  • 29. サーバ停止(3) mysqladmin shutdownにモードの指定は無いのだが、「・5ストレージエンジンのシャットダウン」の中の「innodbのシャットダウン」は、シャットダウンのモードを選択できるinnodbのシャットダウンは、 innodb_ fast_shutdownの設定で変化する 0...(安全、低速)ログの内容を完全にテーブルファイルへフラッシュする。 1...(デフォルト)終了前にチェックポイント処理を行う(fast shutdown) 2...(危険、高速)ログの内容をファイルへ反映するだけ、再起動後にはクラッシュリカバリが行われる innodb_ fast_shutdownは、Globalな動的システム変数なため、 mysql.exeで接続して変更することができるので、 動的にシャットダウンのモードを変更できる innodb_ fast_shutdownに1(デフォルト)が設定されている場合の挙動は、 だいたい、 Oracle”SHUTDOWN IMMEDIATE”や PostgreSQL”shutdown fast”と同じである
  • 30. 設定の変更(1)Windowsで設定ファイル(オプションファイル)名は、”my.ini”が使われることが多い (UNIX系で使用されるmy.cnfは、Windowsで.cnfが短縮ダイヤル用の拡張子なので エクスプローラのフォルダオプションを変更しないと使用できないため)設定ファイルは以下の場所に設置できる ①C:¥WINDOWS¥my.iniまたはmy.cnf (環境変数%WINDIR%の直下) ②C:¥my.ini または C:¥my.cnf ③(ベースディレクトリ)¥my.iniまたはmy.cnf ④--defaults-extra-file=(パス)で指定されたファイル 設定項目ごとに、後から読んだファイルの値で上書きされる ただし、mysqld.exeのコマンドラインで--defaults-file=(パス)で 設定ファイルを指定すると、 サーバは上記の標準で読み込まれる設定ファイルをすべて無視し、 指定された設定ファイルからのみ、オプションを読み取る
  • 31. 設定変更(2)・設定変更の反映 ①MySQLサーバを停止 ②設定ファイルを書き換えて保存する ③MySQLサーバの起動 【重要】 前にインストーラで入れた残骸のC:¥WINDOWS¥my.ini やC:¥my.iniが残ったままだと、 ” (ベースディレクトリ)¥my.ini”で設定して無い設定項目が設定される 【重要】 設定ファイルmy.ini は、”ファイルを保存”しないと、反映されない。・設定された状態の確認 mysql.exeクライアントでMySQLサーバに接続し、 サーバ変数を表示させて、状況を確認する $ C:¥MySQL¥mysql-5.5.28-win32¥bin¥mysql.exe -uroot MySQL> show variables;
  • 32. 設定変更(3) 推奨設定 C:¥MySQL¥mysql-5.5.28-win32¥my.ini [mysqld] console = 1 character_set_server = utf8 collation_server = utf8_general_ci transaction_isolation = READ-COMMITTED innodb_file_per_table innodb_buffer_pool_size = 256M innodb_log_buffer_size = 8M # innodb_log_file_size = 64M [mysql] default_character_set = cp932 注意:これは最低限の設定です “transaction_isolation = READ-COMMITTED“は、 オラクルデータベース出身者がネクストキーロックやギャップキーロックを嫌うので、緩くする設定 クライアント側のcp932は、Windows XPの標準の文字セットいわゆるShiftJISです
  • 33. 設定変更(4)MySQLパッケージに付属しているmy-*.iniファイルは古く、時代にあっていない最適な設定ファイルを生成するための情報を示すただし公開されている情報は、圧倒的にlinux向けが多い点に注意・公開されているmy.cnf ①@nippondanjiさんのmysqlのwiki上に公開されているもの http://mysqlpracticewiki.com/index.php/My.cnf%E3%82%B5%E3%83%B3%E 3%83%97%E3%83%AB wikiのトップ http://mysqlpracticewiki.com/ から、“My.cnfサンプル”で検索してもたどり着ける ②10月5日に、NHN Japan(旧ライブドア)の長野( @kazeburo )さんが、 githubにmy.cnfを公開しています http://blog.nomadscafe.jp/2012/10/mysql-mycnf-github.html ③「WordPress 高速化&スマート運用必携ガイド」を書いた岡本渉さんが、 Amazon EC2のmicroインスタンス上でのWordpressに特化した チューニング済みのAMIを公開しています http://dogmap.jp/2012/07/17/wordpress-ami-amimoto/ (ただし、perconaサーバ用だったり、特殊な環境専用だったりします)
  • 34. 設定変更(5)・web上で動的にmy.cnfを生成するサイト ①“Percona Online Tools”の“Optimize your MySQL Server” ウイザード形式で、対話的にサーバの情報を指定していくことで my.cnfが生成される https://tools.percona.com/ (ユーザー登録が必要です)・MySQLサーバ上で動的にmy.cnfを生成する ①“mysqltuner.pl” https://github.com/rackerhacker/MySQLTuner-perl サーバ内のメモリなどを検出して最適値をアドバイスするツール perlスクリプトです。 搭載メモリ量の自動読み取り機能などが、Windowsに対応していません (また、設定内容が少し古いかも知れません) ・最終的には、MySQLアーキテクチャを勉強して、ベンチを取りながら 設定を詰める必要がある
  • 35. 設定変更(6)(余談) MySQLの設定ファイルで、はまりやすいポイントを列挙します。 ①設定項目の単語の区切りの-(ハイフン)と_(アンダースコア)は、等価 log-bin もlog_binも同じことです ②設定項目は単一の名称だと区別ができるところまで書けば省略できる read-onlyは、read-oでも通ってしまう (ただし、linuxのrpmでインストールする場合に、標準で添付されるSystemV 起動スクリプト(/etc/init.d/mysql)中には、sedを使用するため、上記の表記の揺れを 許さないところが存在するので注意) ③設定項目名は、大文字小文字を区別する
  • 36. サーバ起動①サーバファイルmysqld.exeをダブルクリックして起動させる ・インストールディレクトリにmy.iniファイルを作成すれば、 mysqld.exeが起動時に自動的に読み込んで コマンドオプションは不要となる ・設定ファイル(my.ini)中でconsoleオプションを有効にすれば、 エラーログを標準出力に出力しながらの動作をする サーバの起動も停止も簡単!
  • 37. 複数サーバの同時起動①サーバを停止する②インストールディレクトリをコピーして複製を作る オリジナルがC:¥MySQL¥mysql-5.5.28-win32にあるとして、 C:¥MySQL¥mysql_1 C:¥MySQL¥mysql_2 の2つをxcopyコマンドの/sオプションで再帰的な複製する例を示す $ xcopy /s C:¥MySQL¥mysql-5.5.28-win32 C:¥MySQL¥mysql_1 $ xcopy /s C:¥MySQL¥mysql-5.5.28-win32 C:¥MySQL¥mysql_2 (エクスプローラなどのマウス操作でコピーしてもOKです)③設定ファイルを書き換える (各々のインストールディレクトリのmy.iniを編集) 以下の設定が重複しないようにする ・portの設定 ・(有れば) server-idの設定 ・絶対パスで指定した設定 (相対パスは各々のbasedir(=インストールディレクトリ)からのパスとなる)④複製先のbin/mysld.exeをダブルクリックして、サーバを起動する 複製後も初回実行時は、ファイアウォールのダイアログが出るので、 “ブロックを解除する”ボタンをクリックする⑤続いて、もう一つの複製先のbin/mysqld.exeもダブルクリックで、起動させる
  • 38. MySQL入門後 オレは ようやく のぼりはじめた ばかりだからな この はてしなく遠い MySQL坂をよ
  • 39. MySQL入門後(1)ここまでで、自分の好きに触れるMySQL環境ができました。ここからは、実機で触りながら勉強していきましょう。というわけで、MySQLの情報を得る場所を紹介します①日本MySQLユーザー会のメーリングリストhttp://www.mysql.gr.jp/ml.html②MySQL公式サイトhttp://www-jp.mysql.com/③OTNセミナー オンデマンドコンテンツ Oracleが公開しているセミナーのビデオです。MySQLもありますhttp://www.oracle.com/technetwork/jp/ondemand/database/mysql/ (これの「MySQL入門概要編」を見れば、今回の資料要らなかったような…) ④MySQLリファランスマニュアル http://dev.mysql.com/doc/ (ただし、日本語訳はMySQL5.1まで)
  • 40. MySQL入門後(2) ⑤MySQLバグデータベース 未知のトラブルかなと思ったら、ここでサーチしてみましょう (英語だが、バグ報告だとなんとなく意味が分かる) http://bugs.mysql.com/ 最近は、workbenchのバグ報告ばかりだ… ⑥ブログ MySQLのブログの集積所 ・Planet MySQL http://jp.planet.mysql.com/ 特に、更新が多いブログはReaderで、RSSを取得するとよい ・SH2の日記 http://d.hatena.ne.jp/sh2/ ・漢(オトコ)のコンピュータ道 http://nippondanji.blogspot.jp/ ・(ひ)メモ http://d.hatena.ne.jp/hirose31/
  • 41. MySQL入門後(3)⑦Twiter最近は、MySQLの最新の情報はTwiterで流れていることが多いです。自分でTweetしなくとも、必須です。 フォローするアカウントは、以下のページを参考に“漢のコンピュータ道:MySQLerのTwitterアカウントまとめ”http://nippondanji.blogspot.jp/2009/10/mysqlertwitter.html ハッシュタグ #mysql_jp をつけてtweetとすると、いろんな人に拾われる確率アップです⑧ソースを読むMySQLはFLOSSなので、分からないことがあった時の究極の解決法はこれです。入手先 http://dev.mysql.com/downloads/mysql/最新版 https://launchpad.net/mysql-server コードホスティングはLaunchPad(2008年にBitKeeperから移転) バージョン管理はbazzar githubとgitに移行してくれると楽だなあ ソースを読むのは勉強になる。でも、一人で読むのはしんどい ⑨勉強会に参加しましょう ・IT勉強会カレンダー http://bit.ly/itcal
  • 42. MySQL入門後(おまけ) ①“MySQL Cheat Sheet”を印刷して座右に置きましょう “漢(オトコ)のコンピュータ道” @nippondanjiさんのMySQLチートシート(カンペ) http://www.mysqlpracticewiki.com/files/cheat-sheet.pdf ②“MySQL[plus] awards 2011”を見ていろんなアプリを試そう MySQLは世界中で人気があるDBなので、有償、無償の色々なアプリがあります 別に権威のある賞ではなくブログ書いた人の個人的な選考でしょうが、 聞いたことないアプリもあったりして面白いので、手当たり次第に試してみると、 新しい発見があるかもしれません http://www.mysqlplus.net/2012/01/05/vote-mysqlplus-community-awards-2011/ 樋口さんのHandolerSocketとか、 松信さんのMHAとか、 木下さんが過去に作られたXtraBackupとか、 日本の開発者が作ったツールも結構入っています
  • 43. ◆ ご愛読ありがとうございました 男坂の「未完」の絵 http://riasu.up.d.seesaa.net/riasu/image/otokosaka47362.gif http://riasu.seesaa.net/article/23979138.html

×