MySQL下常见的启动失败与备份失败问题的解决教程

启动失败
重启服务器后-->重启应用服务(Confluence)-->报错,数据库连接失败(mysql设置了开机自启动)-->查看mysql数据库状态:

[root@fisheye ~]# ps -ef | grep mysql
root   25555 21974 0 11:28 pts/0  00:00:00 grep mysql

启动mysql服务器

[root@fisheye data]# service mysql start
MySQL server PID file could not be found![失败]
Starting MySQL.............. ERROR! The server quit without updating PID file (/mydata/data/fisheye..pid).[失败]

查看错误日志:

[root@fisheye data]# tail -100 fisheye.err
InnoDB: Last MySQL binlog file position 0 337403929, file name ./mysql-bin.000016
141013 1:13:28 InnoDB: Waiting for the background threads to start
141013 1:13:29 InnoDB: 5.5.33 started; log sequence number 1006647152
17:13:29 UTC - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
di141013 01:13:29 mysqld_safe mysqld from pid file /mydata/data/fisheye.pid ended

未发现明显性错误提示,所以手动创建一个pid文件试试

[root@fisheye data]# touch /mydata/data/fisheye.pi

再进行重启服务:

[root@fisheye data]# service mysql restart
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

突然想到之前看过此类报错的文章,记得有可能是磁盘空间不足导致的mysql无法启动。

[root@fisheye data]# df -h

(文件系统              容量  已用 可用 已用% 挂载点)

/dev/sda1       9.5G 9.5G 0 100% /
/dev/sda4       5.5G 1.3G 4.0G 24% /mnt/backup
/dev/mapper/IhuilianVG-IhuilianLV00
            22G 4.2G  17G 20% /var/www/app
tmpfs         1.3G   0 1.3G  0% /dev/shm

果然如此,下面罗列一些类似问题(无法启动)的解决思路:
1.可能是datadir目录存在的分区满了(df -h )
       解决方法:打开配置文件/etc/my.cnf,在[mysqld]节下重新指定数据目录(datadir),并将原来的数据目录迁移到重新制定的数据目录处
       关于迁移:(1)、cp或者tar的时候一定要把权限给带上,但是为防止意外建议再授权一次;(2)、数据比较大时一定要先压缩再迁移,保证完整性,特别是scp到其他机器时可能会超时所以一定要压缩(tar.gz);(3)、若是移动至另外的服务器一定要保证mysql版本一致。

2.可能是/mydata/data/fisheye.pid文件没有写的权限
      解决方法 :给予权限,执行 “chown -R mysql:mysql /mydata/data/”  然后重新启动mysqld!

3.可能进程里已经存在mysql进程
      解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

4.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
       解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。

5.skip-federated字段问题(报错信息:[ERROR] /mydata/data/mysql/libexec/mysqld: unknown option '--skip-federated')
       解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6.selinux惹的祸,如果是centos系统,默认会开启selinux
       解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

备份失败
说明
执行 mysqldump 时出现找不到某一个 tables 并且中断执行?及锁表后延伸出现的问题记录!
问题及方案如下
Error Meaage: 执行mysqldump 时出现找不到某一个 tables 并且中断执行

[root@test100 data]# mysqldump fx > fx.sql
mysqldump: Got error: 1146: Table 'user_suggest_report' doesn't exist when using LOCK TABLES

考虑加上 --skip-lock-tables或者-R进行锁表试试,也是不行,信息如下

[root@test100 data]#mysqldump --skip-lock-tables fx > fx.sql
Error: Couldn't read status information for table vote_results () mysqldump: Couldn't execute 'show create table `user_suggest_report`': Table 'fx.user_suggest_report' doesn't exist (1146)

登陆服务器查看是否存在此表

 [root@test100 data]#mysql -h127.0.0.1 -D fx
 mysql> show tables;      #查看所有的表 --> 发现是表存在的
+--------------------------------+
| Tables_in_fx          |
+--------------------------------+
| user_suggest_report      |
+--------------------------------+
80 rows in set (0.00 sec)

删除此表

mysql> drop table user_suggest_report;      #既然是存在的,但是系统却认定不存在说明存在问题,索性想删除试试
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'user_suggest_report' at line 1

进入mysql存储目录下将其数据表移动或删除

[root@test100 data]# cat /etc/my.cnf | grep datadir
datadir=/var/lib/mysql
[root@test100 data]# cd /var/lib/mysql/fx/
[root@test100 fx]# mv user_suggest_report.frm /data

重启mysql服务器

[root@test100 fx]# service mysqld restart

重新备份操作

[root@test100 data]# mysqldump fx > fx.150109.sql  #操作成功
(0)

