在 Windows 上采用ZIP压缩包安装 MySQL 8

记录一下 在window server平台上采用ZIP压缩安装 MySQL 8 的步骤和注意事项

目录

  • 说明
    • 参考官方文档
    • 支持的主流操作系统
    • 注意事项
    • 安装目录结构
  • 安装
    • ZIP包下载路径
    • 安装步骤
      • 1. 解压缩ZIP包至安装目录
      • 2. 创建选项文件
      • 3. 初始化
      • 4. 启动和关闭服务
        • 启动
        • 登录
        • 关闭
      • 5. 注册为window 服务

说明

为什么要采用ZIP包安装MySQL服务?

主要是很多情况下,安装过程中希望自己配置一些参数信息,例如数据文件目录、端口号、服务注册名称等。

参考官方文档

https://dev.mysql.com/doc/refman/8.0/en/windows-installation.html

支持的主流操作系统

https://www.mysql.com/support/supportedplatforms/database.html

注意事项

  • Large Table Support

    If you need tables with a size larger than 4GB, install MySQL on an NTFS or newer file system. Do not forget to use MAX_ROWS and AVG_ROW_LENGTH when you create tables. See Section 13.1.20, “CREATE TABLE Statement”.

    如果你的表数据预估会超过4G大小,则创建表时请使用 MAX_ROWS and AVG_ROW_LENGTH 选项

  • MySQL and Virus Checking Software

    记得在 MySQL 的安装目录或者数据文件目录下请不要安装其他应用程序,尤其是杀毒软件!

安装目录结构

不管哪一种的安装方式,MySQL 所需的目录文件夹名称如下表所示,请确保这些文件目录有访问权限(可读写)。

目录 目录中的文件说明 备注
bin MySQL 的各种命令,服务程序
%PROGRAMDATA%\MySQL\MySQL Server 8.0\ Log files, databases 所有日志文件和数据库默认存放目录 %PROGRAMDATA% 是window的系统变量,默认为 C:\ProgramData. 当然可以指定其他目录作为数据目录
docs Release documentation
include Include (header) files 头文件
lib Libraries 库文件
share 其他支持文件,包括错误消息、字符集文件、示例配置文件、用于数据库安装的SQL

安装

ZIP包的名称一般为 mysql-VERSION-winx64.zip ,该方式安装需要手动配置各项参数。

参考文档: https://dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html

ZIP包下载路径

官方 ZIP包下载路径: https://dev.mysql.com/downloads/mysql/

安装步骤

1. 解压缩ZIP包至安装目录

Extract the main archive to the desired install directory

Optional: also extract the debug-test archive if you plan to execute the MySQL benchmark and test suite

计划 解压缩到 E:\mysql8目录下
在 Windows 上采用ZIP压缩包安装 MySQL 8_第1张图片

2. 创建选项文件

Create an option file

我们计划将数据目录设定为 E:\mysql8\data ,如果data目录不存在可手动创建。

默认MySQL的目录文件存放在 C:\Program Files\MySQL\MySQL Server 8.0\data

我们需要创建MySQL选项文件,也是MySQL启动时读取的配置文件: my.ini

MySQL加载选项文件的路径选择和顺序如下 : 优先选择 my.ini

选项文件路径 哪种情况下选项文件被加载 被加载的优先级
%WINDIR%\my.ini,
%WINDIR%\my.cnf
Global options 全局,任何环境下启动MySQL 1 优先加载
C:\my.ini,
C:\my.cnf
Global options 全局,任何环境下启动MySQL 2
BASEDIR \my.ini,
BASEDIR \my.cnf
Global options 全局,任何环境下启动MySQL 3
defaults-extra-file The file specified with --defaults-extra-file, if any 4
%APPDATA%\MySQL\.mylogin.cnf Login path options (clients only) 5
DATADIR\mysqld-auto.cnf System variables persisted with SET PERSIST or SET PERSIST_ONLY (server only) 6

注意 : 如果你的C盘不是window的系统盘,则选项文件必须为 my.ini

我们计划直接在 E:\mysql8下创建 my.ini ,即采用第3级别的加载方式,同时保证 1、 2级别没有选项文件。

