由于换了新电脑,需要重新装mysql,直接下载了mysql最新版的8.0,没想到配置完成之后 在设置登录密码的时候,出现了意外的错误,很是不解,找了半天找到了解决方法,现记录如下:

一、下载mysql压缩包文件。

8.0.21 下载地址:http://dev.mysql.com/downloads/mysql/

mysql8.0 解压版的安装与修改密码_.net

mysql8.0 解压版的安装与修改密码_初始化_02

二、解压到本地,开始安装本地服务

我这里解压的目录为:D:\mysql\mysql-8.0.21-winx64

新建一个配置文件,文件名叫my.ini

mysql8.0 解压版的安装与修改密码_.net_03


内容为:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql\mysql-8.0.21-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-8.0.21-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password

注意修改自己对应的目录。

安装mysql服务:

  1. 使用管理员权限启动cmd窗口,win10用户直接右键左下角的Windows徽标,选择 ​​Windows PowerShell(管理员)​​,win7用户需要去C盘​​C:\Windows\System32​​路径下,右键​​cmd.exe​​,以管理员身份运行。
  2. 将目录切换到你解压文件的D:\mysql\mysql-8.0.21-winx64\bin目录,初始化和启动Mysql服务:
  • 初始化,生成data文件夹:​​mysqld --initialize-insecure​​ (此命令不设置root密码,mysqld --initialize (会生成一个随机的root密码))
  • mysql8.0 解压版的安装与修改密码_初始化_04

  • 安装MySql服务 :​​mysqld install​
  • mysql8.0 解压版的安装与修改密码_mysql_05

  • 注意这里不是​​mysql​​ 而是 ​​mysqld​
  • mysql8.0 解压版的安装与修改密码_mysql_06

  • 启动mysql服务:​​net start mysql​
  • 登录mysql,由于没有设置密码,可以直接在命令行使用:​​mysql -u root​​ 进入mysql
  • 修改密码那里,8.0的版本使用命令:​​ALTER USER "root"@"localhost" IDENTIFIED BY "abc123456";​
  • mysql8.0 解压版的安装与修改密码_.net_07

  • 至此,mysql服务安装成功了。

由于原来安装的时候,没有在my.ini里面指定加密认证方式,所以采用了默认的加密认证方式​​caching_sha2_password​​​,这样会出现一种问题就是:可以在命令行里面登录mysql,但是可视化工具就不行,比如我用Navicat for mysql的提示:​​client does not support authentication protocol requested by server; consider upgrading MySQL client​

现在已更新加密方式,安装成功后,可以正常使用Navicat连接了,如果失败,再按照下面方式解决。

Navicat 12 如下图,不支持此加密方式。

mysql8.0 解压版的安装与修改密码_初始化_08


修改方式为:

  • 先使用命令行进入mysql
  • 修改加密方式:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  • 更改密码:该例子中 ​​abc123456​​为新密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123456';
  • 刷新
mysql> FLUSH PRIVILEGES;

再次连接:

mysql8.0 解压版的安装与修改密码_初始化_09


如果报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@’%’:

则是远程访问权限不正确,修改mysql数据库中user表 连接为"%"即可。


2021-01-28

初始化data文件夹时,提示异常:

mysql8.0 解压版的安装与修改密码_.net_10


安装完成后打开C:\Windows\System32, 可以找到文件vcruntime140_1.dll

安装之后提示需要重启电脑,才能生效,运行上面安装的库文件。我这里没有重启,再次初始化,则初始化成功了。

mysql8.0 解压版的安装与修改密码_初始化_11