Starting MySQL...The server quit without updating PID file [失败]lib/mysql/localhost.localdomain.pid).

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 重启了一下服务器,启动后就报以下错误了:Starting MySQL...The server quit without updating PID file [失败]lib/mysql/localhost.localdomain.pid).纠结了很久没找到解决办法,后来突然想到修改了mysql的配置文件“/usr/my.cnf”之前配置默认编码,在配置文件中添加了“default-character-set=utf8”把这一句删除了,再启动mysql就好了。

重启了一下服务器,启动后就报以下错误了:

Starting MySQL...The server quit without updating PID file [失败]lib/mysql/localhost.localdomain.pid).

纠结了很久没找到解决办法,后来突然想到修改了mysql的配置文件“/usr/my.cnf”

之前配置默认编码,在配置文件中添加了“default-character-set=utf8


把这一句删除了,再启动mysql就好了。


在解决这个问题过程中找到的比较好的资料,这里收藏一下:

问题起因:
今天做了一件事情:我在VM 上将一数据库的数据文件(/var/lib/mysql整个文件夹)拷贝到另外一台VM上,然后新的VM 上启动MYSQL,结果报如下异常:
[root@localhost mysql]# service mysql start
Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).

于是Google之,大部分的答案都是:
1. 注释/etc/my.cnf里的skip-federated注释掉即#skip-federated;
2. my.cnf文件配置过高,重新定义其中的参数(根据服务器情况定义);
3. 杀掉mysql_safe和mysqld进程,然后再重启;
4. 当前日志文件过大,超出了my.cnf中定义的大小(默认为64M),删除日志文件再重启;

5. 其他情况,查看日志文件(我的是localhost.localdomain.err,具体因人而异),然后具体分析;


问题解决:

其中,我查看了日志内容,如下:

[root@localhost mysql]# less localhost.localdomain.err 
111203 22:09:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
^G/usr/sbin/mysqld: File './mysql-bin.index' not found (Errcode: 13)
111203 22:09:03 [ERROR] Aborting

111203 22:09:03 [Note] /usr/sbin/mysqld: Shutdown complete

111203 22:09:03 mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid ended


但是我查看了我的目录文件,mysql-bin.index文件是存在的呀,奇怪:

[root@localhost mysql]# ll
total 49828
-rw-rw----. 1 mysql mysql 35651584 Dec  3 17:55 ibdata1
-rw-rw----. 1 mysql mysql  5242880 Dec  3 17:55 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 Dec  3 15:45 ib_logfile1
-rw-rw----. 1 mysql root      1376 Dec  3 22:02 localhost.localdomain.err
drwx--x--x. 2 mysql mysql     4096 Dec  3 17:55 mysql
-rw-rw----. 1 mysql mysql  4847020 Dec  3 17:55 mysql-bin.000001
-rw-rw----. 1 mysql mysql     1373 Dec  3 17:56 mysql-bin.000002
-rw-r--r--. 1 root  root        19 Dec  3 15:38 mysql-bin.index
drwx------. 2 mysql mysql     4096 Dec  3 17:55 performance_schema
-rw-r--r--. 1 root  root       116 Nov 25 21:03 RPM_UPGRADE_HISTORY
-rw-r--r--. 1 mysql mysql      116 Nov 25 21:03 RPM_UPGRADE_MARKER-LAST
drwxr-xr-x. 2 mysql mysql     4096 Dec  3 17:55 test

仔细看了下,咦?-rw-r--r--. 1 root  root        19 Dec  3 15:38 mysql-bin.index----难道是权限不够?于是将该文件加了写权限,重启,涛声依旧!!!噢噢!


难道是编码问题?难道是....继续猜测。。。问题还是没解决,后来我做了一件事情,将mysql-bin.index文件删除掉!重启!!OH!No!!

[root@localhost mysql]# rm -rf mysql-bin.index 
[root@localhost mysql]#  
[root@localhost mysql]# service mysql start
Starting MySQL... SUCCESS! 


就这样??为什么呢?至今这个仍然是未解之谜(对我来说),如有知情者请告知:)


补充:

很多时候,我们在做主从同步的时候,将数据库目录整体打包拷贝到从机上的时候,重启也往往会出现类似的问题,解决方法仍然是:

1)给MYSQL数据库数据目录权限:chown -R mysql:mysql 目录名称

2)务必保证MYSQL的进程是已经关闭了的;


另外要注意的地方就是:ib_*, mysql-bin-*, *.err(log文件)以及master-info和relay-info文件都是可以删除的,相当于重新初始化数据库的数据,但是前提是:

1)操作前要先关掉MYSQL的进程;

2)删掉文件后要重新启动MYSQL,如果有异常,请自行查看日志找问题,一般都比较好定位和解决。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
1393
分享
相关文章
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
406 9
解决MySQL删除/var/lib/mysql下的所有文件后无法启动的问题
删除 `/var/lib/mysql` 下的所有文件后,需要重新初始化数据目录,确保正确的权限设置,并重新启动 MySQL 服务。通过按照上述步骤操作,可以解决 MySQL 无法启动的问题,并恢复数据库的正常运行。初始化数据目录后,别忘了配置安全设置,并根据需要恢复备份数据。这些步骤不仅能够恢复 MySQL 的正常运行,还能确保数据库的安全性和完整性。
259 2
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
95 82
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
186 42
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
146 25
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等