2012/12/19(水)MySQL設定メモ
InnoDBでMySQLを運用することを前提に書きます。
my.cnfの設定
MySQL 5.5以降ならばInnoDBの新しいエンジンが入っているが、5.1.xの場合はプラグインとなっているのでそれを有効化する。
[mysqld] ignore-builtin-innodb plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
また同時に、デフォルトエンジンとしてInnoDBの設定、及びutf8を設定する。
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 default-storage-engine=InnoDB
mysqlコマンド
コマンドライン書式の例。
# mysql -u root -p # mysql -u user -pPASS dbname # mysql -h db-server.dummy.xxx -P 3306 -u user -pPASS dbname
DBとユーザーの作成
CREATE DATABASE dbname DEFAULT CHARSET=utf8; GRANT all privileges ON dbname.* TO dbuser@localhost IDENTIFIED BY 'PASSWORD'; GRANT SELECT,INSERT,UPDATE,DELETE ON privileges ON dbname.* TO dbuser@localhost IDENTIFIED BY 'PASSWORD';
IPアドレス等を指定する場合は次のようにする。
書式 | 意味 |
---|---|
uname@localhost | UNIXドメインソケット通信を許可 |
uname@127.0.0.1 | ローカルホスト(TCP/IP)を許可 |
uname@'%' | 全てのホストを許可 |
uname@192.168.1.12 | IPアドレス指定 |
uname@'192.168.%' | IPアドレスが192.168.* のホストを許可 |
この他、Firawall(iptables)を設定するのはもちろんのこと、MySQLはhosts.allowも参照する。
mysqld: ALL
ユーザー情報の確認
use mysql; select host,user,password from user;
パスワード以外は直接書き換えれば良い。
パスワードは次のようにする。
SET PASSWORD FOR user@localhost=PASSWORD('password'); SET PASSWORD FOR user@your.host=PASSWORD('password');
文字コードの確認
show variables like 'char%';