草庐IT

MySQL报错:The server quit without updating PID file 我的解决思路和方法

cowboy-杰洛 2023-04-10 原文

今天在学习mysql 二进制日志的时候需要在编辑my.cnf的文件,产生的一系列报错,个人的排错思路和方法,仅供参考。

重启damon、重启mysql 发现报错

Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid).

发现注释这三行配置之后发现可以正常启动,那么问题就出现在这三行代码上

log-bin = mysql-bin  
#binlog_expire_logs_seconds = 600
#max_binlog_size = 200M

 查询日志发现报错:You have enabled the binary log, but you haven't provided the mandatory server-id. Please refer to the proper server start-up parameters documentation#您已经启用了二进制日志,但是没有提供必需的服务器id。请参考适当的服务器启动参数文档

 经过百度发现:MySQL 5.7.3以后版本必须配置server-id,否则无法启用MySQL二进制日志
 尝试启动 在my.cnf中添加 server-id = 1   唯一的服务辨识号,数值位于 1 到 2^32-1之间。此值在master和slave上都需要设置。
如果 “master-host” 没有被设置,则默认为1, 但是如果忽略此选项,MySQL不会作为master生效

添加参数,并尝试启动。 

发现又报错:Can't connect to local MySQL server through socket '/tmp/mysql.sock'

mysql的连接方式有两种:一种是TCP/IP、一种是socket连接

mysql.sock的作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。 
连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。
如果套接字文件被删除了,本地客户就不能连接。/tmp 文件夹属于临时文件,随时可能被删除。
每次mysql 启动的时候,都会生成一个mysql.sock 的文件,

socket = /var/lib/mysql/mysql.sock   建议将sock文件移动至下var/lib/mysql/  

尝试重新启动 发现还是报错 Starting MySQL. ERROR! The server quit without updating PID file

排错:

 1. 检查目录权限    

 2. selinux是否关闭  

 3. 检查my.cnf参数 port,datadir,basedir,socket 是否配置正常

排错发现是我配置sock目录时候,并没有给予权限

chown -R mysql:mysql /var/lib/mysql/   #设置权限,并查看
ls -alh | grep mysql
drwxr-xr-x.  2 mysql   mysql      6 Sep 14 16:19 mysql

再次尝试启动mysql 发现还是报错:Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid).

1. tail -f /usr/local/mysql/data/mysql.err  /查询MySQL自带的日志文件mysql.err

 #发现没有关键错误信息

 2. tail /var/log/messages  #记录了绝大多数的系统日志 

 2022-09-15T06:32:03.776090Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2022-09-15T06:32:03.776188Z 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.7.33-log) starting as process 57901 ...
2022-09-15T06:32:03.780168Z 0 [Note] InnoDB: PUNCH HOLE support available
2022-09-15T06:32:03.780229Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2022-09-15T06:32:03.780253Z 0 [Note] InnoDB: Uses event mutexes
2022-09-15T06:32:03.780278Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2022-09-15T06:32:03.780411Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2022-09-15T06:32:03.780419Z 0 [Note] InnoDB: Using Linux native AIO
2022-09-15T06:32:03.780605Z 0 [Note] InnoDB: Number of pools: 1
2022-09-15T06:32:03.780695Z 0 [Note] InnoDB: Using CPU crc32 instructions
2022-09-15T06:32:03.781783Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2022-09-15T06:32:03.787253Z 0 [Note] InnoDB: Completed initialization of buffer pool
2022-09-15T06:32:03.789167Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2022-09-15T06:32:03.800452Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2022-09-15T06:32:03.805695Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2022-09-15T06:32:03.805865Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2022-09-15T06:32:03.819123Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2022-09-15T06:32:03.820045Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2022-09-15T06:32:03.820088Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2022-09-15T06:32:03.821153Z 0 [Note] InnoDB: Waiting for purge to start
2022-09-15T06:32:03.872143Z 0 [Note] InnoDB: 5.7.33 started; log sequence number 2980979
2022-09-15T06:32:03.872679Z 0 [Note] InnoDB: Loading buffer pool(s) from /usr/local/mysql/data/ib_buffer_pool
2022-09-15T06:32:03.872896Z 0 [Note] Plugin 'FEDERATED' is disabled.
2022-09-15T06:32:03.873741Z 0 [Note] InnoDB: Buffer pool(s) load completed at 220915 14:32:03
2022-09-15T06:32:03.875555Z 0 [ERROR] unknown variable 'binlog_expire_logs_seconds=600'
2022-09-15T06:32:03.875596Z 0 [ERROR] Aborting

