时间:2020-10-15来源:www.pcxitongcheng.com作者:电脑系统城
脚本内容:
?| 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 rootif [ $UID -ne 0 ]; then echo "Error: You must be root to run this script, please use root to install" exit 1fi clearecho "========================================================================="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 65535EOF echo "fs.file-max=65535" >> /etc/sysctl.conf echo "============================Install MySQL 5.7.29==================================" #Backup old my.cnf#rm -f /etc/my.cnfif [ -s /etc/my.cnf ]; then mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bakfiecho "============================MySQL 5.7.29 installing…………=========================" ##define mysql directory configuration variableDatadir=/data/mysql/dataBinlogdir=/data/mysql/binlogLogdir=/data/mysql/logs ##yum install devel and wget mysqlyum 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.gzsleep 2tar 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/mysqlgrep mysql /etc/passwdRETVAL=$?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/falsefi if [ ! -d "$Datadir" ]then mkdir -p /data/mysql/datafi if [ ! -d "$Binlogdir" ]then mkdir -p /data/mysql/binlogfi if [ ! -d "$Logdir" ]then mkdir -p /data/mysql/logsfi chown -R mysql:mysql /data/mysqlchown -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-rehashprompt="\\u@\\h [\\d]>"#pager="less -i -n -S"#tee=/opt/mysql/query.log [mysqld]####: for globaluser =mysql basedir =/usr/local/mysql/ datadir =/data/mysql/dataserver_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 binlogbinlog_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-loglog_error =/data/mysql/logs/error.log general_log =off general_log_file =/data/mysql/logs/general.log ####: for slow query logslow_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 replicationskip_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 innodbdefault_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 Statisticsinnodb_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 =4autocommit =1 #--------innodb scan resistantinnodb_old_blocks_pct =37 innodb_old_blocks_time =1000 #--------innodb read aheadinnodb_read_ahead_threshold =56 innodb_random_read_ahead =OFF #--------innodb buffer pool stateinnodb_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/dataPass=$(grep 'A temporary password' /data/mysql/logs/error.log |awk '{print $NF}')cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqldchkconfig mysqld on/etc/init.d/mysqld startecho "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.shsource /etc/profile.d/mysql.shecho "============================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 的文章就介绍到这了
2023-10-30
windows上的mysql服务突然消失提示10061 Unkonwn error问题及解决方案2023-10-30
MySQL非常重要的日志bin log详解2023-10-30
详解MySQL事务日志redo log一、单表查询 1、排序 2、聚合函数 3、分组 4、limit 二、SQL约束 1、主键约束 2、非空约束 3、唯一约束 4、外键约束 5、默认值 三、多表查询 1、内连接 1)隐式内连接: 2)显式内连接: 2、外连接 1)左外连接 2)右外连接 四...
2023-10-30
Mysql删除表重复数据 表里存在唯一主键 没有主键时删除重复数据 Mysql删除表中重复数据并保留一条 准备一张表 用的是mysql8 大家自行更改 创建表并添加四条相同的数据...
2023-10-30