本文安装环境说明:win10,64位操作系统
首先是登录MySQL的官网,下载MySQL 8.0.17的安装包。官网地址:https://www.mysql.com/
打开MySQL官网后,在出现的页面上,依次点击MYSQL.COM,Products和MySQL Community Edition,如下图所示:
点击MySQL Community Edition后,我们来到如下页面,点击红框中的蓝色链接:
然后,我们就来到 了MySQL Community下载页面,找到MySQL Installer for Windows链接并点击,如下图所示:
然后,我们就进入到真正的下载页面,此页面中可以看到有两个可下载的文件,为避免下载完MySQL安装程序后,安装时还要继续下载,此处我选择下载的是第二个安装程序,也就是较大的那个。如下图所示:
点击完下载按钮后,会跳出来一个提醒你登录或注册的页面,我们不用管它,直接来到页面最下方,点击仅下载即可。如下图所示:
然后,耐心等待下载完成即可。需要指出的是,MySQL的安装程序都是32位的,但是安装程序会同时安装32位和64位的MySQL二进制文件。
首先找到下载的安装程序,双击运行它,会跳出一个安装类型选择界面,这里我选择只装服务器,如下图所示:
然后点击Next,我们来到设置安装路径和数据存放路径的界面。此处,我选择了把他们都放在D盘。如下图所示:
路径设置完成后,继续点击Next,来到安装界面,然后点击Execute按钮,如下图所示:
接下来,一路点击Next按钮,如下图所示:
再次点击Next按钮后,我们来到创建用户和设置密码的界面。我们先设置root用户的密码(注意要记住这个密码),然后点击下方的Add User创建一个新的用户,如下图所示:
点击Add User按钮后,我们来到给新创建的用户配置信息的界面,除了用户名和密码外,其他选择默认即可。如如下图所示:
这里需要指出的一点是,Host选项的默认值表示任何主机都可以连接MySQL数据库。
点击OK按钮后,来到Windows Service设置界面,我们不用进行任何更改,直接点击Next即可,如下图所示:
然后来到应用配置界面,点击Execute按钮,等待执行完毕,如下图所示:
当执行结果如下图所示时,我们就可以点击Finish按钮了:
点击Finish按钮后,来到产品配置界面,从状态中我们可以看到,产品已经完成配置。如下图所示:
接着,再次点击Next,跳出如下界面,我们点击Finish:
至此,完成MySQL8.0.17的安装。
接下来,复制MySQL的安装路径到bin这一层级,我的是D:\MySQL Server 8.0\bin,将其添加到环境变量中。
添加步骤:右击此电脑——>属性——>高级系统设置——>环境变量——>选中系统变量中的path——>编辑
——>新建——>将D:\MySQL Server 8.0\bin复制粘贴过来——>连续三次确定。
当MySQL8.0.17安装成功后,我们可以在开始界面找到MySQL自带的命令行客户端(而且还是两个),如下图所示:
这两个命令行客户端的名称相似,其中一个名称的末尾有-Unicode。二者的区别在于MySQL各个模块的编码方式不同,如下图所示:
一般模式下:
Unicode模式下:
为防止出现乱码问题,我们可以选择使用Unicode模式下的命令行客户端。
除MySQL自带的客户端工具外,我们还可以使用第三方客户端工具。这里介绍一下如何解决当用Navicat Premium连接MySQL数据库时报的2059错误,如下图所示:
这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。为解决这个问题,可以将MySQL用户登录的加密规则修改为mysql_native_password:
成功连接MySQL数据库服务器后,依次输入如下语句:
对于用户root:
# 设置密码永不过期
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# 修改加密规则,并设置新的用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
#刷新权限
FLUSH PRIVILEGES;
对于新创建的用户yahui:
ALTER USER 'yahui'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; # @后的%表示任何主机
ALTER USER 'yahui'@'%' IDENTIFIED WITH mysql_native_password BY '新密码'; # @后的%表示任何主机
FLUSH PRIVILEGES; #刷新权限