欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

windows版mysql8.0安装详解

程序员文章站 2022-04-09 23:12:03
...

windows版mysql8.0安装详解

        准备去下载一个本地mysql服务器时,突然发现mysql从5.7瞬间升级为8.0了,那还等什么,直接下载下来玩玩先.下载地址:

https://dev.mysql.com/downloads/mysql/

        windows版mysql8.0安装详解

下载完成后将其解压到自定义目录下,我所有的工具都保存在D:\tools,解压完成后会看见以下目录:

windows版mysql8.0安装详解

随后,配置环境变量(我的电脑点右键,然后点属性,然后点击环境变量),步骤如下:

windows版mysql8.0安装详解

windows版mysql8.0安装详解

此时,环境变量配置完成,接下来进行安装mysql的操作.

首先可以看见安装目录下没有my.ini文件或者my-default.ini文件,于是自己在安装目录下创建一个my.ini文件,文件内容如下:

  1. [mysqld]
  2. # 设置3306端口
  3. port=3306
  4. # 设置mysql的安装目录
  5. basedir=D:\\tools\mysql-8.0.11-winx64
  6. # 设置mysql数据库的数据的存放目录
  7. datadir=D:\\tools\mysql-8.0.11-winx64\Data
  8. # 允许最大连接数
  9. max_connections=200
  10. # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
  11. max_connect_errors=10
  12. # 服务端使用的字符集默认为UTF8
  13. character-set-server=utf8
  14. # 创建新表时将使用的默认存储引擎
  15. default-storage-engine=INNODB
  16. # 默认使用“mysql_native_password”插件认证
  17. default_authentication_plugin=mysql_native_password
  18. [mysql]
  19. # 设置mysql客户端默认字符集
  20. default-character-set=utf8
  21. [client]
  22. # 设置mysql客户端连接服务端时默认使用的端口
  23. port=3306
  24. default-character-set=utf8

当然,datadir和basedir文件夹的路径可以根据个人喜好配置,写好了my.ini文件此时,用管理员身份打开cmd窗口

windows版mysql8.0安装详解

然后先给mysql服务创建名称(方便到时候建立多个mysql服务时不冲突)

mysqld --install mysql8

名字可以根据自己的需要配置,然后就是mysql的初始化:

mysqld --initialize --console

windows版mysql8.0安装详解

会出现如上的一段,此时要记住自己的初始化密码,如果手残关掉太快了,可以把datadir(即我这里的Data文件夹)删掉,然后在初始化一次.

windows版mysql8.0安装详解

当然,有些人可能会在此时报错,弹出框如下:

windows版mysql8.0安装详解

此时你需要下载VC++2015运行包:

vc_redist.x64-VC2015运行库64位.exe: https://page86.ctfile.com/fs/10806086-214297222

vc_redist.x86-VC2015运行库32位.exe: https://page86.ctfile.com/fs/10806086-214296515

这两个地址亲测有效,如果不放心或者链接失效的话可以去百度或者我的CSDN上下载,顺便赏我一丢丢币.嘻嘻

vc_redist.x64-VC2015运行库64位.exe: https://download.csdn.net/download/ycxzuoxin/10518759

vc_redist.x86-VC2015运行库32位.exe: https://download.csdn.net/download/ycxzuoxin/10518739

        然后启动mysql服务,在CMD窗口输入指令:

net start mysql8

后面输入的是服务的名称,根据自己的情况写入.

windows版mysql8.0安装详解

此时我们就可以登录mysql去看看了,输入指令:

mysql - u root -p

windows版mysql8.0安装详解

然后它会让你输入密码,输入当时的初始化密码,就可以登录mysql了

windows版mysql8.0安装详解

弹出这样的信息就是登录成功了.此时我们可以输入更改密码指令更改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

BY后面输入的是你的新密码,我输入的root,方便进入,可以根据个人习惯配置密码.

此时密码更改成功后,我们可以看下用户信息:

select user,host,authentication_string from mysql.user;

windows版mysql8.0安装详解

可以看见此时数据库的root用户仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成"%".

但是我尝试了直接给root授权,但是总是失败,效果如下,不知是不是我的指令问题.

  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
  2. GRANT ALL ON *.* TO 'root'@'%';

windows版mysql8.0安装详解

于是我重新创建了个root用户并修改了权限.操作如下:

create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'  
这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址
 
2.flush privileges;          
这句表示从mysql数据库的grant表中重新加载权限数据

因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。

执行完这两步,再次查询用户表命令:
select  User,authentication_string,Host from user

发现多了一个用户,该用户所有的主机都可以访问,此时再次用sqlyog访问连接成功!
从MySQL 8开始,您不再可以(隐式)使用GRANT命令创建用户.请改用CREATE USER,然后使用GRANT声明:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

windows版mysql8.0安装详解

此时用我的mysql可视化工具连接,测试连接成功

windows版mysql8.0安装详解