mysql服务起不来,报错被解决

在清库的时候,手误导致的系统库mysql乱七八糟,增加了一些新表。于是将mysql库清空,重新用其他的库导入,这里记录一下导入的命令:

  1 在命令行导入:

    mysql  mysql< ./hx/mysql.sql -uroot -h127.0.0.1 -p123456               // mysql.sql是自己数据库执行命令的脚本

  2 也可以在mysql命令行下导入:

    mysql > source ./hx/mysql.sql

 

当时以为重新导入没有什么问题,但是今天早上炸了,(国庆前导入的,完全忘了自己做了什么操作)Nevicat连接不上来。报错 Host ‘localhost’ is not allowed to connect to this MySQL server,感觉很奇怪,就突然连接不上了。

于是在私服上通过 ps axu | grep mysql 没有看到mysql进程被启动。于是我重启mysql服务: sudo service mysql restart. 但是发现并无卵用

想来想去,只有mysql日志可以查了, cat /var/log/mysqld.log 看到日志有一行 Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist 我立即想到,有可能是之前导数据表的时候吧系统库删除了。所以在网上找了找怎么处理

这篇文章给了我答案, 需要执行这个命令mysql_install_db。后来发现还是连不上。但是换了一个报错:Access denied for user ‘root’@‘localhost’ (using password: YES)。后来查到需要在mysql的安装目录下执行 mysqld --skip-grant-tables,然后再开一个端,执行 mysql -uroot 登录到mysql的命令行界面,我查看下了mysql的user表,发现是空的,真是裂开。于是找了一份备用的use表的数据,将数据导入到mysql库的user表

 然后在nevicat上重新建立一个连接,至此成功进入Nevicat界面。

posted @ 2022-10-08 15:13  脚比路长  阅读(184)  评论(0)    收藏  举报