目录
文章目录
前言
一、mysqlshell安装脚本
二, mysql 配置文件
前言
liunx下mysql安装脚本shell脚本,采用的版本时mysql-5.7.28,rpm安装方式,shell安装脚本,和ect配置文件修改,shell里面有注释说明,如果时新手。建议先看shell,在执行命令
提示:以下是本篇文章正文内容,下面案例可供参考
一、mysqlshell安装脚本
#!/bin/env bash
#desc: mysql5.7.28的一键安装脚本
#安装说明: 将整个目录上传到服务器任意目录下,修改配置文件中MySQL密码后,直接执行可。
#测试环境: 该脚本在虚拟机上的centOS7.8下测试可行,Linux系统为标准桌面安装
###预定义变量
#获得当前脚本所在目录
curr_path=$(cd `dirname $0`; pwd)
mysql_passwd='Zhq123456`'
#mysql数据文件,安装时先删除,以免造成干扰
mysql_datadir=/var/lib/mysql
mariadb_name=`yum list installed | grep mariadb | awk '{print $1}'`
if [[ -z "${mariadb_name}" ]];then
#卸载
rpm -e --nodeps $mariadb_name
#复制mysql配置文件到/etc/my.cnf下
if [[ -f /etc/my.cnf ]];then
#当前mysql版本初始化时会默认生成一个/etc/my.cnf
rm /etc/my.cnf
fi
fi
#Mysql判断数据文件是否存在,存在删除
if [[ -d $mysql_datadir ]];then
#删除已经存在的mysql数据文件
rm -rf $mysql_datadir
fi
#第二步:安装rpm安装包
echo `date "+%Y-%m-%d %T"` "----安装mysql-common......"
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
echo `date "+%Y-%m-%d %T"` "----mysql rpm包安装完毕"
echo `date "+%Y-%m-%d %T"` "----安装mysql-libs......"
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
echo `date "+%Y-%m-%d %T"` "---->>mysql rpm包安装完毕"
echo `date "+%Y-%m-%d %T"` "----安装mysql-compat......"
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
echo `date "+%Y-%m-%d %T"` "---->>mysql rpm包安装完毕"
echo `date "+%Y-%m-%d %T"` "----安装mysql-client......"
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
echo `date "+%Y-%m-%d %T"` "----mysql rpm包安装完毕"
echo `date "+%Y-%m-%d %T"` "----安装mysql-server......"
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
echo `date "+%Y-%m-%d %T"` "----mysql rpm包安装完毕"
#用已经配置好的mysql配置文件覆盖生成的配置文件
cp ./my.cnf /etc/my.cnf
#启动mysql服务
systemctl start mysqld
#获取mysql初始密码
init_passwd=$(cat /var/log/mysqld.log | grep 'temporary password' | awk '{print $NF}')
#使用初始密码登录mysql,并设置新密码
mysql --connect-expired-password -uroot -p${init_passwd} << EOF
set PASSWORD=PASSWORD("${mysql_passwd}");
exit
EOF
echo `date "+%Y-%m-%d %T"` "---->>新密码设置完毕"
#第四步:授权设置,开启远程访问
echo `date "+%Y-%m-%d %T"` "---->>授权设置......"
#使用新密码登录mysql
mysql -uroot -p"${mysql_passwd}" << EOF
use mysql;
update user set host = '%' where user = 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY "${mysql_passwd}" WITH GRANT OPTION;
flush privileges;
exit
EOF
echo "---->>授权执行完毕"
#设置开机自启,并重启mysql
#chkconfig mysql on
#service mysql restart 1>/dev/null 2>&1
echo "mysql安装完毕,登录密码为${mysql_passwd}"
二, mysql 配置文件
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
# Disabling symbolic-links is recommended to prevent assorted security risks
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
port=20110
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
lower_case_table_names=1
ngram_token_size=1
symbolic-links=0
max_connections=1000
max_allowed_packet=1024M
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/slow-query.log # 若没有指定,默认名字为hostname_slow.log
long_query_time = 1
log_queries_not_using_indexes = 0
transaction_isolation = READ-COMMITTED
innodb_file_per_table=1
innodb_log_file_size=1024M
innodb_strict_mode=0
#wait_timeout=600
# ---------------- Binlog ----------------
server-id=1
log-bin = /var/lib/mysql/mysql_log_bin
log-bin-index = /var/lib/mysql/mysql_log_bin.index
binlog_format = row
expire_logs_days = 7
sync_binlog = 1
binlog_cache_size = 8M
max_binlog_cache_size = 2048M
max_binlog_size = 1024M
binlog_rows_query_log_events = 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)