CentOS6u9 二进制软件包安装MySQL 5.6

简单说明:

依据《CentOS6实验机模板搭建部署》克隆虚拟机,下载MySQL 5.6 二进制软件安装包:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

主机部署:

1° 设置主机名和hosts解析:

hostname mysql
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ifconfig eth0|grep inet|awk -F'[ :]' '{print $13}') $(hostname)">>/etc/hosts
sed -i "s/^HOSTNAME.*$/HOSTNAME=$(hostname)/g" /etc/sysconfig/network
ping -c 3 $(hostname)

2° 更改IO调度为deadline模式:

sed -i 's/^timeout.*$/&\nelevator=deadline/g' /boot/grub/grub.conf

3° 配置系统资源限制:

echo -e '*\thard\tnproc \t65535'>>/etc/security/limits.conf
echo -e '*\tsoft\tnproc \t65535'>>/etc/security/limits.conf
echo -e '*\thard\tnofile\t65535'>>/etc/security/limits.conf
echo -e '*\tsoft\tnofile\t65535'>>/etc/security/limits.conf
# 或者用户名限制为MySQL

4° 关闭numa:
建议从BIOS设置中关闭numa,CentOS中检测BIOS层面是否关闭numa的命令:

grep -i numa /var/log/dmesg
# No NUMA configuration found
# 显示此信息即为BIOS层面已经关numa

可以在OS层面关闭numa:

sed -i 's/\<kernel.*$/& numa=off/g' /boot/grub/grub.conf

关于numa的启用和关闭以及配置优化比较高深,此处只做简单的统一关闭处理,如有特殊需求建议自行配置

重启主机:

reboot

MySQL 5.6 二进制软件包安装:

# 创建系统用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
# 下载解压
cd /tmp
axel 'https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz'
cd /usr/local
tar -xf /tmp/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.6.40-linux-glibc2.12-x86_64 mysql
chown -R mysql: mysql-5.6.40-linux-glibc2.12-x86_64
chown -R mysql: mysql
echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile 
export PATH=$PATH:/usr/local/mysql/bin
# 创建数据目录
mkdir -pv /data/mysql/{run,log,data,binlog}
chown -R mysql: /data/mysql
# 创建配置文件
SERVERID=3306
MEMSIZE=$(grep 'MemTotal' /proc/meminfo |awk '{printf ("%d\n",$2/1024*0.8)}')M
cat >/etc/my.cnf<<EOF
[client]
port = 3306
socket = /data/mysql/run/mysql.sock
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
socket = /data/mysql/run/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql/data
open_files_limit = 65535
back_log = 100
max_connections = 512
max_connect_errors = 100000
table_open_cache = 512
external-locking = FALSE
max_allowed_packet = 128M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 51
query_cache_size = 32M
tmp_table_size = 96M
max_heap_table_size = 96M
slow_query_log = 1
slow_query_log_file = /data/mysql/log/slow.log
log-error = /data/mysql/log/error.log
long_query_time = 0.5
server-id = ${SERVERID}
log-bin = /data/mysql/binlog/binlog${SERVERID}
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 128M
max_binlog_size = 1024M
expire_logs_days = 7
key_buffer_size = 32M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
character-set-server=utf8
default-storage-engine=InnoDB
binlog_format=row
# gtid_mode=on
# log_slave_updates=1
# enforce_gtid_consistency=1
interactive_timeout=300
wait_timeout=300
transaction_isolation = REPEATABLE-READ
innodb_buffer_pool_size = ${MEMSIZE}
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_locks_unsafe_for_binlog = 0
[mysqldump]
quick
max_allowed_packet = 32M
EOF
# 初始化数据库
cd /usr/local/mysql/scripts
yum -y install numactl
./mysql_install_db --basedir=/usr/local/mysql \
--datadir=/data/mysql/data --defaults-file=/etc/my.cnf \
--user=mysql
# 启动和配置开机启动
cd /usr/local/mysql/bin
./mysqld_safe --defaults-file=/etc/my.cnf &
echo '/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &'>>/etc/rc.local
mysqladmin shutdown
reboot
# 配置root密码
PASS=vincent
mysqladmin -u root password "$PASS"
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '$PASS' WITH GRANT OPTION;"|mysql -uroot -p"$PASS" -Dmysql
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '$PASS' WITH GRANT OPTION;"|mysql -uroot -p"$PASS" -Dmysql
echo "update user set password=password('$PASS') where user='root';"|mysql -uroot -p"$PASS" -Dmysql
echo "delete from user where user!='root';"|mysql -uroot -p"$PASS" -Dmysql
echo "drop database test;"| mysql -uroot -p"$PASS" -Dmysql
echo "flush privileges;"| mysql -uroot -p"$PASS" -Dmysql

[TOC]

猜你喜欢

转载自blog.csdn.net/zwjzqqb/article/details/80910925