1.下载并解压缩
解压缩 mysql-8.0.16-winx64.zip
我的目录是
D:\Program Files\mysql-8.0.16-winx64
2.自制一个配置文件
在解压的根目录内创建一个文本文件,命名为:my.ini
内容如下:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
#选项可以禁用dns解析,但是,这样不能在mysql的授权表中使用主机名了,只能使用IP(用于解决2013错误)
skip-name-resolve
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\Program Files\\mysql-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\Program Files\\mysql-winx64\\data
#设置协议认证方式(更改默认加密方式) 版本<8.4可用该配置
#default_authentication_plugin=mysql_native_password
#8.4版本
mysql_native_password=ON
# 允许最大连接数
max_connections=200
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#设置缓存池(提升性能)
innodb_buffer_pool_size=4G
#binlog日志留存天数(非主从可保留较少天数)版本<8.4可用该配置
#expire_logs_days = 1
注意:
默认的密码加密方式是:caching_sha2_password,而目前许多数据库管理软件还不支持这种加密认证方式,连接测试的时候就会报错:client does not support authentication protocol requested by server; consider upgrading MySQL client,这里的错误信息就是不支持身份认证方式。
解决方案:在my.ini里面在 [mysqld] 节点下添加:
default_authentication_plugin=mysql_native_password
3.运行命令:初始化
初始化命令: mysqld --initialize --console
输入该命令后,mysql根目录会自动生成一个data文件夹,并在控制台中显示如下内容:
在第四行末尾位置会有一个随即生成的默认密码,这里需要记录下来。
如果没有记住或者意外关闭了,就删除data文件夹,重新执行该命令即可。
4.安装并启动服务
安装命令:mysqld install mysql
启动服务:net start mysql
5.登录数据库
登录命令:mysql -uroot -p
一、可能会遇到 Access denied for user 'ODBC'@'localhost' (using password: YES)之类的问题,
解决方案:
1.服务没开;
2.保证一定是先执行初始化命令再安装启动,否则密码是不生效的;
3.密码输入错误;(注:系统随机生成的密码前面的空格不算)
二、可能会出现报错:Host '127.0.0.1' is not allowed to connect to this MySQL server
解决方案:
则将my.ini文件中 skip-name-resolve 注释掉即可(配置注释中有说明)
6.修改默认密码
通过输入生成的随即的密码以登录进数据库后,修改密码:
ALTER USER root@localhost IDENTIFIED BY '123456';
一、可能遇到Navcat 无法连接的情况: Authentication plugin 'caching_sha2_password' cannot be loaded.
MySQL8 之前的版本中加密规则是mysql_native_password,而在MySQL8之后,加密规则是caching_sha2_password,解决问题方法有两种:
一种是升级navicat驱动;
二是把mysql用户登录密码加密规则还原成mysql_native_password
#修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
#更新一下用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
#再次修改密码,以使用新策略
ALTER USER root@localhost IDENTIFIED BY '123456';
#刷新权限
FLUSH PRIVILEGES;
到这里基本就可以正常使用Mysql8.0了。