MySQL版本的选择:5.5+——支持utf8mb4,但是启动时候无故多吃300M内存。5.1+——方便好用,不支持utf8mb4但内存控制的非常好。安装方面,5.5+需要rpm安装,有可能遇到缺少依赖,但yum装下依赖即可解决;5.1+可以直接yum安装毫无障碍。

安装篇:

5.5+不同的一点安装后需要mysql_install_db 初始化DB5.1+启动时会自动初始化。

配置好/etc/my.cnf之后,创建mysql的目录,并修改所有权为mysql:mysql

CentOs6+需要配置另外一个DAC规则。具体如下:

ls -lh -Zd /var/lib/mysql  查询mysql的用户DAC规则

drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 /var/lib/mysql

并把该规则应用到新建的目录下

chcon -R -u system_u -r object_r -t mysqld_db_t /data/mysql。

然后初始化数据,启动就好。

最后,执行下面几步,不解释:

/usr/bin/mysqladmin -u root password 你的密码  

iptables -I INPUT -i eth0 -p tcp –dport 3306 -j ACCEPT

iptables  -I OUTPUT -o eth0 -p tcp –sport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save

 

Mysql登录:

GRANT ALL PRIVILEGES ON *.* TO ‘用户名‘@’%’ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION;  

GRANT ALL PRIVILEGES ON *.* TO ‘用户名‘@’localhost’ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION;  

flush privileges;

 

 

配置篇:

内存计算公式:

mysql used mem =

key_buffer_size + query_cache_size + tmp_table_size

+ innodb_buffer_pool_size + innodb_additional_mem_pool_size

+ innodb_log_buffer_size

+ max_connections * (

read_buffer_size + read_rnd_buffer_size

+ sort_buffer_size + join_buffer_size

+ binlog_cache_size + thread_stack

)

 

如果不考虑主从,就无需binlog,另外,无论是否使用MyISAM作为默认存储引擎,key_buffer_size必须大于0

我的参考配置文件:

[mysqld]
port=3306
datadir=/usr/database
socket=/usr/database/mysql.sock
user=mysql
symbolic-links=0
default-storage-engine=InnoDB
character-set-server = utf8

max_allowed_packet=4M
max_heap_table_size=8M
thread_cache_size=8
thread_concurrency=2
query_cache_size=512K
query_cache_limit=128K
tmp_table_size=1M

key_buffer_size=1M
max_connections=10
read_buffer_size=1M
read_rnd_buffer_size=2M
sort_buffer_size=1M
join_buffer_size=128K
binlog_cache_size=0
thread_stack=128K

open_files_limit=600
back_log=20

slow_query_log
slow_query_log_file=/var/lib/mysql/slow_query_log_file.log
long_query_time=3

innodb_additional_mem_pool_size=1M
innodb_buffer_pool_size=2M
innodb_log_buffer_size=128K
innodb_log_file_size=512M
innodb_thread_concurrency=2
innodb_flush_log_at_trx_commit=0

skip-host-cache

[mysqld_safe]
character-set-server=utf8

log-error=/usr/database/mysqld.log
pid-file=/usr/database/mysqld.pid
[mysql]
port=3306
socket=/usr/database/mysql.sock