Loading

源码部署mysql-5.7.30的简单脚本

注意: 修改目录位置和my.cnf配置路径

#! /bin/bash
#创建mysql安装目录
name=/data
mkdir -p $name
# 安装wget
cd $name
yum install –y wget
#下载官方boost源码包5.7.30版本
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.30.tar.gz
#检查是否安装mysql和mariadb,有的话就卸载
mysql=rpm -qa |grep mysql
mariadb=rpm -qa |grep mariadb
rpm -e --nodeps $mysql
rpm -e --nodeps $mariadb
#安装依赖包
yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel bison bison-devel
#解压源码包并进入
tar -zxvf mysql-boost-5.7.30.tar.gz
cd mysql-5.7.30
#为防止错误污染源码,新建目录操作
mkdir uu
cd uu
echo -e "\033[36m如果有报错,编译失败,请结束编译进入uu目录,使用rm -rf CMakeCache.txt 重新编译\033[0m"
sleep 5
#用cmake构建项目,安装目录:$name/mysql , 数据存放目录:$name/data 配置文件存放:/etc/
cmake .. -DCMAKE_INSTALL_PREFIX=$name/mysql -DMYSQL_DATADIR=$name/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=ON -DWITH_MYISAM_STORAGE_ENGINE=ON -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_BOOST=../boost/boost_1_59_0
#源码编译
make && make install
#创建mysql用户和组,设置为没登陆权限
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
#创建编译存储目录,并赋予权限
mkdir -p $name/data
chown -R mysql:mysql $name/mysql
chown -R mysql:mysql $name/data
#创建mysql的配置文件,该配置为8核16G的调优配置
echo '[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
binlog_cache_size = 192K
thread_stack = 384K
join_buffer_size = 4096K
query_cache_type = 1
max_heap_table_size = 1024M
port = 3306
socket = /tmp/mysql.sock
datadir = /data/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 100G
table_open_cache = 1024
sort_buffer_size = 2048K
net_buffer_length = 4K
read_buffer_size = 2048K
read_rnd_buffer_size = 1024K
myisam_sort_buffer_size = 128M
thread_cache_size = 192
query_cache_size = 256M
tmp_table_size = 1024M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

explicit_defaults_for_timestamp = true
max_connections = 400
max_connect_errors = 100
open_files_limit = 65535

log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/data/data/mysql-slow.log
long_query_time=3
early-plugin-load = ""


innodb_data_home_dir = /data/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data/data
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 1024M
innodb_log_buffer_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 16
innodb_write_io_threads = 16

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 8M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout' > /etc/my.cnf
#使用配置文件初始化数据目录,并将结果保存到passwd.txt文档
cd $name/mysql
bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql | tee passwd.txt
echo -e "\033[36mmysql初始化密码保存$name/mysql/passwd.txt中\033[0m"
sleep 5
#配置mysql环境变量,并更新系统配置文件
echo 'export MYSQL_HOME=/data/mysql' >> /etc/profile
echo 'export PATH=$MYSQL_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
#以systemctl方式启动mysql
cp support-files/mysql.server /etc/init.d/mysql
systemctl start mysql
systemctl enable mysql
systemctl status mysql
echo -e "\033[36m安装目录:$name/mysql , 数据存放目录:$name/data , 配置文件:/etc/my.cnf , bin日志和慢日志:$name/data , 端口: 3306 所做优化针对:8核16G\033[0m"

 

posted @ 2020-12-25 17:25  bathing  阅读(115)  评论(0)    收藏  举报
Live2D