第一步 解压
把文件解压到了指定目录下。如:C:\Program Files\MySQL\mysql-8.0.20-winx64;
第二步 了解把版本文件
mysql8.0版本的文件结构和5.7是一样的,没有提供初始化好的data文件夹,和没有提供默认的my.ini文件,下图为新建my.ini完整的文件结构(第三步);
第三步 配置my.ini
在mysql根目录新建data文件夹,创建my.ini文件;
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
#skip-grant-tables
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# mysql根目录 ---注意此处的斜杠是 /
basedir = D:/dev/mysql-8.0.12
# 数据文件存放目录 ---注意此处的斜杠是 /
datadir = D:/dev/mysql-8.0.12/data
# 端口,默认3306
port = 3386
# 服务实例的唯一标识
# server_id = MySQL
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character_set_server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3386
default-character-set=utf8mb4
初始化mysql
##遇到问题
初始化的时候,如果提示找不到data目录,通过mysql官方文档可以看出是basedir和datadir配置路径写法有问题;出现过找不到data目录的情况
出现过找不到data目录的情况
basedir = D:\dev\mysql-8.0.12
datadir = D:\dev\mysql-8.0.12\data
现在目录要这样写
basedir = D:/dev/mysql-8.0.12
datadir = D:/dev/mysql-8.0.12/data
##继续初始化MySQL
管理员运行cmd,并切换到mysql的bin目录或者直接打开目录在搜索框输入cmd确认即可,执行一下语句;
mysqld --initialize //如果初始化成功,data目录下会生成很多文件
##注册windows服务
mysqld --install MySQL82 #注册服务,MySQL82是服务名,根据自己的实际情况命名即可
mysqld --remove MySQL82 #移除服务
net start MySQL82 #启动服务,也可以通过服务管理界面进行操作
net stop MySQL82 #停止服务,也可以通过服务管理界面进行操作
第四步 登录
初始化完成后,在 .\mysql8.20\data目录下会生成一个.err后缀的文件,初始密码可以在此处查看;
#登录MySQL后执行以下sql
mysql -uroot -p
#回车后输入密码登录
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
#命令来修改密码
#修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
#只允许本地登录的账号密码 'root'@'localhost' ;
#允许远程登录的账号密码'root'@'%'
exit; #命令退出 MySQL,然后通过新密码再次登陆
CREATE user 'root'@'%' identified with mysql_native_password by 'root';
#创建允许远程的用户(使用root密码进行远程登录,‘%’表示允许所有地址远程,可以指定IP)
grant all privileges on *.* to 'root'@'%' with grant option; #给用户授权
flush privileges;#命令刷新修该后的权限
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
#更改密码有效期,永不过期
flush privileges; #命令刷新修该后的权限
exit; #命令退出
第五步 给自己鼓掌
恭喜恭喜!!!
部分内容参考其他博主,感谢,共勉!!!