mysql启动报错

mysql启动报错的原因常见的有一下几种:

1、数据所在分区满了

2、pid所在目录mysql用户没有写权限

3、存储引擎为innodb引擎,这个时候启动的时候需要恢复所有的操作(select,create,drop,insert。update,delete),当不能有效的执行恢复操作的时候,mysql启动报错

早上来上班的时候,被通知整栋大楼要停电,想了一下,公司机房还放了几台测试机,如果突然断电的话,会导致测试机中的虚拟机不可用,赶紧一台一台关机吧,其中有一台虚拟机上装着mysql,先进去把mysql关掉吧,避免等下开机启动mysql报错,然后依次关掉所有的虚拟机,最后宿主机

最终断电了,来电之后,赶紧起机器 ,一切顺利,但是到mysql的时候

# service mysql start
Starting MySQL.............. ERROR! The server quit without updating PID file (/mydata/data/mysql..pid).[失败]

我了个去,最不愿意看到的事还是发生了,一步一步检测吧

1、检查磁盘情况

# df -h
文件系统             容量  已用  可用已用%% 挂载点
/dev/mapper/VolGroup-lv_root     50G   11G   36G  24% /
tmpfs                                               7.8G     0 7.8G   0% /dev/shm
/dev/xvda1                                      485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home   428G   84G  323G  21% /home

磁盘空间还有很多,排除

2、检查pid文件是否存在,并查看其所在目录的权限

# cat /etc/my.cnf | grep pid
pid-file = /home/data/log/mysql.pid

去相应目录查看

恩是有权限的,等等,我的pid文件呢?也就是说在启动的时候,mysql没有创建pid文件

手动创建一个试试

touch mysql.pid

更改其属主属组

chown    mysql.mysql mysql.pid

再启动,还报错

排除pid的问题

3、由配置文件可以,mysql存储引擎中有innodb,可能属于第三种情况

在配置文件中添加如下参数,然后启动

innodb_force_recovery = 4

启动ok

注:

启动成功之后, 把配置文件中该选项注释掉,然后重启数据库,要不然,很多操作都不支持了

innodb_force_recovery 参数含义如下

默认为0 表示当需要恢复时,执行所有的恢复操作

可以设置为1-6,当参数大于0的时候,可以对表进行slect,create,drop操作,但insert,update或者delect这类操作室不允许的

   1 :忽略检查到的corrupt页
   2 :阻止主线程的运行,如主线程需要执行full purge的操作,会导致crash
   3 :不执行事务回滚操作
   4 :不执行插入缓冲的合并操作
   5 :不查看重做日志,innodb存储引擎会将未提交的事务视为已提交
   6 :不执行前滚的操作
时间: 2024-10-13 21:58:34

mysql启动报错的相关文章

MySql启动报错,无法更新PID文件

MySql启动报错 Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql..) 1,查看错误日志 2017-08-10 19:38:14 31865 [Note] InnoDB: Initializing buffer pool, size = 50.0M InnoDB: mmap(53657600 bytes) failed; errno 12 2017-08-10 19:38:14

linux mysql启动报错Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

vi /etc/my.cnf  查看日志文件路径: log-error=/var/log/mysqld.log 查看报错日志: 之前的服务器被别人拿了,所以自己买了台美国vps,根据笔记安装完启动mysql,又启动不了. 查看了错误日志 引用 090321 18:55:03 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data /usr/local/mysql/libexec/mysqld: Ta

mysql 启动报错 “mysql-bin.index not found (Errcode: 13)“

安装好mysql数据库后,直接在安装的目录下 /usr/local/mysql  下新建了一个目录data 用于存放数据,建好后,直接去启动数据库,发现启动不了,出现如下报错: mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data /usr/local/mysql/libexec/mysqld: File './mysql-bin.index' not found (Errcode: 13) [E

新安装的MySQL启动报错The server quit without updating PID file

安装的MySQL启动报错The server quit without updating PID file [[email protected] mysql]# service mysqld restart MySQL server PID file could not be found!                  [失败] Starting MySQL.The server quit without updating PID file (/[失败]ysql/l ocalhost.loc

mysql启动报错:Table 'mysql.host' doesn't exist

今天在安装mysql后,启动时候没有启动成功,查看了下日志报错如下: --------------------------------------------- [[email protected] local]# less /var/log/mysqld.log 1.查看报错信息如下: [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 2.经过查阅资料得知.要敲

Mysql启动报错解决方案:Failed to open log (file './mysql-bin.000901', errno 2)

ps -ef|grep mysql 发现里边没有mysql进程,于是进行重启. service mysqld start报错 查看错误日志 tail -100 /usr/local/mysql/var/iZ11yohng9aZ.err(主机名.err) 180223 15:31:51 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var 180223 15:31:51 InnoDB: The Inn

mysql启动报错 The server quit without updating PID file

[[email protected] data]# /etc/init.d/mysqld startStarting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/uz6542.pid). 解决方法:初始化mysql /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/d

mysql启动报错:Starting MySQL... ERROR! The server quit without updating PID file

mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file (/opt/mysql/data/mysql.pid) 的解决方法: 首先看一下我的mysql的配置文件的配置: cat /usr/local/mysql/my.cnf [mysqld] basedir = /usr/local/mysql datadir = /opt/mysql/data port = 3306 server_id = 1

mysql启动报错:Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

mysql在首次启动的时候可能会报错:Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist 这时候可以执行脚本 mysql_install_db –user=mysql –ldata=数据存放的路径