写在前面:mysql不同版本安装方式不尽相同,但正因为某些安装细节方面有些差别,都会导致出错或失败,所以一定找对自己版本对应的安装教程。

简要步骤:

  1. 下载
  2. 解压
  3. 配置环境变量
  4. 创建my.ini文件
  5. 执行mysqld --initialize
  6. 执行mysqld --install
  7. 开启服务net start mysql
  8. 登录mysql
  9. 修改密码
  10. 完毕!

详细步骤:

  1. 下载
    官网下载:mysql-5.7.21免安装版下载地址
  2. mysql解压版详细视频安装教程 mysql5.5解压版安装教程_服务器


  3. 解压
    将zip文件解压到本地,本文解压到如下目录:E:\downloads\mysql\mysql-5.7.14-winx64
  4. 配置环境变量
    第一步: 新增系统环境变量
                    键名:MYSQL_HOME
                    值为:E:\downloads\mysql\mysql-5.7.14-winx64
    第二步:在Path中添加:%MYSQL_HOME%\bin,注意Path中不同值之间的“;”符号不能省略
     
  5. 创建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 //即为日志保存三天,三天之后过期的日志自动删除
  1. 注意:不需要创建data文件夹
  2. 执行mysqld --initialize
    在命令行执行:mysqld --initialize
    执行完毕后会在文件夹下生成一个data文件夹用来存储数据(初始密码为:data文件夹下后缀为err文件中的最后一行,赶紧复制保存)
  3. 执行mysqld --install
    在命令行执行:mysqld --install
  4. 开启服务net start mysql
    在命令行执行:net start mysql
  5. 登录mysql
    在命令行执行:mysql -u root –p
  6. 修改密码(注意: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;
  1. 完毕!
  2. 注意:如果mysql出现问题,执行mysqld -remove,在执行第5步之后的命令即可,密码没有变,数据也不会丢失。
  3. 注意:版本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