• ADADADADAD

    如何解决mysql中user表没有的问题[ mysql数据库 ]

    mysql数据库 时间:2024-11-25 18:00:44

    作者:文/会员上传

    简介:

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

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    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表为空的解决办法:

    一、用户表有用户,直接修改密码
    ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)

    修改mysql配置文件my.cnf:

    vim/etc/my.cnf

    在[mysqld]中添加

    skip-grant-tables

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

    mysql>selectHost,User,authentication_stringfrommysql.user;+-----------+---------------+-------------------------------------------+|Host|User|authentication_string|+-----------+---------------+-------------------------------------------+|localhost|root|*6A7A490FB9DC8C33C2B025A91737077A7E9CC5E5||localhost|mysql.session|*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE||localhost|mysql.sys|*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE||%|root|*6A7A490FB9DC8C33C2B025A91737077A7E9CC5E5|+-----------+---------------+-------------------------------------------+4rowsinset(0.00sec)

    修改对应用户的密码

    #重置密码为123456mysql>updatemysql.usersetauthentication_string=password('123456')whereuser='root'QueryOK,2rowsaffected,1warning(0.00sec)Rowsmatched:2Changed:2Warnings:1#刷新权限,使配置生效mysql>FLUSHPRIVILEGES;QueryOK,0rowsaffected(0.00sec)#退出mysql>quitBye

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

    二、用户表没有数据,则需要插入用户数据
    mysql>selectHost,User,authentication_stringfrommysql.user;Emptyset(0.00sec)#退出登陆mysql>exitBye

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

    sql_mode=NO_ENGINE_SUBSTITUTIONskip-grant-tables

      停止mysql服务,启动数据库的安全模式:mysqld_safe &

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

      插入root用户数据

      mysql>insertintomysql.user(Host,User,authentication_string)values("%","root",password("123456"));QueryOK,1rowaffected,4warnings(0.00sec)

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

      mysql>selectHost,User,authentication_stringfrommysql.user;ERROR1194(HY000):Table'user'ismarkedascrashedandshouldberepaired

      需要修复mysql.user表

      mysql>REPAIRTABLEmysql.user;+------------+--------+----------+-------------------------------------------------+|Table|Op|Msg_type|Msg_text|+------------+--------+----------+-------------------------------------------------+|mysql.user|repair|info|Wrongbytesec:113-108-95at396;Skipped||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat32||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat36||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat40||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat44||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat48||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat52||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat56||mysql.user|repair|info|Foundblockthatpointsoutsidedatafileat60||mysql.user|repair|warning|Numberofrowschangedfrom4to3||mysql.user|repair|status|OK|+------------+--------+----------+-------------------------------------------------+11rowsinset(0.64sec)#再次查询user表mysql>selectHost,User,authentication_stringfrommysql.user;+-----------+---------------+-------------------------------------------+|Host|User|authentication_string|+-----------+---------------+-------------------------------------------+|localhost|mysql.session|*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE||localhost|mysql.sys|*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE||%|root|*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9|+-----------+---------------+-------------------------------------------+3rowsinset(0.00sec)

      修改root用户的权限:

      updatemysql.userset`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'whereuser='root';#更新权限mysql>flushprivileges;QueryOK,0rowsaffected(0.00sec)#退出登陆mysql>exitBye

        退出mysql,将my.cnf配置文件的修改恢复

        结束mysqld_safe 进程:pkill mysql

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

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

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqluser