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>';