shell安装mysql5.7_shell脚本一键安装MySQL5.7.29的方法

本文参考51CTO博客作者wjw555的作品

脚本内容:

vim install.mysql.sh

#!/bin/bash

[ -f /etc/init.d/functions ]&& . /etc/init.d/functions

###Check if user is root

if [ $UID -ne 0 ]; then

echo "Error: You must be root to run this script, please use root to install"

exit 1

fi

clear

echo "========================================================================="

echo "A tool to auto-compile & install MySQL 5.7.29 on Redhat/CentOS Linux "

echo "========================================================================="

#pkill -9 mysql

#date +%Y-%m-%d-%H-%M

#卸载系统自带的Mysql

#/bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps

#/bin/rpm -e $(/bin/rpm -qa | grep mariadb|xargs) --nodeps

#/bin/rm -f /etc/my.cnf

#set mysql root password

echo "==========================="

mysqlrootpwd="$1"

if [ "$1" = "" ]; then

mysqlrootpwd="rootmysql"

fi

#which MySQL Version do you want to install?

echo "==========================="

isinstallmysql57="5.7.29"

echo "Install MySQL 5.7.29,Please input y"

read -p "(Please input y , n):"

# Initialize the installation related content.

#Delete Old Mysql program

rpm -qa|grep mysql

rpm -e mysql

cat >>/etc/security/limits.conf<

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

EOF

echo "fs.file-max=65535" >> /etc/sysctl.conf

echo "============================Install MySQL 5.7.29=================================="

#Backup old my.cnf

#rm -f /etc/my.cnf

if [ -s /etc/my.cnf ]; then

mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak

fi

echo "============================MySQL 5.7.29 installing…………========================="

##define mysql directory configuration variable

Datadir=/data/mysql/data

Binlogdir=/data/mysql/binlog

Logdir=/data/mysql/logs

##yum install devel and wget mysql

yum install numactl

/usr/bin/wget -P /tmp http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

sleep 2

tar xf /tmp/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

ln -s /usr/local/mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql

grep mysql /etc/passwd

RETVAL=$?

if [ $RETVAL -ne 0 ];then

useradd mysql -s /sbin/nologin -M

action "mysql user added successfully" /bin/true

else

