CentOS6u9 二进制软件包安装MySQL 5.7

简单说明:

参照《CentOS6u9 二进制软件包安装MySQL 5.6》下载MySQL5.7二进制软件包
参照该文档的主机部署部分进行部署,然后使用二进制软件包安装

MySQL 5.7 二进制软件包安装:

# 创建系统用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
cd /tmp
axel 'https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz'
cd /usr/local
tar -xf /tmp/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql
chown -R mysql: mysql-5.7.22-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
[mysql]
prompt="\\u@db \\R:\\m:\\s [\\d]> "
no-auto-rehash
[mysqld]
user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql/data
socket = /data/mysql/run/mysql.sock
character-set-server=utf8mb4
skip_name_resolve = 1
open_files_limit = 65535
back_log = 1000
max_connections = 512
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
table_open_cache_instances = 64
thread_stack = 512K
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 768
query_cache_size = 0
query_cache_type = 0
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
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 = 1G
max_binlog_size = 1G
expire_logs_days = 7
master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode = on
enforce_gtid_consistency=1
log_slave_updates
binlog_format = row
relay_log_recovery = 1
relay-log-purge = 1
key_buffer_size = 32M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
lock_wait_timeout = 3600
explicit_defaults_for_timestamp = 1
innodb_thread_concurrency = 0
innodb_sync_spin_loops = 100
innodb_spin_wait_delay = 30
transaction_isolation = REPEATABLE-READ
innodb_buffer_pool_size = ${MEMSIZE}
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_data_file_path = ibdata1:1G:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_neighbors = 0
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_open_files = 65535
innodb_max_dirty_pages_pct = 50
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_file_per_table = 1
innodb_online_alter_log_max_size = 4G
internal_tmp_disk_storage_engine = InnoDB
innodb_stats_on_metadata = 0
innodb_status_file = 1
innodb_status_output = 0
innodb_status_output_locks = 0
# performance_schema
performance_schema = 1
performance_schema_instrument = '%=on'
# innodb monitor
innodb_monitor_enable="module_innodb"
innodb_monitor_enable="module_server"
innodb_monitor_enable="module_dml"
innodb_monitor_enable="module_ddl"
innodb_monitor_enable="module_trx"
innodb_monitor_enable="module_os"
innodb_monitor_enable="module_purge"
innodb_monitor_enable="module_log"
innodb_monitor_enable="module_lock"
innodb_monitor_enable="module_buffer"
innodb_monitor_enable="module_index"
innodb_monitor_enable="module_ibuf_system"
innodb_monitor_enable="module_buffer_page"
innodb_monitor_enable="module_adaptive_hash"
[mysqldump]
quick
max_allowed_packet = 32M
EOF
# 初始化数据库
cd /usr/local/mysql/bin
yum -y install numactl
./mysqld --defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/data/mysql/data \
--user=mysql --initialize
# 使用参数 --initialize 在初始化库的时候生成密码写在error.log里面
# 启动和配置开机启动
cd /usr/local/mysql/bin
./mysqld_safe --defaults-file=/etc/my.cnf &
cat /data/mysql/log/error.log |grep 'A temporary password'
echo '/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &'>>/etc/rc.local
reboot
# 配置root密码
PASSWD=$(cat /data/mysql/log/error.log |grep 'A temporary password'|awk '{print $NF}')
PASS=vincent
mysqladmin -u root -p"$PASSWD" password "$PASS"
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '$PASS' PASSWORD EXPIRE NEVER;"|mysql -uroot -p"$PASS" -Dmysql
echo "flush privileges;"| mysql -uroot -p"$PASS" -Dmysql

[TOC]

猜你喜欢

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