2022-09-15T06:32:03.875610Z 0 [Note] Binlog end
2022-09-15T06:32:03.875666Z 0 [Note] Shutting down plugin 'ngram'
2022-09-15T06:32:03.875678Z 0 [Note] Shutting down plugin 'partition'
2022-09-15T06:32:03.875681Z 0 [Note] Shutting down plugin 'BLACKHOLE'
2022-09-15T06:32:03.875684Z 0 [Note] Shutting down plugin 'ARCHIVE'
2022-09-15T06:32:03.875687Z 0 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
2022-09-15T06:32:03.875727Z 0 [Note] Shutting down plugin 'MRG_MYISAM'
2022-09-15T06:32:03.875730Z 0 [Note] Shutting down plugin 'MyISAM'
2022-09-15T06:32:03.875738Z 0 [Note] Shutting down plugin 'INNODB_SYS_VIRTUAL'
2022-09-15T06:32:03.875741Z 0 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'
2022-09-15T06:32:03.875742Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'
2022-09-15T06:32:03.875744Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'
2022-09-15T06:32:03.875745Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
2022-09-15T06:32:03.875746Z 0 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
2022-09-15T06:32:03.875748Z 0 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
2022-09-15T06:32:03.875749Z 0 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
2022-09-15T06:32:03.875751Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'
2022-09-15T06:32:03.875752Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLES'
2022-09-15T06:32:03.875754Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'
2022-09-15T06:32:03.875755Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'
2022-09-15T06:32:03.875757Z 0 [Note] Shutting down plugin 'INNODB_FT_CONFIG'
2022-09-15T06:32:03.875758Z 0 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'
2022-09-15T06:32:03.875760Z 0 [Note] Shutting down plugin 'INNODB_FT_DELETED'
2022-09-15T06:32:03.875761Z 0 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD'
2022-09-15T06:32:03.875763Z 0 [Note] Shutting down plugin 'INNODB_METRICS'
2022-09-15T06:32:03.875764Z 0 [Note] Shutting down plugin 'INNODB_TEMP_TABLE_INFO'
2022-09-15T06:32:03.875766Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'
2022-09-15T06:32:03.875767Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'
2022-09-15T06:32:03.875769Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
2022-09-15T06:32:03.875770Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESET'
2022-09-15T06:32:03.875772Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
2022-09-15T06:32:03.875773Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
2022-09-15T06:32:03.875775Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM'
2022-09-15T06:32:03.875777Z 0 [Note] Shutting down plugin 'INNODB_CMP_RESET'
2022-09-15T06:32:03.875778Z 0 [Note] Shutting down plugin 'INNODB_CMP'
2022-09-15T06:32:03.875780Z 0 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
2022-09-15T06:32:03.875781Z 0 [Note] Shutting down plugin 'INNODB_LOCKS'
2022-09-15T06:32:03.875782Z 0 [Note] Shutting down plugin 'INNODB_TRX'
2022-09-15T06:32:03.875784Z 0 [Note] Shutting down plugin 'InnoDB'
2022-09-15T06:32:03.875854Z 0 [Note] InnoDB: FTS optimize thread exiting.
2022-09-15T06:32:03.876196Z 0 [Note] InnoDB: Starting shutdown...
2022-09-15T06:32:03.976840Z 0 [Note] InnoDB: Dumping buffer pool(s) to /usr/local/mysql/data/ib_buffer_pool
2022-09-15T06:32:03.977146Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 220915 14:32:03
2022-09-15T06:32:05.488923Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2980998
2022-09-15T06:32:05.490187Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2022-09-15T06:32:05.490231Z 0 [Note] Shutting down plugin 'MEMORY'
2022-09-15T06:32:05.490243Z 0 [Note] Shutting down plugin 'CSV'
2022-09-15T06:32:05.490246Z 0 [Note] Shutting down plugin 'sha256_password'
2022-09-15T06:32:05.490248Z 0 [Note] Shutting down plugin 'mysql_native_password'
2022-09-15T06:32:05.490337Z 0 [Note] Shutting down plugin 'binlog'
2022-09-15T06:32:05.490478Z 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

 发现关键字 unknown variable 未知的变量  binlog_expire_logs_seconds

 我照着视频里面的单词一个个敲,不是我敲错。尝试寻找度娘

