新手小白解决MySql里root(根用户)权限(最高权限)丢失的解决办法及恢复办法

您所在的位置:网站首页 删除c盘文件没有权限怎么办啊 新手小白解决MySql里root(根用户)权限(最高权限)丢失的解决办法及恢复办法

新手小白解决MySql里root(根用户)权限(最高权限)丢失的解决办法及恢复办法

2024-07-01 07:47| 来源: 网络整理| 查看: 265

目录 问题由来缺失权限而导致的报错和常见报错报错解析具体解决办法总结

问题由来

在一次对mysql用户权限进行管理时不慎将root的权限删除,由于是新手小白并不了解root权限是最高权限,这就导致在后来的项目构建连接数据库时,由于权限缺失导致无法连接。

缺失权限而导致的报错和常见报错

ERROR 1044 (42000): Access denied for user ‘root’@‘%’ to database ‘mysql’; ERROR 1045 (28000):Access denied for user ‘root’@‘localhost’ (using password: YES); ERROR 1046 (3D000): No database selected; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that ; ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061);

报错解析

1044 -->mysql账号远程连接mysql服务器时没有充足的权限; 1045 -->用户root的访问被拒绝(分两种情况 第一种是你使用的登录密码错误 第二种是你密码正确但是没有权限所以被拒绝 ) 本人就是第二种原因; 1046 -->创建表未选择对应的数据库;这里的原因就是你在使用时没有权限,导致数据库无法连接; 1064 -->MySQL的语法错误(常见错误)–> 检查一下语法; 这里补充一个容易忽略的语法错误:mysqld-nt --skip-grant-tables 正确语法应该是mysqld -nt --skip-grant-tables (mysqld和-nt间有一个空格,网上绝大部分的命令都是连在一起的这也就导致使用时报错。 2003 -->电脑的MySQL服务没有开启,导致使用navicat连接时无法进入 -->解决办法就是打开任务管理器->找到 ‘服务’->下拉找到MySQL和mysql80(本人使用的是80版本),然后右键选择启动服务。

具体解决办法

先关闭mysql的服务,可以选择通过命令行关闭,也可以选择手动通过任务管理器关闭。 1.命令行关闭方式: 进入你的mysql的安装位置目录找到mysql server下的bin目录,在bin目录里面空白地方,按住shift键并右击选择Open cmd here,如果你的弹窗没有显示这个选项,可以进行如下操作,先新建一个记事本:

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere] @="在此处打开命令行窗口" "Extended"="" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere\command] @="PowerShell -windowstyle hidden -Command \"Start-Process cmd.exe -ArgumentList '/s,/k, pushd,%V' -Verb RunAs\""

然后保存到任意一个地方就行(本人报存到了c盘用户下),然后更改文件的格式改为reg形式。此处参考右键加shift打开管理员命令提示符 完成上述操作后,你会进入如下窗口这是管理员页面 这里提一个注意点,终端管理员和管理员有区别,我们打开的界面应该如上,如有不一致那就是步骤出错了。 进入之后输入 mysqld --console --skip-grant-tables --shared-memory然后窗口会进行加载,等加载完后会卡在一个位置不动,这时我们在新打开一个窗口,还是如上的方法在bin目录下进行,然后不要输入密码,直接 输入 mysql 然后,成功进入后,输入 UPDATE mysql.user SET Grant_priv=‘Y’, Super_priv=‘Y’ WHERE User=‘root’; 然后再输入 FLUSH PRIVILEGES; 继续输入 GRANT ALL ON . TO ‘root’@‘localhost’;(这里有的双引号是%,有的是localhost,原因是选择连接方式不同,localhost是本地练级,%是既可以远程也可以本地连接) 接着输入 FLUSH PRIVILEGES; 最后退出当前页面 然后在上一个页面同时按住ctrl和c. 然后重启没有mysql服务可以选择任务管理器方式,或则在命令行里输入 net start mysql; 最后你在进入mysql时登录用户的所有权限就全都恢复了。

总结

本人的惨痛经历希望大家引以为戒,同时感谢你带你进来并阅读此篇文章,希望能有所帮助,祝朋友你的问题可以成功解决,同时告诉各位,遇到问题别担心,总会解决的,只是时间问题,而解决问题对我们程序人员来说何尝不是一种快乐。 文章在这里参考了如下作者的内容: mysql8.0恢复root权限



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3