找到下载-->拉到最下面找到社区版下载-->下载
下面是我下载好的
提取码:sws3
解压到指定目录
Mysql国内镜像:Index of /mysql/MySQL-8.0/
此时解压后的文件中没有data目录和ini文件
然后做环境变量,也可以最后再做
win7和windows server 2008 r2做环境变量都是在Path里用分号隔开前面的路径,直接加上mysql的bin目录绝对路径即可,win10直接新建一个。
在安装目录下创建一个my.ini文件,文件内容如下:
[Client]
port = 3306
[mysqld]
#设置端口
port = 3306
#指定server-id
server-id = 1
#开启binlog日志
log-bin=mysql-bin
#指定中继日志名字
relay-log=relay-log
#跳过密码验证
# skip-grant-tables
# 设置mysql的安装目录
basedir=C:\mysql2\mysql-5.7.26-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql2\mysql-5.7.26-winx64\data
#bin log日志每达到设定大小后,会使用新的bin log日志
max_binlog_size = 200M
#保留指定日期范围内的bin log历史日志,以下设置的15天内
expire_logs_days = 15
# 允许最大连接数
max_connections=200
#设置提交方式(自动提交)
autocommit=1
#隔离级别(读已提交)
transaction-isolation = READ-COMMITTED
#STRICT_TRANS_TABLES在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制
#NO_ENGINE_SUBSTITUTION如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常。
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
根据自己的需求选择需要的复制过去就行,那个跳过密码验证在8.0版本好像用不了了,安装路径和data目录根据自己的修改,端口和server-id也可以自定义。
进入bin目录shift+邮件打开cmd命令窗口,如果已经做了环境变量那随意在哪里打开。
mysqld --install mysql8
先给mysql服务创建名称(方便到时候安装多个mysql服务时不冲突)
mysql初始化:(执行完该条命令data目录就会生成了)
mysqld --initialize --console
哦豁,我在这里报错了,系统缺少Microsoft.Net.Framework的安装。
官网下载Microsoft.Net.Framework的安装:
https://www.microsoft.com/zh-CN/download/details.aspx?id=49981
安装Visual C++ Redistributable for Visual Studio 2015
去微软官网下载Visual C++ Redistributable for Visual Studio 2015
下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
下面我下载好的:
提取码:bzls
再来初始化:
记一下初始密码,如果不小心关掉了密码没保存那就删掉data目录重新初始化。
启动mysql服务
net start mysql8
输入先前的初始密码登录,然后修改密码,并且创建一个所有用户可登录的root用户,如果不创建的话root用户只能本地登录,无法远程连接,就用不了SQLyog之类的工具了。
查询当前mysql版本:
select version();
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
创建用户:
1. CREATE USER root@'%' IDENTIFIED BY '123456'; 2. GRANT ALL ON *.* TO 'root'@'%';
恩..先前版本的一些sql语句不能用了,一开始我还以为是哪个地方打错了,查了一下才知道是改了。
到这里原本以为应该是完了,不过远程登录一测试,又发现:
好吧,我这个是5.7版本的mysql,低版本的客户端认 mysql_native_password 认证插件,而高版本认 caching_sha2_password 插件,解决方法:
查看默认的密码认证插件:
show variables like 'default_authentication_plugin';
查看当前所有用户绑定的认证插件:
select host,user,plugin from mysql.user;
更改 root 用户的认证方式
1. # 修改加密规则 2. > ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; 3. # 更新用户密码 4. > ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 5. # 赋予 root 用户最高权限 6. > grant all privileges on *.* to root@'%' with grant option; 7. # 刷新权限 8. > flush privileges;
完成。