安装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
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.输入刚刚修改的密码,再次测试连接,搞定
部分来自网络,侵删