记录在 Windows 上,按照文档安装 MySQL-8.0.20 压缩版的安装步骤
MySQL 文档地址:https://dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html
步骤
解压到指定目录
在解压目录下新建 my.ini 配置数据库
[mysqld]
# The port number to use when listening for TCP/IP connections. defult value=3306
port=3307
# set basedir to your installation path
basedir=D:/Database/MySQL/mysql-8.0.20
# set datadir to the location of your data directory
datadir=D:/Database/MySQL/mysql-8.0.20/data
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
使用 --initialize 初始化
进入解压目录 D:\Database\MySQL\mysql-8.0.20\bin 使用 MySQL 的命令行工具 (为了方便使用,可以将 bin 目录的路径加入 Windows 系统的环境变量的Path)
mysqld --initialize --console # 使用 `--console 会在命令行显示生成的初始 root 密码`
# 若配置文件在其它路径,可指定 `--defaults-file`
mysqld --defaults-file=
--initialize --console
首次启动服务器
mysqld --console
# 看到类似于以下消息 `ready for connections. Version: '8.0.20' socket: '' port: 3307 MySQL Community Server - GPL.`说明服务器已准备好为客户端连接提供服务
# 修改密码:
mysql -u root -h localhost -P 3307 -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.20
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> \s
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
Query OK, 0 rows affected (0.16 sec)
将 MySQL 作为 Windows 服务启动
在将MySQL作为Windows服务安装之前,如果正在使用以下命令运行当前服务器,则应首先停止它:
> mysqladmin -u root -h localhost -P 3307 -p shutdown
Enter password:
以管理员身份安装服务启动
> mysqld --install MySQL82
Service successfully installed.
> sc start MySQL82
SERVICE_NAME: MySQL82
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x3
WAIT_HINT : 0x3a98
PID : 17488
FLAGS :
试用可视化工具连接
查看
mysql> \s
--------------
mysql Ver 8.0.20 for Win64 on x86_64 (MySQL Community Server - GPL)
Connection id: 22
Current database:
Current user: root@localhost
SSL: Cipher in use is TLS_AES_256_GCM_SHA384
Using delimiter: ;
Server version: 8.0.20 MySQL Community Server - GPL
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 3307
Binary data as: Hexadecimal
Uptime: 1 hour 2 min 37 sec
Threads: 3 Questions: 101 Slow queries: 0 Opens: 205 Flush tables: 3 Open tables: 126 Queries per second avg: 0.026
--------------
mysql> SHOW VARIABLES LIKE '%STORAGE_ENGINE%';
+---------------------------------+-----------+
| Variable_name | Value |
+---------------------------------+-----------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| disabled_storage_engines | |
| internal_tmp_mem_storage_engine | TempTable |
+---------------------------------+-----------+
4 rows in set, 1 warning (0.00 sec)
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host | user | plugin | authentication_string |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | caching_sha2_password | $A$005$e^{6_{AF2 Hjw?QyiWzmvfv74fWkpvoHUE6YDtFsQKifDOtKKY/tz4.n9ZEA |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)
文档
创建 data 目录和配置文件
创建选项文件:
用来指定数据库服务器的安装目录和数据存放位置
调整服务器设置,例如内存,缓存或InnoDB配置信息
当 MySQL 服务器在 Windows 上启动时,它将在多个位置中查找选项文件,例如 Windows 目录 C:\,和MySQL安装目录(有关位置的完整配置值说明列表,请参见 第4.2.2.2节“使用选项文件”)。MySQL 首先在 my.ini 文件中的每个位置中查找选项,然后在 my.cnf 文件中查找。但是,为避免混淆,最好仅使用一个文件。
在Windows上,MySQL程序以指定的顺序从下表中显示的文件中读取启动选项(首先读取的文件优先,随后读取的文件优先)。
文档名称
目的
%WINDIR%\my.ini,%WINDIR%\my.cnf
全局选项
C:\my.ini,C:\my.cnf
全局选项
BASEDIR\my.ini,BASEDIR\my.cnf
全局选项
defaults-extra-file
%APPDATA%\MySQL.mylogin.cnf
登录路径选项(仅客户端
DATADIR\mysqld-auto.cnf
使用MySQL发行版中随附的示例选项文件。请参见 第5.1.2节“服务器配置默认值”。
ZIP包不包含 data 目录。要通过创建数据目录并填充mysql系统数据库中的表来初始化MySQL安装,请使用 --initialize。有关更多信息,请参见 第2.10.1节“初始化数据目录”。
使用 --initialize 了 “ 默认安全 ”安装(即包括生成随机初始的 root密码)在这种情况下,密码被标记为已过期,将需要选择一个新密码。
将MySQL作为Windows服务启动
在将MySQL作为Windows服务安装之前,如果正在使用以下命令运行当前服务器,则应首先停止它:
mysqladmin -u root -h localhost -P 3307 -p shutdown
Enter password:
使用以下命令将服务器作为服务安装:mysqld --install
安装服务时,可以使用以下附加参数:
可以在该--install选项后立即指定服务名称 。默认服务名称为MySQL。
如果提供了服务名称,则可以在其后跟一个选项。按照惯例,这应该是 指定选项文件的名称,服务器在启动时应从中读取选项。 --defaults-file=file_name 但不鼓励使用单个选项 。--defaults-file 更加灵活,因为它可以通过将服务器放置在命名选项文件中来为服务器指定多个启动选项。
作为更复杂的示例,请考虑以下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"
--install MySQL --defaults-file=C:\my-opts.cnf
启动服务
将MySQL服务器实例作为服务安装后,Windows 会在 Windows 启动时自动启动该服务。也可以从“ 服务”实用程序或使用 sc startmysqld_service_name 或 NET START mysqld_service_name 命令立即启动该 服务。SC和NET 命令不区分大小写。
MySQL服务器已作为服务安装且服务正在运行时,Windows 会在 Windows 关闭时自动停止服务。也可以使用 Services 实用程序,`sc stopmysqld_service_name 命令,NET START mysqld_service_name 命令或 mysqladmin shutdown 命令手动停止服务器。
如果不希望在引导过程中自动启动该服务,也可以选择将服务器安装为手动服务。为此,请使用 mysqld --install-manual 选项而不是 --install 选项:
删除服务
要删除作为服务安装的服务器,请先通过运行SC STOP mysqld_service_name或 NET STOP mysqld_service_name 运行的服务器。然后使用 SC DELETE mysqld_service_name 将其删除。
或者,使用 mysqld --remove 选项删除服务
测试 MySQL 安装
可以通过执行以下任何命令来测试MySQL服务器是否正常工作:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqlshow"
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqlshow" -u root mysql
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin" version status proc
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" test
如果mysqld响应来自客户端程序的TCP / IP连接很慢,则DNS可能存在问题。在这种情况下,请 在 启用系统变量的情况下启动 mysqld,skip_name_resolve 并仅在MySQL授权表 localhost 的 Host 列中使用 IP 地址。(请确保存在指定IP地址的帐户,否则您可能无法连接。)
可以通过指定 --pipe 或 --protocol=PIPE 选项或通过指定.(句点)作为主机名来强制 MySQL 客户端使用命名管道连接而不是 TCP / IP。--socket 如果不想使用默认管道名称,请使用该选项指定管道名称。
如果已经为该root 帐户设置了密码,删除了匿名帐户或创建了一个新的用户帐户,那么要连接到 MySQL 服务器,您必须对前面显示的命令使用适当的 -u 和 -p 选项。请参见 第4.2.4节“使用命令选项连接到MySQL服务器”。
访问控制和帐户管理
MySQL支持创建帐户,该帐户允许客户端用户连接到服务器并访问服务器管理的数据。MySQL权限系统的主要功能是验证谁从给定主机连接用户,并与特权用户数据库如联想 SELECT, INSERT, UPDATE,和 DELETE。其他功能包括授予管理操作特权的能力。
要控制哪些用户可以连接,可以为每个帐户分配身份验证凭据,例如密码。用户界面MySQL账户由SQL语句如 CREATE USER, GRANT和 REVOKE。请参见 第13.7.1节“帐户管理对帐单”。