当前位置:网站首页>在Centos 7安装Mysql 5.7.27后无法启动?(语言-bash)
在Centos 7安装Mysql 5.7.27后无法启动?(语言-bash)
2022-07-27 09:36:00 【CSDN问答】
问题遇到的现象和发生背景
使用@高&玉 脚本在Centos 7安装Mysql 5.7.27后无法启动
问题相关代码,请勿粘贴截图
#!/bin/bashset -eMYSQL_PASSWD="Yinhai"MYSQL_DATADIR=/data/mysql/dataMYSQL_PORT='3306'TOTAL_MEM=`free -g | grep Mem | awk '{print $2}'`TOTAL_MEM_PERCENT_70=`echo "($TOTAL_MEM*0.7)/1"`INNODB_BUFFER_POOL_SIZE=`echo $TOTAL_MEM_PERCENT_70"G"`#操作系统参数调整system_parameter_update() {echo "操作系统参数调整"#磁盘调度for disk_name in `ls /sys/block/`do echo noop > /sys/block/$disk_name/queue/schedulerdone#大页echo never >> /sys/kernel/mm/transparent_hugepage/enabledecho never >> /sys/kernel/mm/transparent_hugepage/defrag#资源池限制cat >> /etc/security/limits.conf <<EOF* soft nproc 655350* hard nproc 655350* soft nofile 655350* hard nofile 655350EOFecho "fs.file-max=655350" >> /etc/sysctl.conf#SWAPecho "vm.swappiness=0" >> /etc/sysctl.conf #dirty pageecho "5" > /proc/sys/vm/dirty_background_ratioecho "10" > /proc/sys/vm/dirty_ratio}#下载安装包wget_mysql_binary() {echo "下载MySQL安装包"if read -t 60 -p "Do you download the MySQL installation package(y/n)?" WGET_VALUEthen if [ "$WGET_VALUE" = "y" ] then wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.33-el7-x86_64.tar.gz fielse WGET_VALUE = "n"fi}#删除mariadb包drop_mariadb() {echo "=========================================删除mariadb==================================="mariadb_num=`rpm -qa | grep mariadb | wc -l`if [ $mariadb_num -ne 0 ]then rpm -qa | grep mariadb | xargs rpm -e --nodepsfi}#安装依赖包yum_install_depend() {echo "安装依赖包"yum install libaio -y}#创建mysql用户user_add() {echo "创建mysql用户"useradd mysql >>/dev/nullif read -t 60 -p "(Please input the mysql password(default:$MYSQL_PASSWD):" SYS_MYSQL_PASSWORDthen if [ "$SYS_MYSQL_PASSWORD" = "" ]; then SYS_MYSQL_PASSWORD="$MYSQL_PASSWD" fielse SYS_MYSQL_PASSWORD="$MYSQL_PASSWD"fiecho "$SYS_MYSQL_PASSWORD" | passwd mysql --stdinecho "export PATH=\$PATH:/usr/local/mysql/bin" >>/home/mysql/.bashrcecho "export PATH=\$PATH:/usr/local/mysql/bin" >>/root/.bashrc}#配置MySQL目录install_mysql_path() {echo "MySQL DATADIR目录"echo -e "Please input the DATADIR of MySQL:"read -t 60 -p "(Default DATADIR:$MYSQL_DATADIR):" DATADIRif [ "$DATADIR" = "" ]; then DATADIR=$MYSQL_DATADIRfimkdir -p $DATADIRchown -R mysql:mysql $DATADIR/chmod -R 750 $DATADIRif [ $? -eq 0 ]then echo "Mkdir path Successfully."else echo "Mkdir path Failed!!!"fi}#生成MySQL参数文件conf_parameter_file_1() {echo "编辑my.cnf配置文件"if [ -f /etc/mysql/my.cnf ]then mv /etc/mysql/my.cnf /etc/mysql/my.cnf_$(date +%Y-%m-%d-%H:%M) fiif [ -f /etc/my.cnf ]then mv /etc/my.cnf /etc/my.cnf_$(date +%Y-%m-%d-%H:%M) fiSERVER_ID=$(date +%s)mkdir -p /etc/mysql/cat >> /etc/mysql/my.cnf <<EOF[client]user = root#password = $PASSWD[mysqld]bind_address = 0.0.0.0port = $MYSQL_PORTbasedir = /usr/local/mysqldatadir = $DATADIRsocket = /tmp/mysql.socklower-case-table-names = 1[mysql]prompt=(\[email protected]\h) [\d]>\_no-auto-rehashEOFchown -R mysql:mysql /etc/mysql}#初始化MySQLinitdb_mysql() {echo "初始化MySQL"if [ -d /usr/local/mysql ]then mv /usr/local/mysql /usr/local/mysql_$(date +%Y-%m-%d-%H-%M)fitar -zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mv /usr/local/mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local/mysqlchown -R mysql:mysql /usr/local/mysql/#初始化MySQLsu - mysql -c "mysqld --initialize-insecure --user=mysql"if [ $? -eq 0 ]then echo "MySQL initialize Successfully."else echo "MySQL initialize Failed!!!"fimkdir -p $DATADIR/logs/{log-bin,log-group,log-relay}chown -R mysql:mysql $DATADIR/chmod -R 750 $DATADIR}#生成MySQL参数文件conf_parameter_file_2() {echo "编辑my.cnf配置文件"if [ -f /etc/mysql/my.cnf ]then mv /etc/mysql/my.cnf /etc/mysql/my.cnf_$(date +%Y-%m-%d-%H:%M) fiif [ -f /etc/my.cnf ]then mv /etc/my.cnf /etc/my.cnf_$(date +%Y-%m-%d-%H:%M) fiSERVER_ID=$(date +%s)mkdir -p /etc/mysql/cat >> /etc/mysql/my.cnf <<EOF[client]user = root#password[mysqld]bind_address = 0.0.0.0port = $MYSQL_PORTbasedir = /usr/local/mysqldatadir = $DATADIRsocket = $DATADIR/mysql.sock#字符character_set_server = utf8mb4lower-case-table-names = 1#密码策略#plugin-load-add = validate_password.sodefault_authentication_plugin=mysql_native_password#日志设置sync_binlog = 1log-bin = $DATADIR/logs/log-bin/mysql-binbinlog_format = rowbinlog_row_image = fulllog_bin_trust_function_creators = 1expire_logs_days = 30#general_log = ongeneral_log_file = $DATADIR/logs/general.log log_error = $DATADIR/logs/error.logslow_query_log = onslow_query_log_file = $DATADIR/logs/slow.loglong_query_time = 2#min_examined_row_limit = 100#log_queries_not_using_indexes = on#log_throttle_queries_not_using_indexes = 4log_slow_admin_statements = onlog_output = filelog_slow_slave_statements = onrelay-log = $DATADIR/logs/log-relay/relay_logrelay_log_info_file = $DATADIR/logs/log-relay/relay-log.info#连接max-connections = 1000back_log = 300max_allowed_packet = 64Minteractive_timeout = 28800wait_timeout = 28800#缓存sort_buffer_size = 32Mtmp_table_size = 32Mjoin_buffer_size = 32Mread_buffer_size = 32Mread_rnd_buffer_size = 32Mkey_buffer_size = 64Mmyisam_sort_buffer_size = 64Mmax_heap_table_size = 16Mopen_files_limit = 65535thread_cache_size = 512table_open_cache = 16384table_definition_cache = 16384table_open_cache_instances = 8#InnoDBdefault-storage-engine = INNODBinnodb_buffer_pool_size = $INNODB_BUFFER_POOL_SIZEinnodb_adaptive_flushing = ONinnodb_adaptive_flushing_lwm = 15innodb_flushing_avg_loops = 30innodb_adaptive_hash_index = ONinnodb_data_home_dir = $DATADIRinnodb_file_per_table = ONinnodb_log_group_home_dir = $DATADIR/logs/log-group/innodb_log_files_in_group = 3innodb_log_buffer_size = 32Minnodb_flush_log_at_trx_commit = 1innodb_flush_log_at_timeout = 1innodb_lock_wait_timeout = 30innodb_buffer_pool_instances = 8innodb_change_buffering = allinnodb_change_buffer_max_size = 10innodb_autoextend_increment = 64innodb_thread_concurrency = 32innodb_spin_wait_delay = 6innodb_sync_spin_loops = 30innodb_open_files = 65535innodb_old_blocks_time = 30innodb_online_alter_log_max_size = 512Minnodb_write_io_threads = 8innodb_read_io_threads = 8innodb_flush_neighbors = 0innodb_io_capacity = 3000innodb_io_capacity_max = 16000innodb_lru_scan_depth = 1024innodb_purge_threads = 4innodb_purge_batch_size = 400innodb_buffer_pool_filename = ib_buffer_poolinnodb_buffer_pool_load_abort = OFFinnodb_buffer_pool_dump_now = OFFinnodb_buffer_pool_load_now = OFFinnodb_max_dirty_pages_pct = 75innodb_max_dirty_pages_pct_lwm = 0#索引列长度innodb_default_row_format = dynamicinnodb_file_format = Barracudainnodb_large_prefix = ON#Replicationserver_id = $SERVER_ID#report_host = 10.46.203.123 #本地IPgtid_mode = onenforce_gtid_consistency = onloose-plugin_load_add = 'semisync_master.so'loose-plugin_load_add = 'semisync_slave.so'loose-rpl_semi_sync_master_enabled #安装插件后启用loose-rpl_semi_sync_slave_enabled #安装插件后启用loose-rpl_semi_sync_master_wait_point #安装插件后启用loose-rpl_semi_sync_master_timeout #安装插件后启用skip_slave_start = off #启动MySQL是否跳过启动slave进程slave_parallel_type = LOGICAL_CLOCKslave_parallel_workers = 16slave_preserve_commit_order = onlog_slave_updates = on[mysql]prompt=(\[email protected]\h) [\d]>\_no-auto-rehashEOFchown -R mysql:mysql /etc/mysqlif [ $? -eq 0 ]then echo "Configure my.cnf Successfully."else echo "Configure my.cnf Failed!!!"fi}#安装MySQL SSLinstall_ssl() {echo "安装MySQL SSL"su - mysql -c "mysql_ssl_rsa_setup"chown mysql:mysql $DATADIR/*.pemif [ $? -eq 0 ]then echo "Install MySQL SSL Successfully."else echo "Install MySQL SSL Failed!!!"fi}#配置MySQL启动文件conf_mysqld_file() {echo "配置/etc/init.d/mysqld"if [ -f /etc/init.d/mysqld ]then mv /etc/init.d/mysqld /etc/init.d/mysqld_$(date +%Y-%m-%d-%H:%M)ficp -f /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqldif [ $? -eq 0 ]then echo "Configure /etc/init.d/mysqld Successfully."else echo "Configure /etc/init.d/mysqld Failed!!!"fichown mysql:mysql /etc/rc.d/init.d/mysqld}#启动MySQLstart_mysql() {echo "启动MySQl"su - mysql -c "/usr/local/mysql/support-files/mysql.server start"}#配置增强复制config_rpl_semi() {echo "配置MySQL增强复制"su - mysql -c mysql <<EOFinstall plugin rpl_semi_sync_master soname 'semisync_master.so';install plugin rpl_semi_sync_slave soname 'semisync_slave.so';EOFsed -i "s/#rpl_semi_sync_master_enabled/rpl_semi_sync_master_enabled = on/g" /etc/mysql/my.cnfsed -i "s/#rpl_semi_sync_slave_enabled/rpl_semi_sync_slave_enabled = on/g" /etc/mysql/my.cnfsed -i "s/#rpl_semi_sync_master_wait_point/rpl_semi_sync_master_wait_point = AFTER_SYNC/g" /etc/mysql/my.cnfsed -i "s/#rpl_semi_sync_master_timeout/rpl_semi_sync_master_timeout = 5000/g" /etc/mysql/my.cnfsu - mysql -c "/etc/init.d/mysqld restart"}#修改数据库root用户的密码change_mysql_root_password() {echo "修改MySQL用户密码"echo -e "Please set the MySQL root password:"read -t 60 -p "(The default MySQL root password is '$MYSQL_PASSWD'):" MYSQL_ROOT_PASSWORDif [ "$MYSQL_ROOT_PASSWORD" = "" ]; then MYSQL_ROOT_PASSWORD="$MYSQL_PASSWD"fisu - mysql -c mysql <<EOFset sql_log_bin = off;alter user 'root'@'localhost' identified by "$MYSQL_ROOT_PASSWORD";create user 'root'@'%' identified by "$MYSQL_ROOT_PASSWORD";grant all privileges on *.* to 'root'@'%';flush privileges;set sql_log_bin = on;EOFif [ $? -eq 0 ]then echo "Change mysql password Successfully."else echo "Change mysql password Failed!!!"fi}#修改my.cnf文件change_parater_passwd() {echo "修改my.cnf文件"sed -i "s/#password/password = '$MYSQL_ROOT_PASSWORD'/g" /etc/mysql/my.cnf}#操作系统参数调整system_parameter_update#下载安装包#wget_mysql_binary#删除mariadb包drop_mariadb#安装依赖包#yum_install_depend#创建用户和组user_add#配置MySQL目录install_mysql_path#生成MySQL参数文件conf_parameter_file_1#初始化MySQLinitdb_mysql#生成MySQL参数文件conf_parameter_file_2#安装MySQL SSLinstall_ssl#配置MySQL启动文件conf_mysqld_file#启动MySQLstart_mysql#配置增强复制#config_rpl_semi#修改数据库root用户的密码change_mysql_root_password#修改my.cnf文件change_parater_passwdecho -e "操作系统用户mysql的密码是:$SYS_MYSQL_PASSWORD"echo -e "MySQL数据库用户mysql的密码是:$MYSQL_ROOT_PASSWORD"运行结果及报错内容
启动MySQl
Starting MySQL.. ERROR! The server quit without updating PID file (/data/mysql/data/drgs.pid).
我的解答思路和尝试过的方法
权限设置
我想要达到的结果
边栏推荐
猜你喜欢

