centos 6 mysql源码安装
下载mysql5.7
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14.tar.gz
下载boost_1_59_0:
http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
下载支持包
yum -y install cmake gcc
yum groupinstall -y "Development tools" "Desktop Platform Development" "Server Platform Development"
新建用户
useradd -s /bin/nologin mysql
创建数据库目录
mkdir /mydata/data
修改权限
chown -R mysql.mysql /mydata/data
安装准备:
tar xf mysql-5.7.14.tar.gz
tar xf boost_1_59_0.tar.gz
cd mysql-5.7.14.tar.gz
编译:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data/ -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/root/boost_1_59_0
make && make install
chgrp -R mysql /usr/local/mysql
初始化:
cd /usr/local/mysql/bin/
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/data
控制mysql启动脚本:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add mysqld
优化MySQL命令的执行路径
[root@mysql ~]# cat /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
[root@mysql ~]# source /etc/profile.d/mysql.sh
导出MySQL的库文件
[root@mysql ld.so.conf.d]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@mysql ld.so.conf.d]# ldconfig
[root@mysql ld.so.conf.d]# ldconfig -v | grep mysql
/usr/local/mysql/lib:
libmysqlclient.so.18 -> libmysqlclient_r.so.18.1.0
[root@mysql ld.so.conf.d]#
导出MySQL的头文件
[root@mysql ~]# ln -s /usr/local/mysql/include/ /usr/include/mysql
复制MySQL的配置文件
[root@mysql mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
[root@mysql mysql]# vim /etc/my.cnf
innodb_file_per_table = 1
datadir = /mydata/data
port = 3306
user = mysql
server_id = 1
socket = /tmp/mysql.sock
[root@mysql mysql]# service mysqld start
[root@mysql ~]# netstat -antp | grep :3306
tcp 0 0 :::3306 :::* LISTEN 19767/mysqld
[root@mysql ~]#
配置文件调优:
[client]
port = 3306
socket = /data/mysql/mysql.sock
[mysqld]
binlog_format = mixed
port = 3306
socket = /data/mysql/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql
#master-to-master
log-bin = mysql1-bin
server-id = 1
expire-logs-days = 30 #only 30 days binlog backup
#replicate-do-db = test
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = sys
binlog-ignore-db = performance_schema
auto-increment-increment = 5
auto-increment-offset = 1
log-slave-updates = ON
max_connections=3000
back_log=50
max_user_connections=2000
innodb_thread_concurrency=8
default-storage-engine=InnoDB
innodb_buffer_pool_size=8192M
skip-name-resolve
innodb_log_buffer_size=8M
innodb_log_file_size=48M
innodb_flush_log_at_trx_commit=2
innodb_lock_wait_timeout=50
long_query_time = 1
slow_query_log=ON
slow_query_log_file=/data/mysql/slow.log
log-error=/data/mysql/error.log
#skip-grant-tables
skip-name-resolve
event_scheduler=ON
plugin-load=AUDIT=libaudit_plugin.so
audit_json_file=1
audit_json_file=ON
audit_whitelist_users=blacklist,mysql2,gmetric,procdb,{}