MySQL InnoDB構築方法

MySQLを構築することが多くなってきたので、構築方法に関して、メモ的に記載しておきます。
作るDBは、InnoDBエンジンのものです。

MySQL実行ユーザ作成
[user@localhost]$ sudo su - root
[root@localhost]# groupadd server
[root@localhost]# useradd -g server mysql
MySQL InnoDBログファイル格納ディレクトリ作成
[root@localhost]# mkdir /var/log/mysql
[root@localhost]# chown -R mysql:server /var/log/mysql
MySQL InnoDBインストールディレクトリ作成
[root@localhost]# cd /usr/local/src
[root@localhost]# tar -zxvf mysql-5.5.12-linux2.6-x86_64.tar.gz
[root@localhost]# mv mysql-5.5.12-linux2.6-x86_64 /usr/local/mysql
[root@localhost]# cd /usr/local/mysql
[root@localhost]# mkdir conf
[root@localhost]# mkdir mysqld
[root@localhost]# chown -R mysql:server /usr/local/mysql
MySQLの設定ファイル作成
[root@localhost]# su - mysql
[mysql@localhost]$ cd /usr/local/mysql
[mysql@localhost]$ vi conf/my.conf
[mysqld]
user=mysql
port=7777
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
tmpdir=/tmp
pid-file=/usr/local/mysql/mysqld/mysqld.pid
socket=/usr/local/mysql/mysqld/mysqld.sock

back_log=50
max_connections=100
max_connect_errors=10
table_open_cache=2048
max_allowed_packet=16M
binlog_cache_size=1M
max_heap_table_size=64M
read_buffer_size=2M
read_rnd_buffer_size=16M
sort_buffer_size=8M
join_buffer_size=8M
thread_cache_size=8
thread_concurrency=8
query_cache_size=64M
query_cache_limit=2M
ft_min_word_len=4
default-storage-engine=InnoDB
thread_stack=192K
transaction_isolation=REPEATABLE-READ
tmp_table_size=64M

server-id=1

#sync_binlog=1
#binlog_format=mixed

character-set-server=utf8
general_log=ON
general_log_file=/var/log/mysql/mysqld.log
log-error=/var/log/mysql/mysqld_error.log
slow_query_log=ON
slow_query_log_file=/var/log/mysql/mysql_slow.log
long_query_time=0
#log-bin=/var/log/mysql_replication/binary_log

##############################################################
# MyISAM
##############################################################
key_buffer_size=32M
bulk_insert_buffer_size=64M
myisam_sort_buffer_size=128M
myisam_max_sort_file_size=1G
myisam_repair_threads=1
myisam_recover

###############################################################
# InnoDB
###############################################################
innodb_additional_mem_pool_size = 20M
innodb_buffer_pool_size=256M
innodb_file_per_table=1
innodb_data_file_path = ibdata1:200M:autoextend
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_thread_concurrency = 16
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit=1
innodb_support_xa=OFF
skip-innodb_doublewrite

[mysql]
default-character-set=utf8
socket=/usr/local/mysql/mysqld/mysqld.sock

[mysqladmin]
socket=/usr/local/mysql/mysqld/mysqld.sock

[mysqld_safe]
open-files-limit = 8192
DBインストール
[mysql@localhost]$ ./scripts/mysql_install_db --defaults-file=/usr/local/mysql/conf/my.conf
DB起動
[mysql@localhost]$ ./bin/mysqld_safe --defaults-file=/usr/local/mysql/conf/my.conf &
Rootユーザパスワード設定
[mysql@localhost]$ ./bin/mysql --defaults-file=/usr/local/mysql/conf/my.conf -u root
mysql> UPDATE mysql.user SET password = password('***********') WHERE user = 'root';
匿名アカウント削除
mysql> DELETE FROM mysql.user WHERE user='';
mysql> FLUSH PRIVILEGES;
DB作成
mysql> CREATE DATABASE <DBNAME> DEFAULT CHARACTER SET utf8;
アカウント及び権限設定
CREATE USER '<USERNAME>'@'localhost' IDENTIFIED BY '*************';
mysql> CREATE USER '<USERNAME>'@'<HOSTNAME>' IDENTIFIED BY '*************';
mysql> GRANT ALL PRIVILEGES ON <DBNAME>.* TO  '<USERNAME>'@'localhost';
mysql> GRANT ALL PRIVILEGES ON <DBNAME>.* TO  '<USERNAME>'@'<HOSTNAME>';