S交换机堆叠方案配置指南

Lua函数嵌套调用

聊聊索引失效的10种场景,太坑了

吃透Chisel语言.23.Chisel时序电路(三)——Chisel移位寄存器(Shift Register)详解

Interviewer: what is scaffolding? Why do you need scaffolding? What are the commonly used scaffolds?

NCCL 集合通信--Collective Operations

ESP8266-Arduino编程实例-中断

BGP federal experiment

Eureka delayed registration of a pit

拟搬迁!211中国石油大学(华东)新校区,正式启用!
随机推荐
Run uni app project in hbuilder wechat applet
内存墙简介
BGP联邦实验
Fundamentals of Materials Engineering - key points
Interviewer: what is scaffolding? Why do you need scaffolding? What are the commonly used scaffolds?
c'mon! Please don't ask me about ribbon's architecture principle during the interview
七月集训(第06天) —— 滑动窗口
七月集训(第21天) —— 堆(优先队列)
【CTF】ciscn_ 2019_ es_ two
七月集训(第18天) —— 树
Read the paper learning to measure changes: full revolutionary Siamese metric networks for scene change detect
七月集训(第17天) —— 广度优先搜索
面试官:什么是脚手架?为什么需要脚手架?常用的脚手架有哪些?
Vscode uses remote SSH connection and the solution of connection failure
July training (day 13) - two way linked list
七月集训(第20天) —— 二叉搜索树
会议OA项目之会议排座功能&&会议送审的实现
Lua函数嵌套调用
swagger-editor
Meeting seating function of conference OA project & Implementation of meeting submission for approval