千家信息网

如何解决mysql中user表没有的问题

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章将为大家详细讲解有关如何解决mysql中user表没有的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql user表没有了的解决办法:1、在"[
千家信息网最后更新 2025年01月21日如何解决mysql中user表没有的问题

这篇文章将为大家详细讲解有关如何解决mysql中user表没有的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

mysql user表没有了的解决办法:1、在"[mysqld]"中添加"skip-grant-tables";2、编辑my.cnf配置文件,添加"sql_mode=NO_ENGINE_SUBSTITUTION";3、重启mysql服务。

本文操作环境:Windows7系统,mysql5.5版,Dell G3电脑。

mysql 忘记密码,重置密码,mysql.user表为空的解决办法:

一、用户表有用户,直接修改密码

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

修改mysql配置文件my.cnf:

vim /etc/my.cnf

在[mysqld]中添加

skip-grant-tables

重启mysql服务,用空密码直接登录,查询用户表,有结果则按如下步骤修改,结果为空直接最后的解决办法

mysql> select Host,User,authentication_string from mysql.user;+-----------+---------------+-------------------------------------------+| Host      | User          | authentication_string                     |+-----------+---------------+-------------------------------------------+| localhost | root          | *6A7A490FB9DC8C33C2B025A91737077A7E9CC5E5 || localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || %         | root          | *6A7A490FB9DC8C33C2B025A91737077A7E9CC5E5 |+-----------+---------------+-------------------------------------------+4 rows in set (0.00 sec)

修改对应用户的密码

# 重置密码为 123456mysql> update mysql.user set authentication_string=password('123456') where user='root' Query OK, 2 rows affected, 1 warning (0.00 sec)Rows matched: 2  Changed: 2  Warnings: 1# 刷新权限,使配置生效mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)# 退出mysql> quitBye

取消或注释掉my.cnf配置文件添加的选项 skip-grant-tables ,重启mysql服务,搞定收工。

二、用户表没有数据,则需要插入用户数据

mysql> select Host,User,authentication_string from mysql.user;Empty set (0.00 sec)# 退出登陆mysql> exitBye

编辑my.cnf配置文件,添加或修改下面两项(我这没有sql_mode项):

sql_mode=NO_ENGINE_SUBSTITUTIONskip-grant-tables
  • 停止mysql服务,启动数据库的安全模式:mysqld_safe &

  • 使用root 空密码连接数据库: mysql -uroot -p

插入root用户数据

mysql> insert into mysql.user(Host,User,authentication_string) values("%","root",password("123456")); Query OK, 1 row affected, 4 warnings (0.00 sec)

再次查询mysql.user表,会报错

mysql> select Host,User,authentication_string from mysql.user;ERROR 1194 (HY000): Table 'user' is marked as crashed and should be repaired

需要修复mysql.user表

mysql> REPAIR TABLE mysql.user;+------------+--------+----------+-------------------------------------------------+| Table      | Op     | Msg_type | Msg_text                                        |+------------+--------+----------+-------------------------------------------------+| mysql.user | repair | info     | Wrong bytesec: 113-108- 95 at 396; Skipped      || mysql.user | repair | info     | Found block that points outside data file at 32 || mysql.user | repair | info     | Found block that points outside data file at 36 || mysql.user | repair | info     | Found block that points outside data file at 40 || mysql.user | repair | info     | Found block that points outside data file at 44 || mysql.user | repair | info     | Found block that points outside data file at 48 || mysql.user | repair | info     | Found block that points outside data file at 52 || mysql.user | repair | info     | Found block that points outside data file at 56 || mysql.user | repair | info     | Found block that points outside data file at 60 || mysql.user | repair | warning  | Number of rows changed from 4 to 3              || mysql.user | repair | status   | OK                                              |+------------+--------+----------+-------------------------------------------------+11 rows in set (0.64 sec)# 再次查询user表mysql> select Host,User,authentication_string from mysql.user;+-----------+---------------+-------------------------------------------+| Host      | User          | authentication_string                     |+-----------+---------------+-------------------------------------------+| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || %         | root          | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |+-----------+---------------+-------------------------------------------+3 rows in set (0.00 sec)

修改root用户的权限:

  update mysql.user set     `Select_priv` = 'Y',   `Insert_priv` = 'Y',   `Update_priv` = 'Y',   `Delete_priv` = 'Y',   `Create_priv` = 'Y',   `Drop_priv` = 'Y',   `Reload_priv` = 'Y',   `Shutdown_priv` = 'Y',   `Process_priv` = 'Y',   `File_priv` = 'Y',   `Grant_priv` = 'Y',   `References_priv` = 'Y',   `Index_priv` = 'Y',   `Alter_priv` = 'Y',   `Show_db_priv` = 'Y',   `Super_priv` = 'Y',   `Create_tmp_table_priv` = 'Y',   `Lock_tables_priv` = 'Y',   `Execute_priv` = 'Y',   `Repl_slave_priv` = 'Y',   `Repl_client_priv` = 'Y',   `Create_view_priv` = 'Y',   `Show_view_priv` = 'Y',   `Create_routine_priv` = 'Y',   `Alter_routine_priv` = 'Y',   `Create_user_priv` = 'Y',   `Event_priv` = 'Y',   `Trigger_priv` = 'Y',   `Create_tablespace_priv` = 'Y'   where user='root';# 更新权限mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)# 退出登陆mysql> exitBye
  • 退出mysql,将my.cnf配置文件的修改恢复

  • 结束mysqld_safe 进程:pkill mysql

  • 启动mysql服务: systemctl start mysql
    问题解决!

关于"如何解决mysql中user表没有的问题"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

用户 密码 配置 数据 文件 服务 问题 办法 权限 篇文章 用户表 查询 再次 数据库 更多 结果 登陆 不错 实用 安全 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 管理服务器有哪些品牌 qq实时传文件会不会存在服务器 软件开发总体功能设计 AI神经网络技术 酒店服务器被黑 电脑驱动和网络安全哪个好 华为乾颐堂网络安全基础课 我的世界服务器流量 方舟生存进化怎么建立临时服务器 中兴支点服务器操作系统 浪潮英信服务器维修时间 服务器连接安全规则有什么用 事业编网络安全保障中心 数据库更改整类型语句 专业软件开发价格咨询 怎么创建本地网络服务器 网络安全人员证 软件开发未来一年的规划 软件开发分包价格 笔杆网查重显示服务器异常 黑龙江存储服务器虚拟主机 软件开发公司工作程序文件 西安高新区软件开发公司有几家 网络安全体系 恢复 安全教育课网络安全图片素材 互联网科技专业委员会 jquery 数据库 武威徒烂网络技术有限公司 连接不上视频监控管理服务器 自动化执行数据库脚本工具
0