治之前下载的有MySQL8.0,现在下载MySQL5.7.19时,在管理员界面,出现了一下问题:我明白其中的原因,于是就使用alter语句更改,但是又显示无法识别alter语句。该如何解决?
3条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
遇到的问题是由于MySQL 8.0默认使用的
caching_sha2_password
认证插件与MySQL 5.7的mysql_native_password
不兼容导致的。在尝试使用ALTER
语句时,因为命令行环境没有识别ALTER
作为内置或外部命令,实际上是因为你在Windows的命令提示符环境下直接输入了SQL语句,而命令提示符并不理解这些SQL语法。要解决这个问题,可以按照以下步骤操作:
-
停掉MySQL 8.0的服务(如果它正在运行),确保没有遗留的MySQL服务在运行。
-
启动MySQL 5.7.19的服务。你可以通过以下命令在命令行中启动MySQL服务(假设你已经正确配置了环境变量):
net start MySQL57
-
连接到MySQL服务器。使用命令行工具连接到MySQL 5.7.19,但要注意使用正确的认证插件:
mysql -u root -p
输入密码后,你应该能够成功登录。
-
更改root用户的认证插件。一旦登录,执行以下SQL语句来将root用户的认证方式更改为
mysql_native_password
:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;
-
验证更改。你可以通过以下命令检查root用户的认证插件是否已被更改:
SELECT User, Host, authentication_string, plugin FROM mysql.user WHERE User = 'root';
-
重新登录测试。退出当前会话并再次尝试使用
mysql -u root -p
登录,这次应该能够使用新的密码顺利登录。
如果在执行上述步骤时遇到任何问题,例如权限问题,可能需要检查MySQL的配置文件(
my.ini
或my.cnf
)中的设置,确保skip-grant-tables
选项未被启用,这会禁用所有的安全认证。另外,如果你在更改认证插件后仍然遇到登录问题,可能需要重置root用户的密码。这通常涉及到重启MySQL服务,并在启动参数中加入
--skip-grant-tables
来绕过权限检查,然后更新root用户的信息。但这是一个较为复杂的操作,需要谨慎进行。解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥20 指导如何跑通以下两个Github代码
- ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
- ¥15 C++为什么这个代码没报错运行不出来啊
- ¥15 一道ban了很多东西的pyjail题
- ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
- ¥15 C++识别堆叠物体异常
- ¥15 微软硬件驱动认证账号申请
- ¥15 GPT写作提示指令词
- ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
- ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题