使用Navicat连接Mysql打开.sql文件

安装MySql以及Navicat的教程网上很多,但是大部分都是针对MySql5的,但是现在直接在官网下载下来的MySql是8.0.11版本的,在安装以及连接的过程中会出现许多问题,都是由于8.0以后的版本与5.0的语法规则,关键字不一致,以及加密方式不一致导致的,网上也都有解决方法了,这里做个整理。

在安装mysql 的过程中,许多教程提到要修改my.iid之类的文件,其实是不需要的,直接用insecure 那个命令就行 :

进入安装路径中的bin文件夹下

mysqld --initialize-insecure 

初始化后再运行 net start mysql 即可启动 mysql。


然后在输入密码的部分,也不用去看log,一开始没有修改过密码的密码就是空的,直接回车就行了。

然后就可以自己修改密码了,但是修改密码的命令以及对密码的要求都变了,具体如下:

并且 8.0以上对于密码的要求都上升了,必须是大小写字母加数字特殊符号(所以是常用的那个第一个字母大写)

mysql> alter user 'root'@'localhost'IDENTIFIED BY 'MyNewPass';

ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements

扫描二维码关注公众号,回复: 5983409 查看本文章

mysql> alter user 'root'@'localhost'IDENTIFIED BY 'MyNewPass@123';

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

mysql> alter user'root'@'%' IDENTIFIED BY 'MyNewPass@123'; 

 mysql8.0以上密码策略限制必须要大小写加数字特殊符号,我之前用mysqladmin,set,update,参考修改root密码的前人:http://www.cnblogs.com/liufei88866/p/5619215.html

Query OK, 0 rows affected (0.05 sec)

退出,把Skip-grant-table语句删除,重新启动数据库

[root@localhost ~]# vim /etc/my.cnf【删除省略】

[root@localhost ~]# systemctl stopmysqld.service

[root@localhost ~]# systemctl startmysqld.service

[root@localhost ~]# mysql -uroot –p

mysql> CREATE USER dbadmin@localhost

   -> IDENTIFIED BY 'pwd123';

ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements

mysql> CREATE USER dbadmin@localhost

   -> IDENTIFIED BY 'Pwd123';

ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements

mysql> CREATE USER dbadmin@localhost

   -> IDENTIFIED BY 'Pwd@123';

ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements

mysql> CREATE USER dbadmin@localhost

   -> IDENTIFIED BY 'MyNewPass@123';

Query OK, 0 rows affected (0.10 sec)

【可以正常创建用户,密码安全性还是要求着设置复杂度要高一些】



在navicat连接mysql的时候,因为加密方式不一致,会报错1251- Client does not support authentication protoco

解决方法是:

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

2.1.打开命令行小黑屏,进入MySQL的bin目录,然后输入mysql -u root -p,输入密码

2.2.然后依次输入

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 (必写)#我觉得这里不是修改加密规则,而是保证密码不变

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用户密码 #这一条才是将加密规则更改为 mysql_native_password

FLUSH PRIVILEGES; #刷新权限(不输入也可以)

2.3.输入刚刚修改的密码,再次测试连接,搞定


部分来自网络,侵删

猜你喜欢

转载自blog.csdn.net/u014096903/article/details/80563031