阿里云MySQL从 2003->1251->1396

目的

由于需要在阿里云的实例中装MySQL数据库,安装前期(本地访问)还是挺顺利的,但是到了远程连接的时候,却出现了一系列的Bug,以为是没有 实名认证+没有备案 的原因导致的,但是后来想了想,不该呀,我是通过公网IP进行访问的,按理说跟那些没有关系才对,于是就在各个博主那里取到了经,现在回来记录下

2003错误

首先是MySQL的2003报错,如下图:

我当时遇到这个问题,其实感觉还是挺熟悉的(因为我之前在Docker中安装MySQL时,也出现了这个问题),因为没有记录,就只能大概想起将root的权限从localhost改为 啥东西来着(当时真的记不住),后来在网上找了一下,就有人说,在MySQL内部使用

bash 复制代码
update user set host='%' where user='root';

然后再这么一下

bash 复制代码
flush privileges;

说是就好了,结果我按操作这样弄了后,还是报错,我就懵逼了,于是第二天,我又在网上找了一些解决办法

继续找答案

于是乎,我在网上找到说是端口没开放啥的,我当时想,我记得我在阿里云中特意开放了3306端口的呀,就很迷,于是就去宝塔中继续确认一下,发现还真没开启3306的端口(真的很懵逼),于是就开启这个端口

出现了新的问题(1251)

好不容易找到了答案,以为就能连接成功了,于是乎,你没想错,又报错了,这次报了1251的错误。

我一看到这个错误,就感觉很眼熟,这不是昨天配置的那个问题吗?难道没配置好导致的(同时也意识到昨天找答案的方向完全错误)?

于是继续寻找答案,在此,非常感谢这篇博文:

Navicat连接mysql报错 1251错误

因为我记得上次出现远程连接出现错误的时候,也是这篇文章解了我的疑惑

1251解决过程
问题分析

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

解决办法

把mysql用户登录密码加密规则还原成mysql_native_password.

实现步骤

1.修改加密规则

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345(你的密码)';

2.更新用户的密码

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password(你的密码)' PASSWORD EXPIRE NEVER;

3.刷新权限

bash 复制代码
FLUSH PRIVILEGES;

至此, 1251错误就解决了

又出现了新的问题(1396)

这主要是针对我的,因为我前一天使用了

bash 复制代码
update user set host='%' where user='root';

导致出现了新的问题------1396,没办法,只能继续搜索了,不过这次很幸运,一下子找到了正确的解决方案,推一下该博文:

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

这篇博文真的将我最后的疑惑解决了,连步骤都是非常细节的

1396解决过程

步骤:

1.先登录MySQL中

bash 复制代码
mysql -u root -p

2.接着输入密码,进入MySQL

3.查看当前MySQL的信息

bash 复制代码
use mysql;
bash 复制代码
select user,host from user;

出现了该界面


由于我之前使用了这个命令

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '111111';

导致我现在没法找到

于是乎,按着博文的方法修改

4.修改root用户的host,

bash 复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '111111';

于是我的问题就解决啦,真的是太棒啦!!!

至此,问题解决啦

相关推荐
likangbinlxa10 分钟前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
r i c k38 分钟前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦1 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL2 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·2 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德2 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫2 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i2 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.3 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn3 小时前
【Redis】渐进式遍历
数据库·redis·缓存