Mysql8.0.13脚本安装(mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz)
街头角落
链接:https://pan.baidu.com/s/1V8-3SepCkZoDR_3Z3Vr9Tg
提取码:ihin
复制这段内容后打开百度网盘手机App,操作更方便哦
#!/bin/bash
# ——————————————————————————-
# Filename: 安装MySQL8.0.13
# Revision: 1.1
# Author zhongwf 577344353@qq.com
# Description: 解压安装MySQL8.0.13
# Notes: MySQL版本为:mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
# ——————————————————————————–
#ySQL8.0.13下载地址 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
MYSQL_ID=`ifconfig eth0 | grep “inet addr” | awk -F. ‘{print $4}’ | awk ‘{print $1}’`
CPU_NUMBERS=$(cat /proc/cpuinfo |grep “processor”|wc -l)
COMPUTER_MEM=`free -m |grep “Mem”|awk ‘{print $2}’`
MYSQL_MEM=`expr $COMPUTER_MEM – $COMPUTER_MEM / 4`
echo “$MYSQL_MEM”
echo “================================================================”
echo “setup MySQL 8.0.13 on centos 7_64bit ”
echo “your computer is $CPU_NUMBERS processes ,mysql Memory is $MYSQL_MEM M”
echo “you will input mysql’s root password and mysql’s memory”
echo “================================================================”
sleep 1
read -n1 -p “are you sure setup[y/n]?” answer
case $answer in
Y | y)
echo
echo “start setup….”;;
N | n)
echo
echo “Cancel setup….”
exit 10 ;;
*)
echo
echo “error input parameter…..”
exit 11 ;;
esac
# check if user is root
if [ $(id -u) != “0” ];then
echo “Error: You must be root to run this script!”
exit 1
fi
# 解压MySQL8.0.13压缩包
cd /usr/local/src
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
# 改文件夹名
cd /usr/local/
mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql
# 建数据文件夹和日志文件夹
#mkdir /data
# 建数据文件夹和日志文件夹
#mkdir /data
#判断是否已经有/data/这个目录
if [ ! -d “/data/” ];then
mkdir /data/
fi
#配置文件/etc/my.cnf
rm -rf /etc/my.cnf
touch /etc/my.cnf
cat > /etc/my.cnf << EOF
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
port = 12336
log-bin=mysql-bin
server-id=1
#binglog日誌格式
binlog_format=”ROW”
#binlog过期清理时间
expire_logs_days=10
#binlog每个日志文件大小
max_binlog_size=100m
datadir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
#symbolic-links=0
#innodb使用内存
#innodb_buffer_pool_size = 12G
#主从不同步的库
#binlog-ignore-db = dbname
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = sys
#缓冲的数据hash到不同的缓冲池中,并行的内存读写
innodb_buffer_pool_instances = 2
#该变量将数据存导入到内存中,可以减少大量的IO资源消耗。当事务提交时,保存数据,后续在刷
#新到磁盘。
innodb_log_buffer_size = 128M
#在一个日志组每个日志文件的字节大小,日志文件的总大小
innodb_log_file_size = 256M
#修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。
innodb_file_per_table =ON
#库里的表特别多的情况使用,这个值默认是300M
innodb_open_files=2M
#限制了一次有多少线程能进入内核,0表示不限制进入内核的数量
innodb_thread_concurrency=0
innodb_flush_log_at_trx_commit=1
sync_binlog=1
### myisam
key_buffer_size = 32M
sort_buffer_size=16M
bulk_insert_buffer_size=16M
read_rnd_buffer_size=16M
#连接数
max_connections = 2000
#跳过错误
#slave-skip-errors=all
#utf8mb4编码
character-set-client-handshake = FALSE
character-set-server = utf8mb4
init_connect=’SET NAMES utf8mb4’
lower_case_table_names=1
#开启log-bin日志
log-bin-trust-function-creators=1
#开启事件调度器
event_scheduler=1
#慢查询开启
slow_query_log=1
#慢查询时间为2s
long_query_time=2
#存放位置
slow_query_log_file = /data/mysql/slow.log
#索引
log_queries_not_using_indexes
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION
[mysqld_safe]
log-error=/data/mysql/mariadb.log
pid-file=/data/mysql/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
EOF
#mysql user create
groupadd mysql
useradd -g mysql mysql -s /bin/false
# 修改目录归属
chown -R mysql.mysql /usr/local/mysql
chown -R mysql:mysql /data
#mysql dir create
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
mkdir -p /usr/local/mysql
yum install -y libaio
# 初始化数据库
cd /usr/local/mysql/bin/
rm -rf /data/mysql/
touch /data/recording.txt
touch /data/mysql_default.txt
#script -c /data/recording.txt
./mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/data/mysql/
#yum -y install psmisc
#killall script
#grep ‘root@localhost’ /data/recording.txt |awk ‘{print $13}’ > /data/mysql_default.txt
# 开机自启
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig –add mysqld
chkconfig mysqld on
sed -i ‘s%^datadir=%datadir=/data/mysql%g’ /etc/rc.d/init.d/mysqld
sed -i ‘s%^basedir=%basedir=/usr/local/mysql%g’ /etc/rc.d/init.d/mysqld
# 添加环境变量
echo “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
# 使新添加的环境变量生效
source /etc/profile
#添加到/etc目錄的軟連接
ln -s /data/mysql/mysql.sock /tmp/mysql.sock
ln -s /usr/local/mysql/bin/mysql /usr/bin
# 启动mysql服务
/etc/init.d/mysqld start
# 查看mysql服务是否成功启动
if [ $? = “0” ];then
echo “set up successfully!enjoy it….”
else
echo “set up fail”
fi
exit 0
#修改密码
#8.0 需要先用这条命令
#alter user ‘root’@’localhost’ identified by ‘123456’;
#CREATE USER ‘root’@’%’ IDENTIFIED BY ‘你的密码’;
#GRANT ALL ON *.* TO ‘root’@’%’;
#ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
#密码永不过期的
#ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密码’ PASSWORD EXPIRE NEVER;