相关推荐

  • 磁盘已满造成的mysql启动失败问题分享

    突然发现mysql死活都启不起来了: 复制代码 代码如下: /etc/init.d/mysql restartStopping MySQL:                                            [FAILED]Timeout error occurred trying to start MySQL Daemon.Starting MySQL:                                            [FAILED] kill了不行,

  • mysql启动提示mysql.host 不存在,启动失败的解决方法

    error 日志当中的记录: [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 从发了帖子,只有人看,没有人回复,看到这种情况只能自己解决问题了,自己动手丰衣足食吗, 嗯... 你还别说,还真让我解决了问题,人啊,都是逼出来的,....没有办法,这个问题对于高手可能是很简单的问题 ,但是对我第一次摸mysql,确实怎么也弄不懂的问题. 好了闲话不多说 说一下我解决

  • MySQL下常见的启动失败与备份失败问题的解决教程

    启动失败 重启服务器后-->重启应用服务(Confluence)-->报错,数据库连接失败(mysql设置了开机自启动)-->查看mysql数据库状态: [root@fisheye ~]# ps -ef | grep mysql root 25555 21974 0 11:28 pts/0 00:00:00 grep mysql 启动mysql服务器 [root@fisheye data]# service mysql start MySQL server PID file could

  • mysql启动失败之mysql服务无法启动(服务没有报告任何错误)的解决方法

    目录 错误提示 尝试以下步骤,最终解决问题: 总结 错误提示 My SQL server8.0 安装后,启动失败,提示信息如下: 尝试以下步骤,最终解决问题: 1 查看host文件(C:\Windows\System32\drivers\etc\hosts),是否修改过本地域名,如果将localhost对应的地址修改过,有可能会导致连接mysql server失败. 解决方法:将localhost映射的地址注释掉 2 如果在mysql的安装路径(C:\Program Files\MySQL\My

  • MySQL 移动数据目录后启动失败问题解决

    目录 背景概述 问题复现 1.关闭数据库 2.查看当前数据目录所在位置 3.通过mv移动整个MySQL数据目录到其他目录 4.修改属主属组 5.修改配置文件中数据目录的地址 6.启动数据库 7.问题解决 8.启动数据库 9.作为从节点 10.问题解决 总结 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 作者: 王权富贵 文章来源:GreatSQL社区投稿 背景概述 由于安装数据库时将MySQL的

  • Mysql DDL常见操作汇总

    库的管理 创建库 create database [if not exists] 库名; 删除库 drop databases [if exists] 库名; 建库通用的写法 drop database if exists 旧库名; create database 新库名; 示例 mysql> show databases like 'javacode2018'; +-------------------------+ | Database (javacode2018) | +---------

  • mysql下centos安装mariadb的方法及遇到的问题

    删除之前安装的mariadb 1.使用rpm -qa | grep mariadb搜索 MariaDB 现有的包: 如果存在,使用rpm -e --nodeps mariadb-*全部删除: [root@localhost ~]# rpm -qa | grep mariadb mariadb-server-5.5.52-1.el7.x86_64 mariadb-libs-5.5.52-1.el7.x86_64 [root@localhost ~]# rpm -e mysql-* 错误:未安装软件

  • MySQL中常见的几种日志汇总

    前言: 在 MySQL 系统中,有着诸多不同类型的日志.各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据.这些不同类型的日志有助于我们更清晰的了解数据库,在日常学习及运维过程中也会和这些日志打交道.本节内容将带你了解 MySQL 数据库中几种常用日志的作用及管理方法. 1.错误日志(errorlog) 错误日志记录着 mysqld 启动和停止,以及服务器在运行过程中发生的错误及警告相关信息.当数据库意外宕机或发生其他错误时,我们应该去排查错误日志. lo

  • MySQL中常见的六个约束类型详解

    目录 前言 1. not null 2. unique 3. default 4. primary key 自增主键auto_increment 5. foreign key 6. check 总结 前言 在向数据表中插入数据时,有的时候对于插入的数据是有特殊要求的,比如学生成绩不能为空,学生学号不能重复等等,这个时候约束就派上用场了. 约束类型是通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.这一章我们主要介绍六个常见的MySQL约束类型. 1. not null 保证指定不能

  • mysql下的max_allowed_packet参数设置详解

    目录 修改方法 1.修改配置文件 2.在mysql命令行中修改 MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败.(比方说导入数据库,数据表) 查看目前配置: 代码如下: mysql> show VARIABLES like '%max_allowed_packet%'; +--------------------------+------------+ | Variable_name    

  • mysql下mysqladmin日常管理命令总结(必看篇)

    mysqladmin 工具的使用格式: mysqladmin [option] command [command option] command ...... 参数选项: -c number 自动运行次数统计,必须和 -i 一起使用 -i number 间隔多长时间重复执行 0)每个两秒查看一次服务器的状态,总共重复5次. [root@test-huanqiu ~]# mysqladmin -uroot -p -i 2 -c 5 status 1)查看服务器的状况:status [root@te

  • Tomcat启动成功访问主页失败的原因解决方案

    Tomcat启动成功访问主页失败的原因解决方案 如果在 网上搜一圈"tomcat启动成功,当输入http://localhost:8080报404错误".有说查看日志定位问题的,有说检查端口有没有冲突,建议去server.xml修改端口的:有建议在cmd命令中输入netstat -ano查看tomcat端口是否已经被使用的:也有说环境变量配置有问题的. 这些可能都是对的,但还有一种情况容易被忽视:tomcat,webapps目录下没有ROOT文件夹! 有经验的人看到这个可能会淡淡的一笑

随机推荐