写在前面:mysql不同版本安装方式不尽相同,但正因为某些安装细节方面有些差别,都会导致出错或失败,所以一定找对自己版本对应的安装教程。
简要步骤:
- 下载
- 解压
- 配置环境变量
- 创建my.ini文件
- 执行mysqld --initialize
- 执行mysqld --install
- 开启服务net start mysql
- 登录mysql
- 修改密码
- 完毕!
详细步骤:
- 下载
官网下载:mysql-5.7.21免安装版下载地址 - 解压
将zip文件解压到本地,本文解压到如下目录:E:\downloads\mysql\mysql-5.7.14-winx64 - 配置环境变量
第一步: 新增系统环境变量
键名:MYSQL_HOME
值为:E:\downloads\mysql\mysql-5.7.14-winx64
第二步:在Path中添加:%MYSQL_HOME%\bin,注意Path中不同值之间的“;”符号不能省略
- 创建my.ini文件
新建一个txt文档,另存为my.ini,放在MySQL安装目录下,内容为:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=E:\downloads\mysql\mysql-5.7.21-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\downloads\mysql\mysql-5.7.21-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集,注意8.0以上版本需要设置为utf8mb4
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置默认时区
default-time_zone='+8:00'
#注意:以下配置可以在支持其他功能的时候再单独配置,配置以上参数就ok了
#1.用在数据备份:允许使用select into outfile 来导出数据,并且文本放在何处也没有限制
secure_file_priv=
#2.用在二进制日志:使用二进制日志进行备份或者使用复制功能需要用到。
#开启二进制日志,还需要启用一些其他参数来保证最为安全和正确地记录二进制日志
log-bin=mysql-bin
sync_binlog=1
#mysql5.7版本只设置了全局系统变量log_bin,没有设置全局系统变量server_id的话,那么MySQL启动不了
server-id = 1
#此参数是设置日志的过期天数,过期的日志将会被自动删除,这有利于减少我们管理日志的工作量,需要修改my.cnf
EXPIRE_LOGS_DAYS = 3 //即为日志保存三天,三天之后过期的日志自动删除
- 注意:不需要创建data文件夹
- 执行mysqld --initialize
在命令行执行:mysqld --initialize
执行完毕后会在文件夹下生成一个data文件夹用来存储数据(初始密码为:data文件夹下后缀为err文件中的最后一行,赶紧复制保存) - 执行mysqld --install
在命令行执行:mysqld --install - 开启服务net start mysql
在命令行执行:net start mysql - 登录mysql
在命令行执行:mysql -u root –p - 修改密码(注意:5.7和8.0及以上版本修改密码的命令不同)
5.7
mysql> use mysql
mysql> update user set password=password('root') where user='root';
mysql> flush privileges;
8.0
mysql> alter user 'root'@'localhost' identified by '新密码';
mysql> flush privileges;
- 完毕!
- 注意:如果mysql出现问题,执行mysqld -remove,在执行第5步之后的命令即可,密码没有变,数据也不会丢失。
- 注意:版本mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空。
jdbc的URL:jdbc:mysql://[IP]:[PORT]/[DB]?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
应用运行一段时间后,发现数据库中登记的时间和正常的时间不一致。
原因:serverTimezone=UTC错误
应该修改为:serverTimezone=GMT%2B8 备注:因为+号符号在url中无法使用,需要转换为%2B