action " $(echo -e "\e[31;47;5m mysql user already exists\e[0m")" /bin/false

fi

if [ ! -d "$Datadir" ]

then

mkdir -p /data/mysql/data

fi

if [ ! -d "$Binlogdir" ]

then

mkdir -p /data/mysql/binlog

fi

if [ ! -d "$Logdir" ]

then

mkdir -p /data/mysql/logs

fi

chown -R mysql:mysql /data/mysql

chown -R mysql:mysql /usr/local/mysql

#edit /etc/my.cnf

#SERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'`

cat >>/etc/my.cnf<

[client]

port = 3306

[mysql]

auto-rehash

prompt="\\u@\\h [\\d]>"

#pager="less -i -n -S"

#tee=/opt/mysql/query.log

[mysqld]

####: for global

user =mysql

basedir =/usr/local/mysql/

datadir =/data/mysql/data

server_id =2333306

port =3306

character_set_server =utf8

explicit_defaults_for_timestamp =off

log_timestamps =system

socket =/tmp/mysql.sock

read_only =0

skip_name_resolve =1

auto_increment_increment =1

auto_increment_offset =1

lower_case_table_names =1

secure_file_priv =

open_files_limit =65536

max_connections =1000

thread_cache_size =64

table_open_cache =81920

table_definition_cache =4096

table_open_cache_instances =64

max_prepared_stmt_count =1048576

####: for binlog

binlog_format =row

log_bin =/data/mysql/binlog/mysql-bin

binlog_rows_query_log_events =on

log_slave_updates =on

expire_logs_days =7

binlog_cache_size =65536

#binlog_checksum =none

sync_binlog =1

slave-preserve-commit-order =ON

####: for error-log

log_error =/data/mysql/logs/error.log

general_log =off

general_log_file =/data/mysql/logs/general.log

####: for slow query log

slow_query_log =on

slow_query_log_file =/data/mysql/logs/slow.log

#log_queries_not_using_indexes =on

long_query_time =1.000000

####: for gtid

#gtid_executed_compression_period =1000

gtid_mode =on

enforce_gtid_consistency =on

####: for replication

skip_slave_start =1

#master_info_repository =table

#relay_log_info_repository =table

slave_parallel_type =logical_clock

slave_parallel_workers =4

#rpl_semi_sync_master_enabled =1

#rpl_semi_sync_slave_enabled =1

#rpl_semi_sync_master_timeout =1000

#plugin_load_add =semisync_master.so

#plugin_load_add =semisync_slave.so

binlog_group_commit_sync_delay =100

binlog_group_commit_sync_no_delay_count = 10

####: for innodb

default_storage_engine =innodb

default_tmp_storage_engine =innodb

innodb_data_file_path =ibdata1:1024M:autoextend

innodb_temp_data_file_path =ibtmp1:12M:autoextend

innodb_buffer_pool_filename =ib_buffer_pool

innodb_log_group_home_dir =/data/mysql/data

innodb_log_files_in_group =3

innodb_log_file_size =1024M

innodb_file_per_table =on

innodb_online_alter_log_max_size =128M

innodb_open_files =65535

innodb_page_size =16k

innodb_thread_concurrency =0

innodb_read_io_threads =4

innodb_write_io_threads =4

innodb_purge_threads =4

innodb_page_cleaners =4

# 4(刷新lru脏页)

innodb_print_all_deadlocks =on

innodb_deadlock_detect =on

innodb_lock_wait_timeout =20

innodb_spin_wait_delay =128

innodb_autoinc_lock_mode =2

innodb_io_capacity =200

innodb_io_capacity_max =2000

#--------Persistent Optimizer Statistics

innodb_stats_auto_recalc =on

innodb_stats_persistent =on

innodb_stats_persistent_sample_pages =20

innodb_adaptive_hash_index =on

innodb_change_buffering =all

innodb_change_buffer_max_size =25

innodb_flush_neighbors =1

#innodb_flush_method =

innodb_doublewrite =on

innodb_log_buffer_size =128M

innodb_flush_log_at_timeout =1

innodb_flush_log_at_trx_commit =1

innodb_buffer_pool_size =4096M

innodb_buffer_pool_instances =4

autocommit =1

#--------innodb scan resistant

innodb_old_blocks_pct =37

innodb_old_blocks_time =1000

#--------innodb read ahead

innodb_read_ahead_threshold =56

innodb_random_read_ahead =OFF

#--------innodb buffer pool state

innodb_buffer_pool_dump_pct =25

innodb_buffer_pool_dump_at_shutdown =ON

innodb_buffer_pool_load_at_startup =ON

EOF

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

Pass=$(grep 'A temporary password' /data/mysql/logs/error.log |awk '{print $NF}')

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig mysqld on

/etc/init.d/mysqld start

echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh

source /etc/profile.d/mysql.sh

echo "============================MySQL 5.7.29 install completed========================="

ps -eo start,cmd,pid|grep mysql

/usr/local/mysql/bin/mysqladmin -uroot -p"$Pass" password $mysqlrootpwd

[root@localhost ~]# sh install.mysql.sh mysqlroot

[root@localhost ~]# source /etc/profile.d/mysql.sh

说明: mysqlroot 为安装脚本修改MySQL服务默认密码后的新的密码

[root@localhost ~]# mysql -uroot -p'mysqlroot' -e "select now()"

mysql: [Warning] Using a password on the command line interface can be insecure.

+---------------------+

| now() |

+---------------------+

| 2020-10-13 16:18:47 |

+---------------------+

到此处MySQL服务启动成功!

总结

到此这篇关于shell脚本一键安装MySQL5.7.29 的文章就介绍到这了,更多相关shell脚本一键安装MySQL内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: shell脚本一键安装MySQL5.7.29的方法

本文地址: http://www.cppcns.com/shujuku/mysql/354325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值