在mysql 8.0版本中新增了binlog_expire_logs_seconds,该参数表示binlog的失效日期单位秒。
8.0之前的版本,binlog的失效日志用expire_logs_days来配置,单位是天。

参考链接:mysql 8 新特性之binlog_expire_logs_seconds - 墨天轮​​​​​​

因为我是学习了8.0和5.7版本的Mysql都有在学习,win端使用的是8.0 linux安装的是5.7

所以是我mysql版本的问题导致。更改参数 

[mysqld]
user = mysql
port = 3306
basedir = /usr/local/mysql  
# 创建目录
datadir = /usr/local/mysql/data   
# 数据库目录
pid-file = /usr/local/mysql/data/mysqld.pid 
# mysql进程
log-error = /usr/local/mysql/data/mysql.err   
# 错误日志
socket = /var/lib/mysql/mysql.sock
# 可以socket文件方式登录mysql
log-bin = /usr/local/mysql/data/bin-log/mysql-bin.log
server-id = 1
#binlog_expire_logs_seconds = 600
max_binlog_size = 200M
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links = 0
#禁止符号链接以防各种安全风险
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

# [mysqld_safe]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
explicit_defaults_for_timestamp=true

再再再再次尝试启动MySQL 

[root@master lib]# ps -aux | grep mysql
root      53523  0.0  0.0 108096   620 pts/1    S+   14:00   0:00 tail -f /usr/local/mysql/data/mysql.err
root      54867  0.0  0.0  11820  1612 pts/0    S    14:05   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysqld.pid
mysql     55106  1.1  2.2 1145048 176116 pts/0  Sl   14:05   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/mysql.err --pid-file=/usr/local/mysql/data/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306
root      55162  0.0  0.0 112816   976 pts/0    S+   14:05   0:00 grep --color=auto mysql
[root@master lib]# netstat -anptu | grep :3306
tcp6       0      0 :::3306                 :::*                    LISTEN      55106/mysqld   

尝试登录MySQL 发现又报错:错误2002 (HY000):无法通过套接字'/tmp/ MySQL连接到本地MySQL服务器

[root@master lib]# mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock #设置软连接

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| atguigudb          |
| #mysql50#bin-log   |
| mysql              |
| performance_schema |
| sys                |
| test               |
| test_u             |
+--------------------+
8 rows in set (0.00 sec)

 登录成功!!! 继续继续MySQL!!!冲

有关MySQL报错:The server quit without updating PID file 我的解决思路和方法的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError) - 2

    我正在尝试设置一个puppet节点,但ruby​​gems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由ruby​​gems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby

  5. Ruby 方法() 方法 - 2

    我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby​​-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco

  6. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  7. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  8. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

  9. ruby - 多个属性的 update_column 方法 - 2

    我有一个具有一些属性的模型:attr1、attr2和attr3。我需要在不执行回调和验证的情况下更新此属性。我找到了update_column方法,但我想同时更新三个属性。我需要这样的东西:update_columns({attr1:val1,attr2:val2,attr3:val3})代替update_column(attr1,val1)update_column(attr2,val2)update_column(attr3,val3) 最佳答案 您可以使用update_columns(attr1:val1,attr2:val2

  10. ruby - 检查方法参数的类型 - 2

    我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)

随机推荐