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

吾爱主题 阅读:113 2024-04-01 23:50:26 评论:0

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

脚本内容:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 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<<EOF * 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<<EOF [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
?
1 2 [root@localhost ~] # sh install.mysql.sh mysqlroot [root@localhost ~] # source /etc/profile.d/mysql.sh

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

?
1 2 3 4 5 6 7 [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内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_46468647/article/details/109050312

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容