windows下安装 mysql 8.0 以上版本以及遇到的问题

时间:2020-12-08 08:46:20

Windows 上安装 MySQL

Windows 上安装 MySQL 相对来说会较为简单,这个链接 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 下载 zip 包。

最新版本可以在 MySQL 下载 中下载中查看。

windows下安装 mysql 8.0 以上版本以及遇到的问题

windows下安装 mysql 8.0 以上版本以及遇到的问题

点击 Download 按钮进入下载页面,点击下图中的 No thanks, just start my download. 就可立即下载:

windows下安装 mysql 8.0 以上版本以及遇到的问题

下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\web\mysql-8.0.11 下。

接下来我们需要配置下 MySQL 的配置文件

打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:

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

接下来我们来启动下 MySQL 数据库:

以管理员身份打开 cmd 命令行工具,切换目录:

cd C:\web\mysql-8.0.11\bin

初始化数据库:

mysqld --initialize --console 或者
mysqld --initialize --user=root --console

执行完成后,会输出 root 用户的初始默认密码,如:

...
2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ
...

APWCY5ws&hjQ 就是初始密码,后续登录需要用到,你也可以在登陆后修改密码。

输入以下安装命令:

mysqld install

启动输入以下命令即可:

net start mysql

注意:执行安装命令启动命令时需以管理员身份启动 cmd

登录 MySQL

当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:

mysql -h 主机名 -u 用户名 -p

参数说明:

  • -h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0。1)该参数可以省略;
  • -u : 登录的用户名;
  • -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。

如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:

mysql -u root -p

按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:

Enter password:

若密码存在, 输入密码登录, 不存在则直接按回车登录。登录成功后你将会看到 Welecome to the MySQL monitor... 的提示语。

然后命令提示符会一直以 mysq> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。

修改密码:(修改密码的语法已经改变)

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'

Navicat连接不上 1251 client does no support authentic :

户端使用navicat for mysql。本地安装了mysql 8.0.12。但是在连接的时候提示:

windows下安装 mysql 8.0 以上版本以及遇到的问题

主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。

打开mysql命令行输入如下命令查看,系统用户对应的认证插件:

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

windows下安装 mysql 8.0 以上版本以及遇到的问题

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。

plugin的作用之一就是处理后的密码格式和长度是不一样的,类似于使用MD5加密和使用base64加密一样对于同一个密码处理后的格式是不一样的。

解决方法

我不希望更新本地的客户端版本,想直接使用原来的环境来链接。

解决方法是将root的plugin改成mysql_native_password。相当于降了一级。

mysql官方网站提供了从mysql_old_password升级到mysql_native_password,我们可以仿照这个。官方原文如下:

这里改成:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

这行代码有两层含义,第一:修改root的密码为'root',摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。

修改完成后再用客户端登陆成功:

补充:

如果在修改插件的时候出现错误,可现将插件改为 mysql_old_password,然后再升级成mysql_native_password

参考地址:

http://www.runoob.com/mysql/mysql-install.html

https://blog.csdn.net/yi247630676/article/details/80352655

https://www.cnblogs.com/technologylife/p/6010205.html