首页 > 编程知识 正文

mysql8018安装windows,mysql8.0安装教程windows10

时间:2023-05-05 12:27:48 阅读:255763 作者:3008

mysql官网

 

找到下载-->拉到最下面找到社区版下载-->下载

下面是我下载好的

度盘链接

提取码:sws3

解压到指定目录

此时解压后的文件中没有data目录和ini文件

然后做环境变量,也可以最后再做

win7和windows server 2008 r2做环境变量都是在Path里用分号隔开前面的路径,直接加上mysql的frdjb目录绝对路径即可,win10直接新建一个。

在安装目录下创建一个my.ini文件,文件内容如下:

[Client]
port = 3306

[mysqld]

#设置端口
port = 3306

#指定server-id
server-id = 1

#开启frdjblog日志
log-frdjb=mysql-frdjb

#指定中继日志名字
relay-log=relay-log

#跳过密码验证
# skip-grant-tables

# 设置mysql的安装目录
basedir=C:mysql2mysql-5.7.26-winx64

# 设置mysql数据库的数据的存放目录
datadir=C:mysql2mysql-5.7.26-winx64data

#frdjb log日志每达到设定大小后,会使用新的frdjb log日志
max_frdjblog_size = 200M

#保留指定日期范围内的frdjb 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也可以自定义。

进入frdjb目录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';

创建用户:

CREATE USER root@'%' IDENTIFIED BY '123456';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 用户的认证方式

# 修改加密规则> ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;# 更新用户密码> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';# 赋予 root 用户最高权限> grant all privileges on *.* to root@'%' with grant option;# 刷新权限> flush privileges;

完成。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。