MySQL无法启动:Table mysql.host doesn t exist

提示:

Timeout error occurred trying to start MySQL Daemon.
Starting MySQL:  [FAILED]

检查了MySQL的日志(cat /var/log/mysqld.log)发现提示一个错误([ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist),如图:

猜测可能是MySQL的默认数据库没正常安装,但卸载MySQL(yum remove mysql-server)再重装(yum install mysql-server)还是不行,现象和原来一样。后来找到一个专门安装默认数据库的命令:mysql_install_db,执行之后,再启动MySQL(/etc/init.d/mysqld start)终于看到久违的OK:

 代码如下 复制代码

# /etc/init.d/mysqld start
Starting MySQL:  [  OK  ]

问题二

用safe_mysqldq启动的时候,出现

Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

最终解决方法如下:

在mysql的安装目录下,我的是/usr/local/mysql

 代码如下 复制代码

./scripts/mysql_install_db   --usrer=mysql  --datadir=/usr/local/mysql/data/

原因是重装的时候数据目录不一致导致

问题三

说一下我解决的过程:

按照mysql的安装步骤:

 代码如下 复制代码
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/var
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &

这样标准进行下来是没有问题的,但在最后一步启动mysql的时候我希望将数据库的数据文件放在另外一个目录下面,启动命令修改为:

 代码如下 复制代码
shell>/usr/local/mysql/bin/mysqld_safe --user=mysql --log-error=/u01/mysql/mysql_error/error --datadir=/u01/mysql/data

这个时候就出现问题了, 因为在进行初始化数据库权限表的那一步的时候默认创建的权限表在默认目录/usr/local/mysql/var下面,这就造成了,上面的错误无法找到 权限表:Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

解决办法 在运行初始化权限表的时候使用增加参数--datadir ,命令格式为:

 代码如下 复制代码
shell> scripts/mysql_install_db --user=mysql --datadir=/u01/mysql/data

 

时间: 2024-09-22 00:03:02

MySQL无法启动:Table mysql.host doesn t exist的相关文章

centos 安装mysql 5.6 无法启动 Table &#039;mysql.plugin&#039; doesn&#039;t exist

131203 23:09:36 mysqld_safe Starting mysqld daemon with databases from /mnt/mysqldata 2013-12-03 23:09:36 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation f

redhat下安装mysql 5.6.20,解压zip包,查看已经安装过的mysql,卸载rpm安装包,安装mysql服务器端和客户端,修改mysql用户名,登陆mysql,启动关闭mysql

 1 将相关的mysql rpm包上传到redhat上 2  我的电脑是Redhat 6.*版本,所以这里使用上面一个 3  解压zip包 4  安装以下几个rpm MySQL-client-advanced-5.6.20-1.el6.x86_64.rpm MySQL-server-advanced-5.6.20-1.el6.x86_64.rpm 5  查看已经安装过的mysql rpm –aq | grep mysql 结果: mysql-libs-5.1.66-2.el6_3.x86_6

MySql报错Table mysql.plugin doesn’t exist的解决方法_Mysql

一般产生原因是手工更改my.ini的数据库文件存放地址导致的 mysql服务启动时候找不到内置数据库"mysql",找不到那张表,就包了上述错误. 解决办法:将安装目录或之前的目录里面的"mysql"数据库拷贝到新的数据库文件存放目录即可

磁盘空间不足导致mysql无法启动的mysql错误

在mysql中查看表提示1030错误: mysql> desc user; ERROR 1030 (HY000): Got error 28 from storage engine 引起这个错误的原因是磁盘空间不足,导致mysql的临时目录空间tmpdir不够. 解决方法是清空linux系统的/tmp目录,或者修改my.cnf中的tmpdir参数,指向具有足够空间的目录. 使用df 查看分区使用情况: [root@jsunsa tmp]# df /tmp Filesystem          

mysql启动提示mysql.host 不存在,启动失败

但是对我第一次摸mysql,确实怎么也弄不懂的问题. 好了闲话不多说 说一下我解决的过程: 按照mysql的安装步骤: shell> groupadd mysql shell> useradd -g mysql mysql shell> gunzip < mysql-VERSION.tar.gz | tar -xvf - shell> cd mysql-VERSION shell> ./configure --prefix=/usr/local/mysql shell&

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

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

Linux系统下启动MySQL报错:Neither host &#039;localhost.localdomain&#039;

Linux系统下装完MySQL,然后重启动时报错: 解决方法: 查看cat /etc/hosts 发现什么文件也没有,编辑内容相关配置. vim /etc/hosts 输入以下内容:127.0.0.1localhost.localdomain localhost 然后重新启动MySQL 正常启动OK了~

服务器断电后mysql无法启动

问题描述 服务器断电后mysql无法启动 因意外导致服务器断电,重启后发现mysql起不来了 [root@cacti ~]# service mysqld restart 停止 mysqld: [确定] MySQL Daemon failed to start. 正在启动 mysqld: [失败] 查看日志: [root@cacti ~]# tail -100 /var/log/mysqld.log 150520 12:21:12 mysqld_safe Starting mysqld daem

MySQL [ERROR] Table &#039;mysql.user&#039; doesn&#039;t exist

    一次源码新装的mysql,由于没有复制my-default.cnf到/etc/my.cnf位置,在启动mysql的时候碰到了无法打开mysql.user表的错误.具体错误为:[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist.下面是该错误的描述及其解决办法.   1.现象描述[root@HKBO scripts]# service mysqld startS