坑one、安装mysql8后无法登陆,初始密码找不到(下载地址https://dev.mysql.com/downloads/mysql/)
安装mysql步骤:
i1:按照下图依次点击进入下载页,根据自己需要下载相应操作系统下的mysql压缩包,我这里选择的是windows
i2:解压后,配置环境变量,分别配置MYSQL_HOME的系统变量(路径为解压后的路径),并在path中增加%MYSQL_HOME%\bin;
i3:管理员身份打开cmd,首先mysqld --initialize-insecure --user=mysql进行初始化,初始化后会生成一串初始化密码(一定要记住),登陆的时候要用。
i4:mysqld -install安装服务。
i5:net start mysql启动服务。
启动后可以登陆mysql修改初始化的密码,如果记录的刚才的密码就比较简单了,直接用密码登陆,修改mysql(数据库名)的数据库下面的user表里user='root' and host='root'的密码authentication_string(这是记录密码的字段),用正常的update语句就可以。
如果没有记录初始化密码则需要利用mysql无密码进行启动服务的方式,具体步骤如下:
1、关闭mysql服务;
2、打开第一个cmd窗口,进入安装路径的bin路径,输入mysqld --console --skip-grant-tables --shared-memory;
3、打开第二个cmd进入bin路径,用mysql -u root即可进入,接下来可以安装之前修改密码的方法进行修改。
至此,可以从第一个坑爬出来了
--------------------------------------------------------------------------------------------------------------------------------------
坑two、安装成功后,cmd可正常访问数据库,但是navicat连接报错1251
原因:mysql8与mysql5的加密方式不同,之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,但是navicat驱动还未及时更改
解决方案有两种:
一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password
这里讲第二个方案,
命令行进入MySQL数据库
输入以下指令,逐行输入,每行后加一个回车
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password(你的密码)' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password(你的密码)'; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
执行完以上操作,navicat就可以正常连接了。