windows版mysql8.0安装详解
准备去下载一个本地mysql服务器时,突然发现mysql从5.7瞬间升级为8.0了,那还等什么,直接下载下来玩玩先.下载地址:
https://dev.mysql.com/downloads/mysql/
下载完成后将其解压到自定义目录下,我所有的工具都保存在D:\tools,解压完成后会看见以下目录:
随后,配置环境变量(我的电脑点右键,然后点属性,然后点击环境变量),步骤如下:
此时,环境变量配置完成,接下来进行安装mysql的操作.
首先可以看见安装目录下没有my.ini文件或者my-default.ini文件,于是自己在安装目录下创建一个my.ini文件,文件内容如下:
-
[mysqld]
-
# 设置3306端口
-
port=3306
-
# 设置mysql的安装目录
-
basedir=D:\\tools\mysql-8.0.11-winx64
-
# 设置mysql数据库的数据的存放目录
-
datadir=D:\\tools\mysql-8.0.11-winx64\Data
-
# 允许最大连接数
-
max_connections=200
-
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
-
max_connect_errors=10
-
# 服务端使用的字符集默认为UTF8
-
character-set-server=utf8
-
# 创建新表时将使用的默认存储引擎
-
default-storage-engine=INNODB
-
# 默认使用“mysql_native_password”插件认证
-
default_authentication_plugin=mysql_native_password
-
[mysql]
-
# 设置mysql客户端默认字符集
-
default-character-set=utf8
-
[client]
-
# 设置mysql客户端连接服务端时默认使用的端口
-
port=3306
-
default-character-set=utf8
当然,datadir和basedir文件夹的路径可以根据个人喜好配置,写好了my.ini文件此时,用管理员身份打开cmd窗口
然后先给mysql服务创建名称(方便到时候建立多个mysql服务时不冲突)
mysqld --install mysql8
名字可以根据自己的需要配置,然后就是mysql的初始化:
mysqld --initialize --console
会出现如上的一段,此时要记住自己的初始化密码,如果手残关掉太快了,可以把datadir(即我这里的Data文件夹)删掉,然后在初始化一次.
当然,有些人可能会在此时报错,弹出框如下:
此时你需要下载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
这两个地址亲测有效,如果不放心或者链接失效的话可以去百度或者我的****上下载,顺便赏我一丢丢币.嘻嘻
vc_redist.x64-VC2015运行库64位.exe: https://download.****.net/download/ycxzuoxin/10518759
vc_redist.x86-VC2015运行库32位.exe: https://download.****.net/download/ycxzuoxin/10518739
然后启动mysql服务,在CMD窗口输入指令:
net start mysql8
后面输入的是服务的名称,根据自己的情况写入.
此时我们就可以登录mysql去看看了,输入指令:
mysql - u root -p
然后它会让你输入密码,输入当时的初始化密码,就可以登录mysql了
弹出这样的信息就是登录成功了.此时我们可以输入更改密码指令更改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
BY后面输入的是你的新密码,我输入的root,方便进入,可以根据个人习惯配置密码.
此时密码更改成功后,我们可以看下用户信息:
select user,host,authentication_string from mysql.user;
可以看见此时数据库的root用户仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成"%".
但是我尝试了直接给root授权,但是总是失败,效果如下,不知是不是我的指令问题.
-
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
-
GRANT ALL ON *.* TO 'root'@'%';
于是我重新创建了个root用户并修改了权限.操作如下:
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
此时用我的mysql可视化工具连接,测试连接成功