my.ini文件内容常用如下:

[client]
port	= 3309
socket	= E:/mysql8/data/mysqld.sock

[mysqld]
port = 3309
basedir = E:/mysql8
datadir = E:/mysql8/data
log-error = E:/mysql8/data/error.log
pid-file =  E:/mysql8/data/mysqld.pid

#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"

#设置client连接mysql时的字符集,防止乱码
init_connect ='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M

server-id = 110
#开启bin log 功能

log-bin=mysql-bin
#binlog 记录内容的方式,记录被操作的每一行
binlog_format = ROW

#对于binlog_format = ROW模式时,FULL模式可以用于误操作后的flashBack。
#如果设置为MINIMAL,则会减少记录日志的内容,只记录受影响的列,但对于部分update无法flashBack
binlog_row_image = FULL

#bin log日志保存的天数
#如果 binlog_expire_logs_seconds 选项也存在则 expire_logs_days 选项无效
#expire_logs_days 已经被标注为过期参数
#expire_logs_days = 7
binlog_expire_logs_seconds = 1209600

log_replica_updates
relay_log_recovery = 1
replica_skip_errors = ddl_exist_errors

#控制 redolog 写磁盘频率 默认为1
innodb_flush_log_at_trx_commit = 1
#控制 binlog 写磁盘频率
sync_binlog = 1

[mysqldump]
quick
max_allowed_packet = 128M

注意windows系统中的my.ini 目录路径采用 斜杠/ 或者双反斜杠 \\

备注: 选项文件中没有设置的系统变量MySQL将采用默认值,其他参数根据需求设置,

系统变量默认值是多少,请参看:https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html

3. 初始化

参考文档: https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html

CMD命令行模式下,进入目录 E:\mysql8\bin 执行如下命令:

mysqld --defaults-file=E:\mysql8\my.ini --initialize  --console

或者

mysqld --defaults-file=E:\mysql8\my.ini --initialize-insecure   --console
初始化方式 说明
--initialize 会生成root账号的随机密码 root登录时采用 mysql -u root -p 进行密码输入验证
--initialize-insecure 则不会生成密码,root登录时采用 mysql -u root --skip-password 跳过密码验证. 登录mysql后给root用户增加密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password'

效果图:
在 Windows 上采用ZIP压缩包安装 MySQL 8_第2张图片

4. 启动和关闭服务

启动

CMD命令行模式下,进入目录 E:\mysql8\bin 执行如下命令启动MySQL服务:

mysqld --console

效果图:
在 Windows 上采用ZIP压缩包安装 MySQL 8_第3张图片

备注:根据需要,可将MySQL bin目录加入window系统变量里面去。

登录

如果采用的是 --initialize-insecure 初始化的则采用如下方式登录:

mysql -u root --skip-password 

登录之后赶紧设置一下root账号的密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
mysql> FLUSH PRIVILEGES;

建议一个业务数据库一个用户,这里可以创建一个测试数据库,测试用户,mysql8默认innodb ut8mb4

mysql> CREATE DATABASE mytest;
mysql> CREATE USER 'mydev'@'%' IDENTIFIED BY 'mydev123';
mysql> grant all on mytest.* to 'mydev'@'%' with grant option;
mysql> FLUSH PRIVILEGES;

关闭

CMD命令行模式下,进入目录 E:\mysql8\bin 执行如下命令关闭MySQL服务:

mysqladmin -u root shutdown -p

5. 注册为window 服务

  1. 先关闭 MySQL服务
mysqladmin -u root shutdown -p
  1. 注册service服务
mysqld --install MySQL8 --defaults-file=E:\mysql8\my.ini
  1. 启动service服务
 sc start MySQL8

OR

 NET START MySQL8

效果演示:


E:\mysql8\bin>mysqld --install MySQL8 --defaults-file=E:\mysql8\my.ini
Service successfully installed.

E:\mysql8\bin>net start mysql8
MySQL8 服务正在启动 ...
MySQL8 服务已经启动成功。

  1. 如果要删除service服务可以执行下面命令
 SC DELETE MySQL8

OR

mysqld --remove

thanks over !

你可能感兴趣的:(mysql,mysql,windows,zip,安装)