3 MySQL8 因加密规则改变而出现的错误(Navicat DBeaver)

嘿,小伙伴们!最近MySQL8 升级后,不少朋友用Navicat和DBeaver连接数据库时遇到了小麻烦,主要是因为加密规则的变动。
别慌,我来给你细说怎么解决。

首先,MySQL8 改了默认的认证插件,从原来的mysql_native_password换成了caching_sha2 _password。
这俩工具旧版本可能不适应这个新变化,连接时就会出问题。

对于Navicat,如果遇到“authentication plugin 'caching_sha2 _password' cannot be loaded”的错,解决方法有俩: 1 . 升级Navicat到1 5 或更高版本,这些版本能支持新插件了。
2 . 如果你不想升级,也可以手动改一下MySQL的用户密码加密规则。
先管理员模式运行cmd,然后进入MySQL,把root密码改掉,让密码永远不过期。
之后,改个新密码,换成mysql_native_password插件,最后刷新权限重启MySQL。

DBeaver这边,出现“PublicKeyRetrieval is not allowed”的错误,解决方式是: 1 . 在DBeaver里调整一下设置,把allowPublicKeyRetrieval的值设为true。
2 . 如果你还是想用mysql_native_password,连接后用SHOW PLUGINS查一下插件状态,如果被禁用了,就到MySQL配置文件里打开它,然后重启MySQL。

按这些步骤走一遍,Navicat和DBeaver连接MySQL8 的加密问题应该就能解决了。
如果问题还在,那就检查一下版本兼容性和配置,确保一切都OK。
祝大家使用愉快!

mysql8如何修改密码

嘿,朋友们!今天来跟大家聊聊如何在MySQL 8 中修改用户密码。
咱们以修改“test”用户的密码为例,看看具体步骤怎么操作。

首先,咱们得登录MySQL。
输入命令“mysql -u root -p”,然后输入你的登录密码。

接下来,切换到MySQL数据库,输入“USE mysql;”。

然后,正式开始修改密码。
使用命令“ALTER USER 'test'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '新密码';”来更新密码。

最后一步,检查一下修改是否成功。
再次输入命令“mysql -u test -p”,这次用新密码登录即可。

mysql8 Your password does not satisfy the current policy requirements

MySQL 8 .0.2 0版本有时候会遇到一个让人头疼的问题:就是当你试图设置一个密码比如"1 2 3 4 5 6 "时,系统会提示“Your password does not satisfy the current policy requirements”,意思就是这密码不符合当前的安全策略。
那么,这到底是怎么回事呢?又该如何解决呢?
其实啊,这个问题主要是由于MySQL为了提高安全性,对密码设置有了更严格的要求。
如果你不希望更改密码,但又想使用简单的密码,那么可以按照以下步骤操作:
首先,你需要设置一个符合规则的密码,比如"Abc1 2 3 ..."。
在MySQL命令行中输入:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc1 2 3 ...';
这样,你就设置了一个符合规则的密码。

接下来,你需要查看当前的默认规则,看看有哪些限制。
在MySQL命令行中输入:
SHOW VARIABLES LIKE 'validate_password%';
这条命令会显示与密码验证相关的所有变量。

然后,你需要修改校验密码策略等级。
在MySQL命令行中输入:
SET GLOBAL validate_password.policy=LOW;
这条命令会将密码策略等级设置为最低,也就是最宽松的设置。

接着,你需要设置密码的最小长度。
在MySQL命令行中输入:
SET GLOBAL validate_password.length=6 ;
这条命令会设置密码的最小长度为6 个字符。

最后,你可以设置你想要的密码,比如"1 2 3 4 5 6 "。
在MySQL命令行中输入:
ALTER USER 'root'@'localhost' IDENTIFIED BY '1 2 3 4 5 6 ';
这样,你就成功设置了密码。

总的来说,这个问题的解决方法就是先设置一个符合规则的密码,然后查看并修改密码策略,最后再设置你想要的密码。
希望这个解答能够帮助你解决问题。

MySQL8.0 创建用户及授权 - 看这篇就足够了

在MySQL 8 .0里,创建用户和授权其实挺简单的,我这就给你讲讲具体步骤。

首先,你得进入MySQL环境,这个操作需要用到命令行,输入命令 mysql -uUserName -pPassWord 就行了,这里的 UserName 就是你的MySQL用户名,PassWord 是对应的密码。

接下来,得确保数据库已经创建好了,如果没有的话,你可以使用 create database databaseName; 命令来创建一个新数据库。
然后,用 use databaseName; 命令切换到你刚刚创建的数据库。

创建新用户是关键一步,你可以用 create user 'userName'@'host' identified by 'passWord'; 命令来创建一个新用户。
比如说,create user 'testUser'@'%' identified by 'Haier…1 2 3 ';,这样就创建了一个允许远程访问的用户。
注意,密码一定要复杂一些,大小写字母、数字和特殊字符都要有点,这样才安全。

创建好用户后,你得确认用户确实被创建了,这个可以通过 use mysql; 切换到系统数据库,然后执行 select host, user, authentication_string, plugin from user; 命令来查看用户信息。

给用户授权也是必须的,你可以用 grant authon databaseName.table to 'userName'@'host'; 命令来授权。
比如说,grant select, insert, update, delete on b2 b.area_code to 'testUser'@'%';,这样就给用户 testUser 授予了对 b2 b.area_code 表的增删改查权限。
授权后,别忘了用 flush privileges; 命令刷新一下授权,这样更改才会生效。

验证权限也很重要,你可以用Navicat这样的可视化工具来查看用户对指定表的权限。

如果需要撤销权限,那就用 revoke authon databaseName.table from 'userName'@'host'; 命令。
比如说,revoke select, insert, update, delete on b2 b.area_code from 'testUser'@'%';,这样就撤销了用户 testUser 对 b2 b.area_code 表的权限。

最后,如果用户不再需要了,你可以用 drop user 'userName'@'host'; 命令来删除用户。
比如说,drop user 'testUser'@'%';,这样就删除了用户 testUser。

需要注意的是,在创建用户和授权的时候,一定要确保用户名、主机名、数据库名和表名都正确无误。
密码设置要符合安全要求,不要用太简单的密码。
授权的时候,要根据实际需求来,不要授予太多不必要的权限,否则会有安全隐患。

MySQL8.0修改root账号的密码

哈喽大家好,今天咱们来聊聊怎么处理MySQL里root用户的密码问题。
如果你发现root用户的密码忘了,或者想把它改回初始状态,这里有几个步骤可以帮你搞定。

首先,你得进入MySQL的命令行界面。
在命令行里输入 use mysql;,这样就切换到了mysql这个数据库,它是专门用来管理用户和权限的。

接下来,我们要做的是清空root用户的密码。
在MySQL里,密码是一个叫authentication_string的字段,所以我们用这个命令 update users set authentication_string='' where user='root'; 把它清空。
这样做之后,root用户就暂时没有密码了,但记住,这并不是一个安全的做法,只是作为找回密码的一种手段。

清空密码之后,我们就可以设置一个新的密码了。
使用这个命令 ALTER user 'root'@'localhost' IDENTIFIED BY 'root'; 来给root用户设置密码。
这里我用了'root'作为新密码,当然,你可以换成你想要的其他密码。

执行完这些命令之后,你就可以用新设置的密码来登录MySQL了。
希望这个方法能帮到你,如果你有其他问题,欢迎在评论区留言讨论。