(借鉴了csdn大佬:一个有灵魂的程序员的博客)
一、文件下载
首先去官网下载社区版压缩文件。官网地址:MySQL :: Download MySQL Community Server
https://dev.mysql.com/downloads/mysql/
选择好相应的版本号和对应的操作系统,点击选中的文件下载。
下载好的zip文件解压到自定义的全英文路径下。例如:C:\Program Files\mysql-8.0.35-winx64
二、创建配置文件my.ini
在和bin同级目录创建文件 my.ini(注意必须是这个名字)
复制以下文本去my.ini文档中:
------------------------------------------(分割线不算)
设置3306端口
port=3306
设置mysql的安装目录
basedir=C:\Program Files\mysql-8.0.35-winx64\database
设置mysql数据库的数据的存放目录
datadir=C:\Program Files\mysql-8.0.35-winx64\database\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
--------------------------------------------(分割线不算)
在bin同级目录下创建文件夹database(与上面配置文件中的basedir一致)
进入上述database文件夹下新建文件夹data(与上面配置文件中的datadir一致)
三、环境配置
(win+s:环境变量)
在系统变量的Path中添加,
文本框输入C:\Program Files\mysql-8.0.35-winx64(实际安装位置)
四、配置mysql服务
进入上面配置的安装目录 C:\Program Files\mysql-8.0.35-winx64
输入命令mysqld --initialize --console初始化数据库。记住最后temporary password is generated for root@localhost:后面生成的随机密码。
输入命令mysqld --install 安装mysql服务。
输入命令 net start mysql`启动mysql服务器。
输入命令mysql -u root -p按回车键后输入随机临时密码。
输入命令ALTER USER root@localhost IDENTIFIED BY '新密码';修改密码
exit命令退出mysql
net stop mysql关闭mysql服务。
至此mysql-8.0.35-winx64 zip 版安装就结束了。。。NO!我们还要用客户端连接测试一下。
五、测试连接
打开数据库客户端,新建一个mysql数据库连接
输入连接名、主机、密码,点击测试连接,弹出连接成功。
至此mysql-8.0.35-winx64 zip 版从下载、安装、客户端连接测试整个过程都结束了。
(题外话,我是跟着up主一步步做的,前面都没问题,只是客户端我有点情况,因为我是用的mysqlworkbench8.0(以下简称bench),出于一些目的,必须用它而已)
然后就出现了这种情况,我还在解决ing……
突然想到了什么
bench只能和mysql8.0匹配,因为我之前用的8.4,所以怎么也连接不上,最后才下了8.0的mysql,因为是压缩包,所以才有了以上的所有配置操作,但是呢我安装bench的时候,好像是配置了一个什么路径,但是那个路径是8.4版本的,现在我是8.0版本,也许是那里的问题。我试试。
成功了,但也许不是这个问题,而是我mysql压根没开!!!!
所以呀,bug可能会出现在最不可思议的地方,忽略了源头。
哎,不对,这是因为我关闭了数据库服务,才导致连接的时候出问题,可是大佬自己的地方也是关闭了呀,客户端不就是可以自己启动服务吗?为什么呢?
测试了,我必须开启mysql 的服务才能成功连接。
也许是大佬自己忘记告诉我 测试连接的时候要开着mysql服务了哈哈哈哈。
以上。