MySql-8.0.12安装,更改root用户密码,使用Navicat客户端连接

MySql-8.0.12安装,更改root用户密码,使用Navicat客户端连接

很久没用mysql,今天从官网上下载最新的mysql-8.0.12安装,发现很多东西都不一样了,在这里记录一下。Mysql安装包下载:https://dev.mysql.com/downloads/mysql/。Mysql安装包分为zip版本和msi版本(window7),下载msi需要大量时间,且网络不稳定的情况下很难下载,因此最好跟我一样下载zip版本。
下载zip

zip包下载之后解压,然后直接配置环境变量,在Path路径中增加(注意,如果选择先添加一个MYSQL_HOME变量,然后在添加Path变量的方式进行设置,有可能会配置失败,这个我也不清楚什么原因,如果配置后,cmd命令行还是显示不是内部命令的错误,那建议直接在Path中添加绝对路径):
环境变量

打开cmd命令行(一定用管理员方式打开,否则后续操作无效),输入 mysqld –initialize-insecure –user=mysql 该命令会在你的mysql目录下生成一个data文件夹,这个过程会停顿数秒。执行结束后在输入mysqld install,生成mysql服务。如果没有用管理员方式打开cmd直接执行该命令,会报Install/Remove of the Service Denied!的错误。
这里写图片描述
上面的步骤执行结束后,在window的服务中,我们就能看到默认的mysql服务。你可以右键该服务进行启动,也可以在cmd中输入net start mysql,启动mysql服务。但很有可能会提示:服务名无效。这时,在mysql服务的属性中对登录页进行设置,输入自己的主机的用户名和密码。
这里写图片描述
之后在启动即可成功启动mysql服务。之后对root用户的密码进行修改,在cmd中输入

mysql -u root -p

然后在输入密码时直接回车,进入sql。对mysql的user表进行查询:

mysql> select host, user, authentication_string from mysql.user;

注意在新版本的mysql中,抛弃了password字段,使用了新的authentication_string作为密码字段。

接下来是很关键的一步,如果修改错误又会产生 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) 的问题。

use mysql; 
update user set authentication_string='' where user='root'

先清空root对应的密码,无论是否有,都建议先清空一次。然后用alter修改密码。

ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'

注意以下几点:①@’localhost’最好要添加上去,指定好root能访问的域;②新密码一定要包含数字、字母和特殊字符,否则还是产生1045错误。到此,mysql已经安装好,并更改了root的默认密码。但是我们往往会使用第三方的数据库连接客户端,例如非常好用的navicat,而由于新版本的mysql使用caching_sha2_password对密码进行认证,因此会无法连接。所以在使用navicat之前执行以下命令后在连接。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;

这样做的坏处就是,使用cmd无法进入mysql,只能强行重置root的命令才能进入,因为cmd的密码认证方式和使用navicat连接的方式是不同的。如果想两者都能登录,最好自己新建一个账户。

猜你喜欢

转载自blog.csdn.net/wujingchangye/article/details/81570166