まずはダウンロードとインストール
ダウンロードサイトhttp://dev.mysql.com/downloads/
バイナリにはインストールパッケージ(Windows=MSI、Mac=DMG、Linux=RPMとか)とアーカイブ(*NIX=tar.gz/Windows=zip)があるけど、初心者は黙ってパッケージをチョイス。インストールはウィザードに従うだけ。英語だけどそこはガマン!
パッケージリポジトリがあるOSを使ってるなら、リポジトリからインストールするのもありだ。例えば、
shell> sudo yum install mysqlとか
shell$gt; sudo apt-get install mysqlとか。これは楽チンだけどMySQLのバージョンがちょっと古くなるので注意。
もちろんソースコードからビルドするのもアリだ。
設定
MySQLの設定で何がいちばん重要かっていうと、InnoDBのパラメータまわりだ。特に、ログファイルのサイズは後から変えるのが面倒なので最初にキッチリやっておくこと。そしてバッファプールのサイズをキッチリ増やしておくこと。いくらマシンにメモリを積んでたって、バッファプールに割り当てなきゃ無意味だからな。あと、文字コードとかディレクトリ関係とか接続数とか基本的な設定も大事。シンプルなmy.cnfのサンプル。
とりあえずこれで動く。[mysqld] # basic settings user = mysql port = 3306 socket = /tmp/mysql.sock character-set-server = utf8 datadir = /var/lib/mysql tmpdir = /var/tmp/mysql log_slow_queries max_connections = 500 thread_cache_size = 500 max_allowed_packet = 16M table_cache = 2000 #log-bin = mysql-bin #server-id = 1 innodb_buffer_pool_size = 2500M innodb_flush_method = O_DIRECT innodb_log_file_size = 256M innodb_log_buffer_size = 8M
パッケージを使ってインストールした場合には既に設定ファイルがあるので、それを編集するといいだろう。また、既にmysqldが起動されてしまっている場合にはInnoDBのログファイルが出来てしまっているが、ログファイルサイズの設定値が実際と違うと起動しない。単純にログファイルを削除するとエラーになる。おまじないとして2回mysqldを再起動してから、ログファイル(ib_logfile*という名前)を削除して、それから設定値を変更するといいだろう。
あと、Windowsはウィザード使えってことで。
ユーザーの作成とか初期化とか
*NIXでtar.gz版を使う場合、ユーザーの作成とかdatadirを初期化とか自動起動の設定とかは自分でやらないとイカン。ユーザーの作成とか shell> sudo mkdir /var/lib/mysql shell> sudo groupadd mysql shell> sudo useradd -g mysql -s /bin/false -d /var/lib/mysql mysql shell> chown mysql:mysql /var/lib/mysql && chmod 700 /var/lib/mysql shell> passwd mysql データディレクトリの初期化とか shell> cd /usr/local/mysql shell> sudo bin/mysql_install_db --datadir=/var/lib/mysql shell> sudo chown -R mysql:mysql /var/lib/mysql 自動起動とか shell> sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql shell> sudo update-rc.d mysql defaults
RPMとかのパッケージだと自動でやってくれるからやっぱり便利だよね。
起動&停止
*NIXの場合、起動はとする。rootになるのはmysqldがリソースの設定(ulimitで増やす)などをするためだ。プロセスは後からsetuid()でmy.cnfで設定されているユーザーに変更する。そもそもさっき作成したmysqlユーザーだとログイン出来ないしね。rootになって、 shell> mysqld_safe & または shell> /etc/init.d/mysql start または shell> service start mysql
停止は
だ。shell> mysqladmin -uroot -p shutdown または、rootで shell> /etc/init.d/mysql start または、rootで shell> service start mysql
Windowsの場合は、大抵サービスとして動かしてると思うので、「コントロールパネル ⇒ 管理ツール ⇒ サービス」から起動停止すべし。
rootパスワードの設定
初期状態では、MySQLのrootユーザにはパスワードが設定されていない。超^64危険なのですぐにパスワードを設定すべし!*NIXなら、mysql_secure_installationというコマンドが便利だ。このコマンドは、rootパスワードの設定や、不要なアカウントの削除などを行ってくれる便利ツール。是非使うべし。Windowsならウィザードで設定可能。
CLIで接続
という感じで。パスワードはスペースを空けずに入力すればコマンド行で指定できるけど、psとかで他のユーザーから見えちゃうから注意。指定がなければパスワードの入力を促すプロンプトが表示されるよ!文字コードは自分の端末と合わせること。$HOME/.my.cnfに設定を書いておくと便利。shell> mysql -h ホスト名 -P ポート番号 -u ユーザー名 -p[パスワード] --default-character-set=文字コード データベース名
ホスト名の指定がない場合、デフォルトではlocalhostに接続する。その場合、*NIXならTCP/IPじゃなくてUNIXドメインソケット接続になる。[mysql] user=ユーザー名 password=パスワード default-character-set=utf8 port=3306 host=127.0.0.1
ユーザーの作成
アプリケーションがrootユーザーでMySQLサーバーに接続するのは大変危険じゃ。最低でも管理系の権限と、システムデータベースへのアクセスがないユーザーを作成するのが望ましい。mysql> GRANT ALL ON db1.* TO user1@host1 IDENTIFIED BY 'パスワード'とすれば、最低でも前述の条件は満たせる。もう一手間かけて、DDL(CREATEとかALTERとか)を実行するユーザーと、DML(SELECT/INSERT/DELETE/UPDATE)を実行するユーザーを分けておくといいだろう。(詳細割愛)
コネクタ
各種プログラミング言語でMySQLにアクセスするにはコネクタ(っつーかドライバ)を使う。オフィシャルなコネクタはダウンロードページから入手しよう。PerlとRubyのオフィシャルなものはないので、Perl用のドライバはCPANからDBD::mysqlを、Ruby用のドライバはgemでruby-mysqlまたはmysqlをゲットするといいだろう。(ruby-mysqlはPure ruby実装)接続方法とかクエリの実行方法とかは書き出すとキリがないので割愛!ただし文字化けには特に注意すること。(コネクタの接続設定で適切な文字コードを指定すればノープロブレムだ!)RTFM!
GUIとか
今ならMySQL Workbench 5.2がナイスチョイス。β版なので不具合も多少あるだろうけど、不具合に遭遇したら報告してくれると助かりマンモス。レプリケーション
とりあえず、ひろせ まさあきさんによる解説を読もう。話はそれからだ。バックアップとリストア
データ量が少ないうちはmysqldumpで充分イケル。という具合だ。テーブルがInnoDBだけなら、mysqldumpには--single-transactionというオプションをつけると、バックアップ中も参照・更新共に出来るのでナイスだ。バックアップ shell> mysqldump -hホスト名 -uroot -p データベース名 > dumpfile.sql リストア shell> mysql -hホスト名 -uroot -p データベース名 < dumpfile.sql
0 コメント:
コメントを投稿