当前位置:网站首页>在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).
我的解答思路和尝试过的方法
权限设置
我想要达到的结果
边栏推荐
- GO基础知识—数组和切片
- Vscode uses remote SSH connection and the solution of connection failure
- July training (day 09) - two point search
- Nacos做注册中心使用
- Qt | 关于Qt Creator打开项目编译不过的问题
- July training (day 17) - breadth first search
- [cloud native] how can I compete with this database?
- Annotation and reflection
- Esp8266 Arduino programming example PWM
- 给自己写一个年终总结,新年快乐!
猜你喜欢
![[Wuhan University of technology] information sharing for the preliminary and second examinations of postgraduate entrance examination](/img/15/298ea6f7367741e1e085007c498e51.jpg)
[Wuhan University of technology] information sharing for the preliminary and second examinations of postgraduate entrance examination

如何使用TDengine Sink Connector?

35 spark streaming backpressure mechanism, spark data skew solution and kylin's brief introduction

深度剖析分库分表最强辅助Sharding Sphere

拜托!面试请不要再问我 Ribbon 的架构原理

给自己写一个年终总结,新年快乐!

flash闪存使用和STM32CUBEMX安装教程【第三天】

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

NCCL (NVIDIA Collective Communications Library)

好久不送书,浑身不舒服
随机推荐
七月集训(第19天) —— 二叉树
七月集训(第17天) —— 广度优先搜索
七月集训(第13天) —— 双向链表
拜托!面试请不要再问我 Ribbon 的架构原理
GO基础知识—数组和切片
七月集训(第21天) —— 堆(优先队列)
ArcGIS Pro publishing service
2022 software test interview questions 200 big factory interview true questions brushed to get 10K positions
注解与反射
July training (day 06) - sliding window
BGP federal experiment
深入浅出详解Knative云函数框架!
Transpose and inverse of [linear algebra 01] matrix
Google Earth engine app - print the coordinates of points to the console and map, set the style and update it
年底了,我教你怎么拿高绩效!
七月集训(第06天) —— 滑动窗口
flash闪存使用和STM32CUBEMX安装教程【第三天】
July training (day 24) - segment tree
Esp8266 Arduino programming example PWM
XML概述