1、基础环境介绍
1.1软件环境
操作系统:redhat linux 6.3
Mysql版本:Mysql 5.6.24
1.2磁盘目录规划
| 序号 |
目录 |
用途 |
| 1 |
/opt/mysql/mysql-5.6.24 |
mysql主程序安装目录 |
| 2 |
/data/mysql/mysql_5624/{data,tmp,logs} |
存放数据文件、临时文件、日志文件,5624代表为5.6.24版本号 |
?
2、linux环境调整优化
2.1 关闭NUMA
编辑/etc/grub.conf文件,在kernel后面增加 numa=offelevator=deadline
2.2 关闭selinux
编辑/etc/selinux/config文件,在最后面增加SELINUX=disabled
2.3 修改unlimit参数
编辑/etc/security/limits.conf文件,增加下面四行信息:
| root soft nofile 65535 root hard nofile 65535 ? root soft nproc 7000 root hard nproc 7000 |
2.4 关闭iptables
#service iptables stop
#/etc/init.d/iptables stop
#chkconfig iptables off
2.5 修改环境变量
#Vi .bash_profile
增加下面内容:
| export PATH=/usr/local/mysql/bin:/opt/mysql/mysql-5.6.24/bin:$HOME/bin:$PATH |
#source .bash_profile
?
由于修改的内容较多,建议到此步时,重启一次linux,并验证参数等配置是否生效。
3、安装mysql
3.1 创建安装与存放数据文件等文件目录
#mkdir –p /opt/mysql/mysql-5.6.24
#mkdir –p /data/mysql/mysql_5624/{data,tmp,logs}
3.2创建Mysql用户与用户组
# groupadd mysql
# useradd -g mysql -s /sbin/nologin -d/opt/mysql mysql
3.3需要安装mysql的DBD模块包
DBD模块包名为:perl-DBD-MySQL-3.0007-2.el5.x86_64.rpm
#yum install cmake *gcc* libaio libaio-devel automake autoconf bzbison libtool ncurses
#yum install perl-DBD-MySQL
下载地址:
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz
3.5 上传压缩文件至服务器
将下载到的mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz源码安装文件上传到服务器的/opt/mysql/目录下(方法略)
3.6 解压mysql的安装包
#tar -xzvf /opt/mysql/mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz -C/opt/mysql/mysql-5.6.24/
3.7 剪切解压缩后的文件至规划的安装目录
#cd /opt/mysql/mysql-5.6.24
#mv mysql-5.6.24-linux-glibc2.5-x86_64/* .
#rm –rf mysql-5.6.24-linux-glibc2.5-x86_64
3.8 创建ln软链接
创建软链接的目的:为了在服务器上存有多个mysql版本时,可以使用软链接灵活的指向想要使用的版本,在升级时最为有用。
#ln -s /opt/mysql/mysql-5.6.24 /usr/local/mysql
3.9 更改目录权限
#chown -R mysql:mysql /usr/local/mysql
#chown -R mysql:mysql /data/mysql
#chown -R mysql:mysql /opt/mysql
3.10 查看依赖的lib库是否安全
#ldd /usr/local/mysql/bin/mysqld
?
4、配置my.cnf参数与数据库初始化
4.1 配置my.cnf参数
(1)备份/etc/my.cnf
#mv /etc/my.cnf /etc/my.cnf_backup
(2)创建新的/etc/my.cnf文件
#vi /etc/my.cnf
[client] port = 3306 socket = /tmp/mysql.sock [mysql] prompt=[master]> #pager="less -i -n -S" tee=/data/mysql/mysql_5624/data/query.log no-auto-rehash [mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin log = /opt/mysql/mysqld_multi.log [mysqld] #misc explicit_defaults_for_timestamp = ture user = mysql basedir = /usr/local/mysql datadir = /data/mysql/mysql_5624/data port = 3306 socket = /tmp/mysql.sock event_scheduler = 0 #timeout interactive_timeout = 300 wait_timeout = 300 #character set character-set-server = utf8 open_files_limit = 65535 max_connections = 100 max_connect_errors = 100000 skip-name-resolve = 1 #logs log-output=file slow_query_log = 1 slow_query_log_file = slow.log log-error = /data/mysql/mysql_5624/data/error.log log_warnings = 2 pid-file = mysql.pid long_query_time = 1 #log-slow-admin-statements = 1 #log-queries-not-using-indexes = 1 log-slow-slave-statements = 1 #binlog binlog_format = mixed s