首页 > 数据库 >mysql服务起不来,报错被解决

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

时间:2022-10-08 15:24:15浏览次数:76  
标签:mysql 导入 报错 user 命令行 sql 起不来

在清库的时候,手误导致的系统库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界面。

标签:mysql,导入,报错,user,命令行,sql,起不来
From: https://www.cnblogs.com/hx943685213/p/16769033.html

相关文章