MySQL8 中文参考(四)
原文:
dev.mysql.com/doc/refman/8.0/en/MySQLInstallerConsole.html
2.3.3.5 MySQL Installer ���制台参考
MySQLInstallerConsole.exe提供类似于 MySQL Installer 的命令行功能。此参考包括:
-
MySQL 产品名称
-
命令语法
-
命令操作
当首次执行 MySQL Installer 时,控制台会被安装,然后在MySQL Installer for Windows目录中可用。默认情况下,目录位置为C:\Program Files (x86)\MySQL\MySQL Installer for Windows。您必须以管理员身份运行控制台。
要使用控制台:
-
通过从“开始”中选择“Windows 系统”,右键单击“命令提示符”,选择“更多”,然后选择“以管理员身份运行”来打开具有管理员权限的命令提示符。
-
从命令行,可选择将目录更改为MySQLInstallerConsole.exe命令所在的位置。例如,要使用默认安装位置:
cd Program Files (x86)\MySQL\MySQL Installer for Windows -
输入
MySQLInstallerConsole.exe(或mysqlinstallerconsole),然后跟随一个命令操作来执行任务。例如,要显示控制台的帮助:MySQLInstallerConsole.exe --help=================== Start Initialization =================== MySQL Installer is running in Community mode Attempting to update manifest. Initializing product requirements. Loading product catalog. Checking for product packages in the bundle. Categorizing product catalog. Finding all installed packages. Your product catalog was last updated at 23/08/2022 12:41:05 p. m. Your product catalog has version number 671. =================== End Initialization =================== The following actions are available: Configure - Configures one or more of your installed programs. Help - Provides list of available command actions. Install - Installs and configures one or more available MySQL programs. List - Lists all available MySQL products. Modify - Modifies the features of installed products. Remove - Removes one or more products from your system. Set - Configures the general options of MySQL Installer. Status - Shows the status of all installed products. Update - Updates the current product catalog. Upgrade - Upgrades one or more of your installed programs. The basic syntax for using MySQL Installer command actions. Brackets denote optional entities. Curly braces denote a list of possible entities. ...
MySQL 产品名称
许多MySQLInstallerConsole命令操作接受一个或多个缩写短语,这些短语可以匹配目录中的 MySQL 产品(或产品)。用于命令的当前一组有效的短语在下表中显示。
注意
从 MySQL Installer 1.6.7 (8.0.34) 开始,install、list 和 upgrade 命令选项不再适用于 MySQL for Visual Studio(现已停用)、MySQL 连接器/NET、MySQL 连接器/ODBC、MySQL 连接器/C++、MySQL 连接器/Python 和 MySQL 连接器/J。要安装更新的 MySQL 连接器,请访问 dev.mysql.com/downloads/。
表 2.6 用于 MySQLInstallerConsole.exe 命令的 MySQL 产品短语
| 短语 | MySQL 产品 |
|---|---|
server | MySQL 服务器 |
workbench | MySQL Workbench |
shell | MySQL Shell |
visual | MySQL for Visual Studio |
router | MySQL 路由器 |
backup | MySQL 企业备份(需要商业版本) |
net | MySQL 连接器/NET |
odbc | MySQL 连接器/ODBC |
c++ | MySQL 连接器/C++ |
python | MySQL 连接器/Python |
j | MySQL 连接器/J |
documentation | MySQL 服务器文档 |
samples | MySQL 示例(sakila 和 world 数据库) |
| 短语 | MySQL 产品 |
命令语法
MySQLInstallerConsole.exe 命令可以带有或不带有文件扩展名(.exe)发出,并且命令不区分大小写。
mysqlinstallerconsole[.exe] [[[--]action] [action_blocks_list] [options_list]]
描述:
*action*
允许的操作行为之一。如果省略,则默认操作等同于 --status 操作。对于所有操作,使用 -- 前缀是可选的。
可能的操作有:[--]configure、[--]help、[--]install、[--]list、[--]modify、[--]remove、[--]set、[--]status、[--]update 和 [--]upgrade。
*action_blocks_list*
一个块列表,每个块代表一个不同的项目,具体取决于所选操作。块之间用逗号分隔。
--remove 和 --upgrade 操作允许指定星号字符(*)表示所有产品。如果在此块的开头检测到 * 字符,则假定要处理所有产品,并忽略该块的其余部分。
语法:*|*action_block*[,*action_block*][,*action_block*]...
action_block:包含产品选择器,后跟数量不定的参数块,这些参数块根据所选操作的不同而表现不同(参见 Command Actions)。
*options_list*
零个或多个带有可能值的选项,用空格分隔。请参阅 Command Actions 以确定对应操作允许的选项。
语法:*option_value_pair*[ *option_value_pair*][ *option_value_pair*]...
option_value_pair:单个选项(例如,--silent)或具有选项前缀的键和相应值的元组。键值对的形式为 --*key*[=*value*]。
命令操作
MySQLInstallerConsole.exe 支持以下命令操作:
注意
包含冒号字符(:)的配置块(或参数块)值必须用引号括起来。例如,install_dir="C:\MySQL\MySQL Server 8.0"。
-
[--]configure [*product1*]:[*configuration_argument*]=[*value*], [*product2*]:[*configuration_argument*]=[*value*], [*...*]配置系统上的一个或多个 MySQL 产品。每个产品可以配置多个
configuration_argument=value对。选项:
--continue在处理包含每个产品参数的操作块时捕获错误时,继续处理下一个产品。如果未指定,在出现错误时整个操作将被中止。
--help显示相应操作的选项和可用参数。如果存在该操作不会被执行,只会显示帮助信息,因此其他与操作相关的选项也会被忽略。
--show-settings通过在
--show-settings后传入产品名称来显示所选产品的可用选项。--silent禁用确认提示。
示例:
MySQLInstallerConsole --configure --show-settings servermysqlinstallerconsole.exe --configure server:port=3307 -
[--]help显示带有用法示例的帮助消息,然后退出。传入额外的命令操作以接收特定于该操作的帮助。
选项:
--action=*[action]*显示特定操作的帮助信息。与使用带有操作的
--help选项相同。允许的值为:
all、configure、help(默认)、install、list、modify、remove、status、update、upgrade和set。--help显示相应操作的选项和可用参数。如果存在该操作,则仅显示帮助信息,不执行操作,因此其他与操作相关的选项也将被忽略。
示例:
MySQLInstallerConsole helpMySQLInstallerConsole help --action=install -
[--]install [*产品 1*]:[*功能*]:[*配置块*]:[*配置块*],[*产品 2*]:[*配置块*],[*...*]在系统上安装一个或多个 MySQL 产品。如果有预发布产品可用,当
--type选项值为Client或Full时,将安装 GA 和预发布产品。在使用这些设置类型时,使用--only_ga_products选项将产品集限制为仅 GA 产品。描述:
[*产品*]每个产品可以通过产品短语来指定,可以带有分号分隔的版本限定符,也可以不带。仅传入产品关键字会选择产品的最新版本。如果该版本的产品有多个架构可用,命令将返回清单列表中的第一个架构以供交互式确认。或者,您可以在产品关键字后使用
--silent选项传入确切的版本和架构(x86或x64)。[*功能*]默认情况下安装与 MySQL 产品关联的所有功能。功能块是一个以分号分隔的功能列表或选择所有功能的星号字符(
*)。要移除功能,请使用modify命令。[*配置块*]可指定一个或多个配置块。每个配置块是一个以分号分隔的键值对列表。一个块可以包含
config或user类型键;如果未定义,则config是默认类型。包含冒号字符(
:)的配置块值必须用引号括起来。例如,installdir="C:\MySQL\MySQL Server 8.0"。每个产品只能定义一个配置类型块。在产品安装期间应为要创建的每个用户定义一个用户块。注意
当重新配置产品时,不支持
user类型键。选项:
--auto-handle-prereqs如果存在,MySQL 安装程序会尝试下载和安装一些当前不存在的软件先决条件,可以通过最小干预解决。如果未使用
--silent选项,则会为每个先决条件显示安装页面。如果省略--auto-handle-prereqs选项,则不会安装缺少先决条件的软件包。--continue在处理每个产品的参数块时捕获错误时,继续处理下一个产品。如果未指定,则在出现错误时整个操作将中止。
--help显示相应操作的选项和可用参数。如果存在该选项,则仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。
--mos-password=*password*设置 My Oracle Support(MOS)用户的商业版 MySQL 安装程序密码。
--mos-user=*user_name*指定用于访问商业版 MySQL 安装程序的 My Oracle Support(MOS)用户名。如果不存在,则仅可安装捆绑包中的产品(如果有)。
--only-ga-products限制产品集以仅包括 GA 产品。
--setup-type=*setup_type*安装预定义的软件集。设置类型可以是以下之一:
-
Server: 安装单个 MySQL 服务器 -
Client: 安装客户端程序和库(不包括 MySQL 连接器) -
Full: 安装所有内容(不包括 MySQL 连接器) -
Custom: 安装用户选择的产品。这是默认选项。
注意
仅当未安装其他 MySQL 产品时,非自定义设置类型才有效。
--show-settings通过在
-showsettings后传入产品名称,显示所选产品的可用选项。--silent禁用确认提示。
示例:
mysqlinstallerconsole.exe --install j;8.0.29, net;8.0.28 --silentMySQLInstallerConsole install server;8.0.30:*:port=3307;server_id=2:type=user;user=foo一个示例,通过
^分隔传入额外的配置块以适应:MySQLInstallerConsole --install server;8.0.30;x64:*:type=config;open_win_firewall=true; ^ general_log=true;bin_log=true;server_id=3306;tcp_ip=true;port=3306;root_passwd=pass; ^ install_dir="C:\MySQL\MySQL Server 8.0":type=user;user_name=foo;password=bar;role=DBManager -
-
[--]list当此操作不带选项使用时,会激活一个交互式列表,可搜索所有可用的 MySQL 产品。输入
MySQLInstallerConsole --list并指定要搜索的子字符串。选项:
--all列出所有可用产品。如果使用此选项,则忽略所有其他选项。
--arch=*architecture*列出包含指定架构的产品。允许的值为:
x86,x64和any(默认)。此选项可与--name和--version选项结合使用。--help显示相应操作的选项和可用参数。如果存在该选项,则仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。
--name=*package_name*列出包含指定名称的产品(参见产品短语),此选项可与
--version和--arch选项结合使用。--version=*version*列出包含指定版本(如 8.0 或 5.7)的产品。此选项可以与
--name和--arch选项结合使用。示例:
MySQLInstallerConsole --list --name=net --version=8.0 -
[--]modify [*product1*:-*removelist*|+*addlist*], [*product2*:-*removelist*|+*addlist*] [*...`*]修改或显示先前安装的 MySQL 产品的特性。要显示产品的特性,请将产品关键字附加到命令后,例如:
MySQLInstallerConsole --modify server选项:
--help显示相应操作的选项和可用参数。如果存在,操作不会被执行,只会显示帮助信息,因此其他与操作相关的选项也会被忽略。
--silent禁用确认提示。
示例:
MySQLInstallerConsole --modify server:+documentationMySQLInstallerConsole modify server:-debug -
[--]remove [*product1*], [*product2*] [*...*]从系统中移除一个或多个产品。可以传入星号字符(
*)以一条命令移除所有 MySQL 产品。选项:
--continue即使发生错误也继续操作。
--help显示相应操作的选项和可用参数。如果存在,操作不会被执行,只会显示帮助信息,因此其他与操作相关的选项也会被忽略。
--keep-datadir在删除 MySQL Server 产品时跳过数据目录的移除。
--silent禁用确认提示。
示例:
mysqlinstallerconsole.exe remove *MySQLInstallerConsole --remove server --continue -
[--]set设置一个或多个可配置选项,影响 MySQL 安装程序连接到互联网的方式以及是否激活自动产品目录更新功能。
选项:
--catalog-update=*bool_value*启用(
true,默认)或禁用(false)自动产品目录更新。此选项需要与互联网的活动连接。--catalog-update-days=*int_value*接受介于 1(默认)和 365 之间的整数,表示 MySQL 安装程序启动时检查新目录更新之间的天数。如果
--catalog-update为false,则此选项将被忽略。--connection-validation=*validation_type*设置 MySQL 安装程序如何执行对互联网连接的检查。允许的值为
automatic(默认)和manual。--connection-validation-urls=*url_list*用双引号括起来并以逗号分隔的字符串,定义了在
--connection-validation设置为manual时用于检查互联网连接的 URL 列表。按照提供的顺序进行检查。如果第一个 URL 失败,则使用列表中的下一个 URL,依此类推。--offline-mode=*bool_value*启用 MySQL 安装程序以具有或不具有互联网功能运行。有效模式包括:
-
True以启用离线模式(无需互联网连接运行)。 -
False(默认)以禁用离线模式(需要互联网连接运行)。在下载产品目录或任何要安装的产品之前设置此模式。
--proxy-mode指定代理模式。有效模式包括:
-
Automatic以根据系统设置自动识别代理。 -
None以确保未配置代理。 -
Manual手动设置代理详细信息(--proxy-server、--proxy-port、--proxy-username、--proxy-password)。
--proxy-password用于认证到代理服务器的密码。
--proxy-port代理服务器使用的端口。
--proxy-server指向代理服务器的 URL。
--proxy-username用于认证到代理服务器的用户名。
--reset-defaults将与
--set操作相关联的 MySQL Installer 选项重置为默认值。示例:
MySQLIntallerConsole.exe set --reset-defaultsmysqlintallerconsole.exe --set --catalog-update=falseMySQLIntallerConsole --set --catalog-update-days=3mysqlintallerconsole --set --connection-validation=manual --connection-validation-urls="https://www.bing.com,http://www.google.com" -
-
[--]status提供系统上已安装的 MySQL 产品的快速概述。信息包括产品名称和版本、架构、安装日期和安装位置。
选项:
--help显示相应操作的选项和可用参数。如果存在,仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。
示例:
MySQLInstallerConsole status -
[--]update将最新的 MySQL 产品目录下载到您的系统。成功后,目录将在下次执行
MySQLInstaller或MySQLInstallerConsole.exe时应用。当距离上次检查已经过去*
n*天时,MySQL Installer 在启动时会自动检查产品目录更新。从 MySQL Installer 1.6.4 开始,默认值为 1 天。之前的默认值为 7 天。选项:
--help显示相应操作的选项和可用参数。如果存在,仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。
示例:
MySQLInstallerConsole update -
[--]upgrade [*product1*:*version*], [*product2*:*version*] [*...*]升级系统上的一个或多个产品。此操作允许使用以下字符:
*传入
*以将所有产品升级到最新版本,或传入特定产品。!将
!作为版本号传入,将 MySQL 产品升级到最新版本。选项:
--continue继续操作,即使发生错误。
--help显示相应操作的选项和可用参数。如果存在,仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。
--mos-password=*password*设置商业版本 MySQL Installer 的 My Oracle Support (MOS) 用户密码。
--mos-user=*user_name*指定用于访问 MySQL Installer 商业版本的 My Oracle Support (MOS) 用户名称。如果不存在,只有捆绑包中的产品可供安装。
--silent禁用确认提示。
示例:
MySQLInstallerConsole upgrade *MySQLInstallerConsole upgrade workbench:8.0.31MySQLInstallerConsole upgrade workbench:!MySQLInstallerConsole --upgrade server;8.0.30:!, j;8.0.29:!
2.3.4 在 Microsoft Windows 上使用 noinstall ZIP 存档安装 MySQL
原文:
dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html
2.3.4.1 提取安装存档
2.3.4.2 创建选项文件
2.3.4.3 选择 MySQL 服务器类型
2.3.4.4 初始化数据目录
2.3.4.5 第一次启动服务器
2.3.4.6 从 Windows 命令行启动 MySQL
2.3.4.7 自定义 MySQL 工具的 PATH
2.3.4.8 将 MySQL 作为 Windows 服务启动
2.3.4.9 测试 MySQL 安装
从noinstall包安装的用户可以使用本节中的说明手动安装 MySQL。从 ZIP 存档包安装 MySQL 的过程如下:
-
将主要存档解压到所需的安装目录
可选:如果您计划执行 MySQL 基准测试和测试套件,则还可以提取 debug-test 存档
-
创建一个选项文件
-
选择 MySQL 服务器类型
-
初始化 MySQL
-
启动 MySQL 服务器
-
保护默认用户帐户
该过程将在接下来的章节中描述。
原文:
dev.mysql.com/doc/refman/8.0/en/windows-extract-archive.html
2.3.4.1 提取安装存档
要手动安装 MySQL,请执行以下操作:
-
如果您正在从以前的版本升级,请在开始升级过程之前参考 Section 3.11, “Upgrading MySQL on Windows”。
-
确保您以具有管理员权限的用户登录。
-
选择安装位置。传统上,MySQL 服务器安装在
C:\mysql中。如果您没有在C:\mysql安装 MySQL,则必须在启动时或在选项文件中指定安装目录的路径。请参阅 Section 2.3.4.2, “Creating an Option File”。注意
MySQL 安装程序将 MySQL 安装在
C:\Program Files\MySQL下。 -
使用您喜欢的文件压缩工具将安装存档提取到选择的安装位置。一些工具可能会将存档提取到所选安装位置内的一个文件夹中。如果发生这种情况,您可以将子文件夹的内容移动到所选的安装位置。
原文:
dev.mysql.com/doc/refman/8.0/en/windows-create-option-file.html
2.3.4.2 创建一个选项文件
如果在运行服务器时需要指定启动选项,可以在命令行中指定它们或将它们放在选项文件中。对于每次服务器启动都使用的选项,最方便的方法可能是使用选项文件来指定 MySQL 配置。特别是在以下情况下:
-
安装或数据目录位置与默认位置(
C:\Program Files\MySQL\MySQL Server 8.0和C:\Program Files\MySQL\MySQL Server 8.0\data)不同。 -
你需要调整服务器设置,比如内存、缓存或 InnoDB 配置信息。
当 MySQL 服务器在 Windows 上启动时,它会在几个位置查找选项文件,比如 Windows 目录、C:\ 和 MySQL 安装目录(有关所有位置的完整列表,请参见第 6.2.2.2 节,“使用选项文件”)。Windows 目录通常被命名为类似C:\WINDOWS的东西。您可以通过以下命令使用WINDIR环境变量的值确定其确切位置:
C:\> echo %WINDIR%
MySQL 首先在每个位置的my.ini文件中查找选项,然后在my.cnf文件中查找。然而,为避免混淆,最好只使用一个文件。如果您的 PC 使用一个引导加载程序,其中C:不是引导驱动器,您唯一的选择是使用my.ini文件。无论使用哪个选项文件,它必须是一个纯文本文件。
注意
在使用 MySQL Installer 安装 MySQL 服务器时,它会在默认位置创建my.ini,并且执行 MySQL Installer 的用户被授予对这个新的my.ini文件的完全权限。
换句话说,确保 MySQL 服务器用户有权限读取my.ini文件。
你也可以利用随 MySQL 发行版附带的示例选项文件;参见第 7.1.2 节,“服务器配置默认值”。
选项文件可以使用任何文本编辑器创建和修改,比如记事本。例如,如果 MySQL 安装在E:\mysql,数据目录在E:\mydata\data,你可以创建一个包含[mysqld]部分以指定basedir和datadir选项值的选项文件:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data
Microsoft Windows 路径名在选项文件中使用(正斜杠)而不是反斜杠。如果使用反斜杠,需要双写:
[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data
有关选项文件值中反斜杠使用规则,请参见第 6.2.2.2 节,“使用选项文件”。
ZIP 归档文件不包括data目录。要通过创建数据目录并填充 mysql 系统数据库中的表来初始化 MySQL 安装,请使用--initialize或--initialize-insecure。有关更多信息,请参见 Section 2.9.1,“初始化数据目录”。
如果您想要在不同位置使用数据目录,您应该将data目录的所有内容复制到新位置。例如,如果您想要将E:\mydata作为数据目录,您必须执行两项操作:
-
将整个
data目录及其所有内容从默认位置(例如C:\Program Files\MySQL\MySQL Server 8.0\data)移动到E:\mydata。 -
每次启动服务器时使用
--datadir选项指定新数据目录位置。
原文:
dev.mysql.com/doc/refman/8.0/en/windows-select-server.html
2.3.4.3 选择 MySQL 服务器类型
以下表显示了 MySQL 8.0 中 Windows 可用的服务器。
| 二进制 | 描述 |
|---|---|
| mysqld | 优化的二进制文件,支持命名管道 |
| mysqld-debug | 类似于mysqld,但编译时带有完整调试和自动内存分配检查 |
所有前述的二进制文件都针对现代 Intel 处理器进行了优化,但应该在任何 Intel i386 级别或更高级别的处理器上运行。
发行版中的每个服务器都支持相同的存储引擎。SHOW ENGINES语句显示给定服务器支持哪些引擎。
所有 Windows MySQL 8.0 服务器都支持数据库目录的符号链接。
MySQL 在所有 Windows 平台上支持 TCP/IP。如果您启动具有named_pipe系统变量启用的服务器,则 Windows 上的 MySQL 服务器还支持命名管道。必须显式启用此变量,因为一些用户在使用命名管道时关闭 MySQL 服务器时遇到问题。默认情况下,无论平台如何,都使用 TCP/IP,因为在许多 Windows 配置中,命名管道比 TCP/IP 慢。
原文:
dev.mysql.com/doc/refman/8.0/en/windows-initialize-data-directory.html
2.3.4.4 初始化数据目录
如果您使用noinstall包安装了 MySQL,则不包含数据目录。要初始化数据目录,请使用第 2.9.1 节,“初始化数据目录”中的说明。
原文:
dev.mysql.com/doc/refman/8.0/en/windows-server-first-start.html
2.3.4.5 首次启动服务器
本节概述了启动 MySQL 服务器的一般概况。以下各节提供了更具体的信息,用于从命令行启动 MySQL 服务器或作为 Windows 服务。
这里的信息主要适用于使用noinstall版本安装 MySQL,或者如果您希望手动配置和测试 MySQL 而不是使用 MySQL 安装程序。
这些部分中的示例假定 MySQL 安装在默认位置C:\Program Files\MySQL\MySQL Server 8.0下。如果您将 MySQL 安装在其他位置,请调整示例中显示的路径名。
客户端有两个选项。他们可以使用 TCP/IP,或者如果服务器支持命名管道连接,他们可以使用命名管道。
对于 Windows 的 MySQL 还支持共享内存连接,如果服务器启用了shared_memory系统变量。客户端可以通过使用--protocol=MEMORY选项通过共享内存连接。
有关要运行哪个服务器二进制文件的信息,请参阅 Section 2.3.4.3, “Selecting a MySQL Server Type”。
最好从控制台窗口的命令提示符中进行测试(或“DOS 窗口”)。这样,您可以在易于查看的窗口中让服务器显示状态消息。如果您的配置有问题,这些消息将使您更容易识别和解决任何问题。
注意
必须在启动 MySQL 之前初始化数据库。有关初始化过程的其他信息,请参阅 Section 2.9.1, “Initializing the Data Directory”。
要启动服务器,请输入以下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --console
当服务器启动时,您应该看到类似以下的消息(路径名和大小可能不同)。ready for connections消息表示服务器已准备好为客户端连接提供服务。
[Server] C:\mysql\bin\mysqld.exe (mysqld 8.0.30) starting as process 21236
[InnoDB] InnoDB initialization has started.
[InnoDB] InnoDB initialization has ended.
[Server] CA certificate ca.pem is self signed.
[Server] Channel mysql_main configured to support TLS.
Encrypted connections are now supported for this channel.
[Server] X Plugin ready for connections. Bind-address: '::' port: 33060
[Server] C:\mysql\bin\mysqld.exe: ready for connections.
Version: '8.0.30' socket: '' port: 3306 MySQL Community Server - GPL.
您现在可以打开一个新的控制台窗口来运行客户端程序。
如果省略--console选项,服务器将将诊断输出写入数据目录中的错误日志(默认为C:\Program Files\MySQL\MySQL Server 8.0\data)。错误日志是扩展名为.err的文件,并且可以使用--log-error选项进行设置。
注意
MySQL 授权表中的初始root账户没有密码。启动服务器后,您应该按照 Section 2.9.4, “Securing the Initial MySQL Account”中的说明为其设置密码。
原文:
dev.mysql.com/doc/refman/8.0/en/windows-start-command-line.html
2.3.4.6 从 Windows 命令行启动 MySQL
MySQL 服务器可以从命令行手动启动。这可以在任何版本的 Windows 上完成。
要从命令行启动mysqld服务器,您应该启动控制台窗口(或“DOS 窗口”)并输入此命令:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"
mysqld的路径可能会根据系统上 MySQL 的安装位置而有所不同。
您可以通过执行此命令来停止 MySQL 服务器:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin" -u root shutdown
注意
如果 MySQL root用户帐户有密码,则需要使用-p选项调用mysqladmin并在提示时提供密码。
此命令调用 MySQL 管理实用程序mysqladmin连接到服务器并告诉其关闭。该命令以 MySQL root用户身份连接,这是 MySQL 授权系统中的默认管理帐户。
注意
MySQL 授权系统中的用户与 Microsoft Windows 下的任何操作系统用户完全独立。
如果mysqld无法启动,请检查错误日志,看看服务器是否在那里写入任何消息以指示问题的原因。默认情况下,错误日志位于C:\Program Files\MySQL\MySQL Server 8.0\data目录中。它是带有.err后缀的文件,或者可以通过传递--log-error选项来指定。或者,您可以尝试使用--console选项启动服务器;在这种情况下,服务器可能会在屏幕上显示一些有用的信息以帮助解决问题。
最后一个选项是使用--standalone和--debug选项启动mysqld。在这种情况下,mysqld会写入一个日志文件C:\mysqld.trace,其中应包含mysqld无法启动的原因。参见第 7.9.4 节,“DBUG 包”。
使用mysqld --verbose --help显示mysqld支持的所有选项。
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-installation-windows-path.html
2.3.4.7 自定义 MySQL 工具的 PATH
警告
当手动编辑系统PATH时,您必须非常小心;意外删除或修改现有PATH值的任何部分可能导致系统发生故障,甚至无法使用。
为了更容易调用 MySQL 程序,您可以将 MySQL bin 目录的路径名添加到您的 Windows 系统 PATH 环境变量中:
-
在 Windows 桌面上,右键单击“我的电脑”图标,然后选择“属性”。
-
接下来,从出现的“系统属性”菜单中选择“高级”选项卡,然后单击“环境变量”按钮。
-
在“系统变量”下,选择“Path”,然后单击“编辑”按钮。应该会出现“编辑系统变量”对话框。
-
将光标放在标有“变量值”的空格中显示的文本末尾。(使用 End 键确保光标位于此空格中文本的最末尾。)然后输入您的 MySQL
bin目录的完整路径名(例如,C:\Program Files\MySQL\MySQL Server 8.0\bin)注意
在此路径与该字段中的任何值之间必须有一个分号分隔。
通过单击“确定”来关闭此对话框,然后依次关闭每个对话框,直到所有打开的对话框都被关闭。新的
PATH值现在应该对您打开的任何新命令 shell 可用,允许您在系统上的任何目录中键入其名称以在 DOS 提示符下调用任何 MySQL 可执行程序,而无需提供路径。这包括服务器、mysql 客户端以及所有 MySQL 命令行实用程序,如 mysqladmin 和 mysqldump。
如果您在同一台机器上运行多个 MySQL 服务器,则不应将 MySQL bin 目录添加到您的 Windows PATH 中。
原文:
dev.mysql.com/doc/refman/8.0/en/windows-start-service.html
2.3.4.8 在 Windows 上启动 MySQL 作为服务
在 Windows 上,运行 MySQL 的推荐方式是将其安装为 Windows 服务,这样当 Windows 启动和停止时,MySQL 也会自动启动和停止。安装为服务的 MySQL 服务器也可以使用NET命令或图形服务实用程序从命令行进行控制。通常,要将 MySQL 安装为 Windows 服务,您应该使用具有管理员权限的帐户登录。
服务实用程序(Windows 服务控制管理器)可以在 Windows 控制面板中找到。为了避免冲突,在执行服务器安装或从命令行执行删除操作时,建议关闭服务实用程序。
安装服务
在将 MySQL 安装为 Windows 服务之前,如果当前服务器正在运行,您应该首先使用以下命令停止当前服务器:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin"
-u root shutdown
注意
如果 MySQL root 用户帐户有密码,您需要使用 -p 选项调用 mysqladmin 并在提示时提供密码。
此命令调用 MySQL 管理实用程序 mysqladmin 连接到服务器并告诉它关闭。该命令连接为 MySQL root 用户,这是 MySQL 授权系统中的默认管理帐户。
注意
MySQL 授权系统中的用户与 Windows 下的任何操作系统用户完全独立。
使用以下命令将服务器安装为服务:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install
服务安装命令不会启动服务器。关于如何启动服务器的说明稍后在本节中给出。
为了更容易调用 MySQL 程序,您可以将 MySQL bin 目录的路径名添加到您的 Windows 系统 PATH 环境变量中:
-
在 Windows 桌面上,右键单击“我的电脑”图标,然后选择“属性”。
-
接下来,从出现的系统属性菜单中选择“高级”选项卡,然后点击“环境变量”按钮。
-
在“系统变量”下,选择“Path”,然后点击“编辑”按钮。应该会出现“编辑系统变量”对话框。
-
将光标放在标记为变量值的空格中显示的文本末尾。(使用End键确保光标位于此空格中文本的末尾。)然后输入您的 MySQL
bin目录的完整路径名(例如,C:\Program Files\MySQL\MySQL Server 8.0\bin),并且此路径与此字段中存在的任何值之间应有一个分号分隔。关闭此对话框,以及依次关闭每个对话框,直到打开的所有对话框都已关闭。现在,您应该能够在系统上的任何目录中键入其名称来调用任何 MySQL 可执行程序,而无需提供路径。这包括服务器、mysql客户端以及所有 MySQL 命令行实用程序,如mysqladmin和mysqldump。如果您在同一台计算机上运行多个 MySQL 服务器,则不应将 MySQL
bin目录添加到 WindowsPATH中。
警告
当手动编辑系统PATH时,务必要非常小心;意外删除或修改现有PATH值的任何部分都可能导致系统发生故障,甚至无法使用。
安装服务时可以使用以下附加参数:
-
您可以在
--install选项后立即指定服务名称。默认服务名称是MySQL。 -
如果给出了服务名称,则可以跟随一个选项。按照惯例,这应该是
--defaults-file=*file_name*,以指定服务器启动时应从中读取选项的选项文件的名称。可以使用除
--defaults-file之外的单个选项,但不建议这样做。--defaults-file更灵活,因为它允许您通过将它们放在命名的选项文件中来指定服务器的多个启动选项。 -
您还可以在服务名称后面指定
--local-service选项。这将导致服务器使用具有有限系统特权的LocalServiceWindows 帐户运行。如果在服务名称后面给出了--defaults-file和--local-service,它们可以以任何顺序出现。
对于作为 Windows 服务安装的 MySQL 服务器,以下规则确定服务器使用的服务名称和选项文件:
-
如果服务安装命令未指定服务名称或在
--install选项后跟随默认服务名称(MySQL),服务器将使用MySQL的服务名称,并从标准选项文件中的[mysqld]组中读取选项。 -
如果服务安装命令在
--install选项后指定了除MySQL之外的服务名称,则服务器将使用该服务名称。它从标准选项文件中的[mysqld]组和与服务名称相同的组中读取选项。这使您可以使用[mysqld]组来设置所有 MySQL 服务都应使用的选项,并使用具有服务名称的选项组来为使用该服务名称安装的服务器使用选项。 -
如果服务安装命令在服务名称之后指定了
--defaults-file选项,则服务器将按照前一项描述的方式读取选项,只是它只从命名文件中读取选项,而忽略标准选项文件。
作为更复杂的示例,请考虑以下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"
--install MySQL --defaults-file=C:\my-opts.cnf
在这里,--install 选项后给出了默认服务名称(MySQL)。如果没有给出 --defaults-file 选项,此命令将导致服务器从标准选项文件中读取 [mysqld] 组。然而,由于存在 --defaults-file 选项,服务器将从 [mysqld] 选项组中读取选项,而且只从命名文件中读取。
注意
在 Windows 上,如果使用 --defaults-file 和 --install 选项启动服务器,则必须首先使用 --install。否则,mysqld.exe 将尝试启动 MySQL 服务器。
您还可以在启动 MySQL 服务之前在 Windows 服务 实用程序中将选项指定为启动参数。
最后,在尝试启动 MySQL 服务之前,请确保操作系统用户的用户变量 %TEMP% 和 %TMP%(以及 %TMPDIR%,如果曾经设置过)指向用户具有写入权限的文件夹。运行 MySQL 服务的默认用户是 LocalSystem,其 %TEMP% 和 %TMP% 的默认值是 C:\Windows\Temp,LocalSystem 默认具有写入权限。然而,如果对默认设置进行了任何更改(例如,更改运行服务的用户或提到的用户变量,或使用 --tmpdir 选项将临时目录放在其他位置),MySQL 服务可能无法运行,因为未授予适当用户对临时目录的写入权限。
启动服务
安装为服务后,每当 Windows 启动时,Windows 会自动启动 MySQL 服务器实例。也可以立即从Services实用程序启动服务,或使用sc start *mysqld_service_name*或NET START *mysqld_service_name*命令启动服务。SC和NET命令不区分大小写。
当作为服务运行时,mysqld无法访问控制台窗口,因此无法在那里看到任何消息。如果mysqld无法启动,请检查错误日志,查看服务器是否在那里写入任何消息以指示问题的原因。错误日志位于 MySQL 数据目录中(例如,C:\Program Files\MySQL\MySQL Server 8.0\data)。它是带有后缀.err的文件。
当 MySQL 服务器安装为服务且服务正在运行时,Windows 在关闭 Windows 时会自动停止服务。也可以使用Services实用程序、**sc stop *mysqld_service_name***命令、NET STOP *mysqld_service_name*命令或mysqladmin shutdown命令手动停止服务器。
如果您不希望服务在启动过程中自动启动,还可以选择将服务器安装为手动服务。要做到这一点,请使用--install-manual选项而不是--install选项:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install-manual
移除服务
要删除安装为服务的服务器,首先停止正在运行的服务器,执行SC STOP *mysqld_service_name*或NET STOP mysqld_service_name。然后使用**SC DELETE *mysqld_service_name***来删除它:
C:\> SC DELETE mysql
或者,使用mysqld--remove选项来移除服务。
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --remove
如果mysqld未作为服务运行,则可以从命令行启动它。有关说明,请参阅第 2.3.4.6 节,“从 Windows 命令行启动 MySQL”。
如果在安装过程中遇到困难,请参阅第 2.3.5 节,“解决 Microsoft Windows MySQL 服务器安装问题”。
有关停止或移除 Windows 服务的更多信息,请参阅第 7.8.2.2 节,“将多个 MySQL 实例作为 Windows 服务启动”。
2.3.4.9 测试 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 授权表的Host列中仅使用localhost和 IP 地址。(确保存在指定 IP 地址的账户,否则可能无法连接。)
您可以通过指定--pipe或--protocol=PIPE选项,或通过将.(句点)作为主机名来强制 MySQL 客户端使用命名管道连接而不是 TCP/IP。如果您不想使用默认管道名称,请使用--socket选项指定管道的名称。
如果您已为root账户设置了密码,删除了匿名账户,或创建了新用户账户,则连接到 MySQL 服务器时必须使用先前显示的命令和适当的-u和-p选项。请参阅第 6.2.4 节,“使用命令选项连接到 MySQL 服务器”。
有关mysqlshow的更多信息,请参阅第 6.5.7 节,“mysqlshow — 显示数据库、表和列信息”。
2.3.5 解决 Microsoft Windows MySQL 服务器安装问题
原文:
dev.mysql.com/doc/refman/8.0/en/windows-troubleshooting.html
第一次安装和运行 MySQL 时,您可能会遇到一些错误,导致 MySQL 服务器无法启动。本节帮助您诊断和纠正其中一些错误。
在解决服务器问题时,您的第一个资源是错误日志。MySQL 服务器使用错误日志记录与阻止服务器启动的错误相关的信息。错误日志位于您的my.ini文件中指定的数据目录中。默认数据目录位置为C:\Program Files\MySQL\MySQL Server 8.0\data,或者在 Windows 7 和 Windows Server 2008 上为C:\ProgramData\Mysql。C:\ProgramData目录默认为隐藏。您需要更改文件夹选项才能查看目录和内容。有关错误日志和内容理解的更多信息,请参阅 Section 7.4.2, “The Error Log”。
有关可能错误的信息,还请查看在启动 MySQL 服务时显示的控制台消息。在将mysqld安装为服务后,使用命令行中的**SC START *mysqld_service_name*或NET START *mysqld_service_name***命令查看有关启动 MySQL 服务器作为服务时的任何错误消息。请参阅 Section 2.3.4.8, “Starting MySQL as a Windows Service”。
以下示例显示您在首次安装 MySQL 并启动服务器时可能遇到的其他常见错误消息:
-
如果 MySQL 服务器无法找到
mysql权限数据库或其他关键文件,则会显示以下消息:System error 1067 has occurred. Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist当 MySQL 基本或数据目录安装在与默认位置(分别为
C:\Program Files\MySQL\MySQL Server 8.0和C:\Program Files\MySQL\MySQL Server 8.0\data)不同的位置时,通常会出现���些消息。当 MySQL 升级并安装到新位置时,可能会出现这种情况,但配置文件没有更新以反映新位置。此外,旧配置文件和新配置文件可能会发生冲突。在升级 MySQL 时,请务必删除或重命名任何旧配置文件。
如果您将 MySQL 安装到除
C:\Program Files\MySQL\MySQL Server 8.0之外的目录,请通过使用配置(my.ini)文件确保 MySQL 服务器知道这一点。将my.ini文件放在您的 Windows 目录中,通常为C:\WINDOWS。要根据WINDIR环境变量的值确定其确切位置,请从命令提示符中发出以下命令:C:\> echo %WINDIR%你可以使用任何文本编辑器(如记事本)创建或修改选项文件。例如,如果 MySQL 安装在
E:\mysql,数据目录是D:\MySQLdata,你可以创建选项文件并设置[mysqld]部分以指定basedir和datadir选项的值:[mysqld] # set basedir to your installation path basedir=E:/mysql # set datadir to the location of your data directory datadir=D:/MySQLdataMicrosoft Windows 路径名在选项文件中使用(正斜杠)而不是反斜杠。如果使用反斜杠,请将其双写:
[mysqld] # set basedir to your installation path basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0 # set datadir to the location of your data directory datadir=D:\\MySQLdata在选项文件值中使用反斜杠的规则详见 第 6.2.2.2 节,“使用选项文件”。
如果在 MySQL 配置文件中更改了
datadir值,则必须在重新启动 MySQL 服务器之前移动现有 MySQL 数据目录中的内容。参见 第 2.3.4.2 节,“创建选项文件”。
-
如果在先停止和删除现有 MySQL 服务的情况下重新安装或升级 MySQL,并使用 MySQL 安装程序安装 MySQL,则可能会看到此错误:
Error: Cannot create Windows service for MySql. Error: 0当配置向导尝试安装服务并发现同名现有服务时会发生这种情况。
解决此问题的一个方法是在使用配置向导时选择一个不同于
mysql的服务名称。这样可以正确安装新服务,但会保留过时的服务。虽然这是无害的,最好是删除不再使用的旧服务。要永久删除旧的
mysql服务,请以具有管理员权限的用户在命令行上执行以下命令:C:\> SC DELETE mysql [SC] DeleteService SUCCESS如果你的 Windows 版本没有
SC实用程序,请从www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp下载delsrv实用程序,并使用delsrv mysql语法。
2.3.6 Windows 后安装程序
原文:
dev.mysql.com/doc/refman/8.0/en/windows-postinstallation.html
存在 GUI 工具可以执行本节描述的大部分任务,包括:
-
MySQL Installer:用于安装和升级 MySQL 产品。
-
MySQL Workbench:管理 MySQL 服务器并编辑 SQL 语句。
如有必要,初始化数据目录并创建 MySQL 授权表。由 MySQL Installer 执行的 Windows 安装操作会自动初始化数据目录。对于从 ZIP 存档包安装,请按照第 2.9.1 节,“初始化数据目录”中描述的步骤初始化数据目录。
关于密码,如果您使用 MySQL Installer 安装了 MySQL,则可能已经为初始的root账户分配了密码。(参见第 2.3.3 节,“Windows 的 MySQL Installer”。)否则,请使用第 2.9.4 节,“保护初始 MySQL 账户”中给出的密码分配过程。
在分配密码之前,您可能希望尝试运行一些客户端程序,以确保您可以连接到服务器并且它正常运行。确保服务器正在运行(参见第 2.3.4.5 节,“首次启动服务器”)。您还可以设置一个 MySQL 服务,该服务在 Windows 启动时自动运行(参见第 2.3.4.8 节,“将 MySQL 设置为 Windows 服务”)。
这些说明假定您当前的位置是 MySQL 安装目录,并且该目录包含一个bin子目录,其中包含此处使用的 MySQL 程序。如果不是这样,请相应调整命令路径名称。
如果您使用 MySQL Installer 安装了 MySQL(参见第 2.3.3 节,“Windows 的 MySQL Installer”),默认安装目录是C:\Program Files\MySQL\MySQL Server 8.0:
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0"
从 ZIP 存档包安装的常见安装位置是C:\mysql:
C:\> cd C:\mysql
或者,将bin目录添加到您的PATH环境变量设置中。这样可以使您的命令解释器正确找到 MySQL 程序,因此您可以通过仅输入程序名称而不是路径名称来运行程序。请参见第 2.3.4.7 节,“自定义 MySQL 工具的 PATH”。
运行服务器后,发出以下命令以验证您可以从服务器检索信息。输出应该类似于这里显示的内容。
使用mysqlshow查看存在哪些数据库:
C:\> bin\mysqlshow
+--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
安装的数据库列表可能有所不同,但始终至少包括mysql和information_schema。
如果不存在正确的 MySQL 帐户,则前面的命令(以及其他 MySQL 程序的命令,如mysql)可能无法正常工作。例如,程序可能会出现错误,或者您可能无法查看所有数据库。如果使用 MySQL Installer 安装 MySQL,则root用户会自动创建,并使用您提供的密码。在这种情况下,您应该使用-u root和-p选项。(如果您已经保护了初始的 MySQL 帐户,则必须使用这些选项。)使用-p,客户端程序会提示输入root密码。例如:
C:\> bin\mysqlshow -u root -p
Enter password: *(enter root password here)* +--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
如果指定数据库名称,mysqlshow会显示数据库中的表列表:
C:\> bin\mysqlshow mysql
Database: mysql
+---------------------------+
| Tables |
+---------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
使用mysql程序从mysql数据库中的表中选择信息:
C:\> bin\mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+------+-----------+-----------------------+
| User | Host | plugin |
+------+-----------+-----------------------+
| root | localhost | caching_sha2_password |
+------+-----------+-----------------------+
有关mysql和mysqlshow的更多信息,请参见 Section 6.5.1, “mysql — The MySQL Command-Line Client”,以及 Section 6.5.7, “mysqlshow — Display Database, Table, and Column Information”。
2.3.7 Windows 平台限制
原文:
dev.mysql.com/doc/refman/8.0/en/windows-restrictions.html
在 Windows 平台上使用 MySQL 时,有以下限制:
-
进程内存
在 Windows 32 位平台上,默认情况下无法在单个进程中使用超过 2GB 的 RAM,包括 MySQL。这是因为 Windows 32 位的物理地址限制为 4GB,而 Windows 的默认设置是在内核(2GB)和用户/应用程序(2GB)之间分割虚拟地址空间。
一些 Windows 版本在启动时设置以通过减少内核应用程序来启用更大的应用程序。或者,要使用超过 2GB,请使用 64 位版本的 Windows。
-
文件系统别名
在使用
MyISAM表时,不能在 Windows 中使用别名链接到另一个卷上的数据文件,然后再链接回主 MySQLdatadir位置。这个功能通常用于将数据和索引文件移动到 RAID 或其他快速解决方案。
-
有限的端口数量
Windows 系统有大约 4,000 个端口可用于客户端连接,当端口上的连接关闭后,需要两到四分钟才能重新使用该端口。在客户端与服务器之间以高速率连接和断开的情况下,可能会在关闭的端口再次可用之前用尽所有可用端口。如果发生这种情况,MySQL 服务器看起来无响应,尽管它正在运行。端口也可能被机器上运行的其他应用程序使用,这种情况下,可供 MySQL 使用的端口数量较低。
有关此问题的更多信息,请参见
support.microsoft.com/kb/196271。 -
DATA DIRECTORY和INDEX DIRECTORYCREATE TABLE语句的DATA DIRECTORY子句仅支持 Windows 上的InnoDB表,如 Section 17.6.1.2, “Creating Tables Externally” 中所述。对于MyISAM和其他存储引擎,在 Windows 和其他具有非功能性realpath()调用的平台上,CREATE TABLE的DATA DIRECTORY和INDEX DIRECTORY子句将被忽略。 -
DROP DATABASE你不能删除另一个会话正在使用的数据库。
-
不区分大小写的名称
Windows 系统上的文件名不区分大小写,因此 MySQL 数据库和表名在 Windows 上也不区分大小写。唯一的限制是数据库和表名必须在给定语句中始终使用相同的大小写。参见 Section 11.2.3, “Identifier Case Sensitivity”。
-
目录和文件名
在 Windows 上,MySQL 服务器仅支持与当前 ANSI 代码页兼容的目录和文件名。例如,以下日文目录名在西方区域设置(代码页 1252)中无法使用:
datadir="C:/私たちのプロジェクトのデータ"相同的限制也适用于 SQL 语句中引用的目录和文件名,比如
LOAD DATA中的数据文件路径名。 -
路径名分隔符
\字符Windows 中的路径名组件由
\字符分隔,这也是 MySQL 中的转义字符。如果你正在使用LOAD DATA或SELECT ... INTO OUTFILE,请使用带有/字符的 Unix 风格文件名:mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr; mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;或者,你必须将
\字符加倍:mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr; mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr; -
管道问题
从 Windows 命令行提示符中,管道无法可靠工作。如果管道包含字符
^Z/CHAR(24),Windows 认为已经遇到文件结尾并中止程序。当你尝试应用二进制日志时,这主要是一个问题:
C:\> mysqlbinlog *binary_log_file* | mysql --user=root如果你在应用日志时遇到问题,并怀疑是因为
^Z/CHAR(24)字符,你可以使用以下解决方法:C:\> mysqlbinlog *binary_log_file* --result-file=/tmp/bin.sql C:\> mysql --user=root --execute "source /tmp/bin.sql"后一条命令也可用于可靠地读取可能包含二进制数据的任何 SQL 文件。
2.4 在 macOS 上安装 MySQL
2.4.1 在 macOS 上安装 MySQL 的一般注意事项
2.4.2 使用本机软件包在 macOS 上安装 MySQL
2.4.3 安装和使用 MySQL 启动守护程序
2.4.4 安装和使用 MySQL 首选项窗格
有关 MySQL 服务器支持的 macOS 版本列表,请参阅 www.mysql.com/support/supportedplatforms/database.html。
macOS 上的 MySQL 可以以多种不同形式使用:
-
本机软件包安装程序,使用本机 macOS 安装程序(DMG)引导您完成 MySQL 的安装过程。有关更多信息,请参阅 第 2.4.2 节,“使用本机软件包在 macOS 上安装 MySQL”。您可以在 macOS 上使用软件包安装程序。执行安装的用户必须具有管理员权限。
-
压缩的 TAR 存档,使用 Unix 的 tar 和 gzip 命令打包的文件。要使用这种方法,您需要打开一个 终端 窗口。使用此方法不需要管理员权限;您可以在任何地方安装 MySQL 服务器。有关使用此方法的更多信息,您可以使用通用的 tarball 使用说明,第 2.2 节,“在 Unix/Linux 上使用通用二进制文件安装 MySQL”。
除了核心安装外,软件包安装程序还包括 第 2.4.3 节,“安装和使用 MySQL 启动守护程序” 和 第 2.4.4 节,“安装和使用 MySQL 首选项窗格”,以简化您的安装管理。
有关在 macOS 上使用 MySQL 的其他信息,请参阅 第 2.4.1 节,“在 macOS 上安装 MySQL 的一般注意事项”。
2.4.1 在 macOS 上安装 MySQL 的一般注意事项
原文:
dev.mysql.com/doc/refman/8.0/en/macos-installation-notes.html
您应该牢记以下问题和注意事项:
-
其他 MySQL 安装:安装过程不识别 Homebrew 等软件包管理器安装的 MySQL。安装和升级过程适用于我们提供的 MySQL 软件包。如果存在其他安装,请考虑在执行此安装程序之前停止它们,以避免端口冲突。
Homebrew:例如,如果您使用 Homebrew 将 MySQL Server 安装到默认位置,则 MySQL 安装程序将安装到不同位置,并且不会升级 Homebrew 中的版本。在这种情况下,您将拥有多个 MySQL 安装,这些安装默认情况下会尝试使用相同的端口。在运行此安装程序之前,请停止其他 MySQL Server 实例,例如执行brew services stop mysql来停止 Homebrew 的 MySQL 服务。
-
Launchd:安装了一个 launchd 守护程序,用于更改 MySQL 配置选项。如有需要,请考虑编辑它,有关更多信息,请参阅下面的文档。此外,macOS 10.10 删除了启动项支持,改为使用 launchd 守护程序。macOS 系统偏好设置下的可选 MySQL 首选项窗格使用 launchd 守护程序。
-
用户:您可能需要(或想要)创建一个特定的
mysql用户来拥有 MySQL 目录和数据。您可以通过Directory Utility来完成这个操作,mysql用户应该已经存在。在单用户模式下使用时,系统/etc/passwd文件中应该已经存在一个_mysql(注意下划线前缀)的条目。 -
数据:由于 MySQL 软件包安装程序将 MySQL 内容安装到特定版本和平台的目录中,您可以使用此功能在不同版本之间升级和迁移数据库。您需要将旧版本的
data目录复制到新版本,或者指定一个替代的datadir值来设置数据目录的位置。默认情况下,MySQL 目录安装在/usr/local/下。 -
别名:您可能希望将别名添加到您的 shell 资源文件中,以便更轻松地访问常用程序,例如mysql和mysqladmin。在bash中的语法是:
alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin对于tcsh,使用:
alias mysql /usr/local/mysql/bin/mysql alias mysqladmin /usr/local/mysql/bin/mysqladmin更好的做法是将
/usr/local/mysql/bin添加到您的PATH环境变量中。您可以通过修改适合您的 shell 的相应启动文件来实现这一点。有关更多信息,请参阅 Section 6.2.1, “Invoking MySQL Programs”。 -
移除:在您已经从先前安装中复制了 MySQL 数据库文件并成功启动了新服务器之后,您应该考虑移除旧安装文件以节省磁盘空间。此外,您还应该移除位于
/Library/Receipts/mysql-*VERSION*.pkg目录中的旧版本软件包安装目录。
2.4.2 使用本机软件包在 macOS 上安装 MySQL
原文:
dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html
软件包位于一个磁盘映像(.dmg)文件中,您需要通过在“查找器”中双击其图标来挂载它。然后应该会挂载该映像并显示其内容。
注意
在继续安装之前,请确保通过使用 MySQL 管理应用程序(在 macOS 服务器上)、首选项面板或命令行上的mysqladmin shutdown停止所有正在运行的 MySQL 服务器实例。
要使用软件包安装程序安装 MySQL:
-
下载包含 MySQL 软件包安装程序的磁盘映像(
.dmg)文件(社区版可在此处下载)。双击文件以挂载磁盘映像并查看其内容。从磁盘双击 MySQL 安装程序包。它的名称根据您下载的 MySQL 版本而定。例如,对于 MySQL 服务器 8.0.36,它的名称可能是
mysql-8.0.36-macos-*10.13-x86_64*.pkg。 -
初始向导介绍屏幕引用了要安装的 MySQL 服务器版本。点击“继续”开始安装。
MySQL 社区版显示了相关 GNU 通用公共许可证的副本。点击“继续”,然后同意继续。
-
从“安装类型”页面,您可以点击“安装”以使用所有默认设置执行安装向导,点击“自定义”以更改要安装的组件(MySQL 服务器、MySQL 测试、首选项面板、Launchd 支持 -- 默认情况下启用所有组件,除了 MySQL 测试)。
注意
尽管“更改安装位置”选项可见,但安装位置无法更改。
图 2.13 MySQL 软件包安装向导:安装类型
图 2.14 MySQL 软件包安装向导:自定义
-
点击“安装”以安装 MySQL 服务器。如果正在升级当前的 MySQL 服务器安装,则安装过程到此结束,否则按照向导的额外配置步骤为新的 MySQL 服务器安装进行操作。
-
安装成功后,通过选择密码的默认加密类型、定义根密码,以及在启动时启用(或禁用)MySQL 服务器来完成配置步骤。
-
默认的 MySQL 8.0 密码机制是
caching_sha2_password(强),此步骤允许您将其更改为mysql_native_password(传统)。图 2.15 MySQL 软件包安装向导:选择密码加密类型
选择传统密码机制会修改生成的 launchd 文件,将
--default_authentication_plugin=mysql_native_password设置为ProgramArguments下的值。选择强密码加密不会设置--default_authentication_plugin,因为使用的是默认的 MySQL 服务器值,即caching_sha2_password。 -
为 root 用户定义密码,并切换 MySQL 服务器是否在配置步骤完成后启动。
图 2.16 MySQL 包安装向导:定义根密码
-
摘要是最后一步,指的是成功和完整的 MySQL 服务器安装。关闭向导。
图 2.17 MySQL 包安装向导:摘要
MySQL 服务器现在已安装。如果选择不启动 MySQL,则可以使用命令行中的 launchctl 或通过单击 MySQL 首选项面板中的“启动”来启动 MySQL。有关更多信息,请参阅 第 2.4.3 节,“安装和使用 MySQL Launch Daemon” 和 第 2.4.4 节,“安装和使用 MySQL Preference Pane”。使用 MySQL Preference Pane 或 launchd 配置 MySQL 在启动时自动启动。
使用包安装程序安装时,文件将安装到 /usr/local 目录中与安装版本和平台名称匹配的目录中。例如,安装程序文件 mysql-8.0.36-*macos10.15-x86_64.dmg* 将 MySQL 安装到 /usr/local/mysql-8.0.36-macos10.15-x86_64/,并在 /usr/local/mysql 中创建符号链接。以下表格显示了此 MySQL 安装目录的布局。
注意
macOS 安装过程不会创建也不会安装示例 my.cnf MySQL 配置文件。
表 2.7 macOS 上的 MySQL 安装布局
| 目录 | 目录内容 |
|---|---|
bin | mysqld 服务器、客户端和实用程序 |
data | 日志文件、数据库,其中 /usr/local/mysql/data/mysqld.local.err 是默认错误日志 |
docs | 帮助文档,如发布说明和构建信息 |
include | 包含(头)文件 |
lib | 库 |
man | Unix 手册页 |
mysql-test | MySQL 测试套件(在使用安装程序包(DMG)安装过程中,默认情况下会禁用 'MySQL Test') |
share | 包括错误消息、dictionary.txt 和重写 SQL 等各种支持文件 |
support-files | 支持脚本,如 mysqld_multi.server、mysql.server 和 mysql-log-rotate。 |
/tmp/mysql.sock | MySQL Unix 套接字的位置 |
| 目录 | 目录内容 |
2.4.3 安装和使用 MySQL Launch Daemon
原文:
dev.mysql.com/doc/refman/8.0/en/macos-installation-launchd.html
macOS 使用 launch 守护程序自动启动、停止和管理进程和应用程序,如 MySQL。
默认情况下,macOS 上的安装包(DMG)会安装一个名为/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist的 launchd 文件,其中包含类似于以下的 plist 定义:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
<string>--early-plugin-load=keyring_file=keyring_file.so</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
注意
一些用户报告称,添加一个 plist 的 DOCTYPE 声明会导致 launchd 操作失败,尽管它通过了 lint 检查。我们怀疑这是一个复制粘贴错误。包含上述片段的文件的 md5 校验和为d925f05f6d1b6ee5ce5451b596d6baed。
要启用 launchd 服务,您可以选择:
-
打开 macOS 系统偏好设置,选择 MySQL 偏好设置面板,然后执行启动 MySQL 服务器。
图 2.18 MySQL 偏好设置窗格:位置
实例页面包括启动或停止 MySQL 的选项,并且初始化数据库会重新创建
data/目录。卸载会卸载 MySQL 服务器,以及可选地卸载 MySQL 偏好设置面板和 launchd 信息。图 2.19 MySQL 偏好设置窗格:实例
-
或者,手动加载 launchd 文件。
$> cd /Library/LaunchDaemons $> sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist -
要配置 MySQL 在启动时自动启动,您可以:
$> sudo launchctl load -w com.oracle.oss.mysql.mysqld.plist
注意
在升级 MySQL 服务器时,launchd 安装过程会删除使用 MySQL 服务器 5.7.7 及以下版本安装的旧启动项。
升级还会替换名为com.oracle.oss.mysql.mysqld.plist的现有 launchd 文件。
附加的 launchd 相关信息:
-
plist 条目会覆盖
my.cnf条目,因为它们作为命令行参数传递。有关传递程序选项的更多信息,请参见第 6.2.2 节,“指定程序选项”。 -
ProgramArguments部分定义了传递给程序的命令行选项,在这种情况下是
mysqld二进制文件。 -
默认的 plist 定义是为了更简单的用例而编写的。对于更复杂的设置,您可能希望删除一些参数,而是依赖于 MySQL 配置文件,比如
my.cnf。 -
如果你编辑了 plist 文件,在重新安装或升级 MySQL 时取消安装程序选项。否则,你编辑过的 plist 文件会被覆盖,所有编辑都会丢失。
因为默认的 plist 定义了几个ProgramArguments,你可能会删除大部分这些参数,而是依赖于你的my.cnf MySQL 配置文件来定义它们。例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
<string>--early-plugin-load=keyring_file=keyring_file.so</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
在这种情况下,basedir,datadir,plugin_dir,log_error,pid_file,keyring_file_data,和--early-plugin-load 选项已从默认 plist ProgramArguments 定义中删除,你可以在my.cnf中定义它们。
2.4.4 安装和使用 MySQL 偏好设置面板
原文:
dev.mysql.com/doc/refman/8.0/en/macos-installation-prefpane.html
MySQL 安装包包括一个 MySQL 偏好设置面板,使您能够启动、停止和控制 MySQL 安装在启动时自动启动的过程。
这个偏好设置面板是默认安装的,并列在您系统的系统偏好设置窗口下。
图 2.20 MySQL 偏好设置面板:位置
MySQL 偏好设置面板与安装 MySQL 服务器的 DMG 文件一起安装。通常它与 MySQL 服务器一起安装,但也可以单独安装。
要安装 MySQL 偏好设置面板:
-
按照文档中描述的步骤安装 MySQL 服务器,详见 Section 2.4.2, “在 macOS 上使用本机软件包安装 MySQL”。
-
在安装类型步骤中点击自定义。"偏好设置面板"选项在那里列出并默认启用;确保它没有被取消选择。其他选项,如 MySQL 服务器,可以选择或取消选择。
图 2.21 MySQL 软件包安装向导:自定义
-
完成安装过程。
注意
MySQL 偏好设置面板仅启动和停止从 MySQL 软件包安装的 MySQL 安装,这些安装已安装在默认位置。
一旦安装了 MySQL 偏好设置面板,您可以使用此偏好设置面板控制您的 MySQL 服务器实例。
实例页面包括一个选项来启动或停止 MySQL,并且初始化数据库重新创建data/目录。卸载卸载 MySQL 服务器和可选的 MySQL 偏好设置面板和 launchd 信息。
图 2.22 MySQL 偏好设置面板:实例
图 2.23 MySQL 偏好设置面板:初始化数据库
配置页面显示 MySQL 服务器选项,包括 MySQL 配置文件的路径。
图 2.24 MySQL 偏好设置窗格:配置
MySQL 偏好设置窗格显示 MySQL 服务器的当前状态,如果服务器未运行,则显示停止(红色),如果服务器已经启动,则显示运行(绿色)。偏好设置窗格还显示了 MySQL 服务器是否已设置为自动启动的当前设置。
2.5 在 Linux 上安装 MySQL
2.5.1 在 Linux 上使用 MySQL Yum 仓库安装 MySQL
2.5.2 在 Linux 上使用 MySQL APT 仓库安装 MySQL
2.5.3 在 Linux 上使用 MySQL SLES 仓库安装 MySQL
2.5.4 在 Linux 上使用来自 Oracle 的 RPM 软件包安装 MySQL
2.5.5 在 Linux 上使用来自 Oracle 的 Debian 软件包安装 MySQL
2.5.6 在 Linux 上使用 Docker 容器部署 MySQL
2.5.7 从本地软件仓库在 Linux 上安装 MySQL
2.5.8 在 Linux 上使用 Juju 安装 MySQL
2.5.9 使用 systemd 管理 MySQL 服务器
Linux 支持多种不同的解决方案来安装 MySQL。我们建议您使用来自 Oracle 的发行版之一,其中提供了多种安装方法:
表 2.8 Linux 安装方法和信息
| 类型 | 设置方法 | 附加信息 |
|---|---|---|
| Apt | 启用MySQL Apt 仓库 | 文档 |
| Yum | 启用MySQL Yum 仓库 | 文档 |
| Zypper | 启用MySQL SLES 仓库 | 文档 |
| RPM | 下载 特定软件包 | 文档 |
| DEB | 下载 特定软件包 | 文档 |
| 通用 | 下载 通用软件包 | ��档 |
| Source | 从源代码编译 | 文档 |
| Docker | 使用Oracle 容器注册表。您也可以使用My Oracle Support 来获取 MySQL 企业版。 | 文档 |
| Oracle Unbreakable Linux Network | 使用 ULN 频道 | 文档") |
作为替代方案,您可以使用系统上的软件包管理器从 Linux 发行版的本机软件仓库自动下载并安装 MySQL。这些本机软件包通常落后于当前可用版本。通常也无法安装创新版本,因为这些通常不会在本机仓库中提供。有关使用本机软件包安装程序的更多信息,请参阅 Section 2.5.7, “Installing MySQL on Linux from the Native Software Repositories”。
注意
对于许多 Linux 安装,您希望设置 MySQL 在您的机器启动时自动启动。许多本机软件包安装会为您执行此操作,但对于源码、二进制和 RPM 解决方案,您可能需要单独设置。所需的脚本,mysql.server,可以在 MySQL 安装目录下的 support-files 目录中或 MySQL 源代码树中找到。您可以将其安装为 /etc/init.d/mysql 以实现自动 MySQL 启动和关闭。请参阅 Section 6.3.3, “mysql.server — MySQL Server Startup Script”。
2.5.1 使用 MySQL Yum 存储库在 Linux 上安装 MySQL
原文:
dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
适用于 Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 的MySQL Yum 存储库提供了用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC、Connector/Python 等的 RPM 软件包(并非所有软件包都适用于所有发行版;有关详细信息,请参阅使用 Yum 安装其他 MySQL 产品和组件)。
在开始之前
作为一款流行的开源软件,MySQL 以其原始或重新打包的形式广泛安装在许多系统上,这些系统来自不同的来源,包括不同的软件下载站点、软件存储库等。以下说明假定 MySQL 尚未使用第三方分发的 RPM 软件包安装在您的系统上;如果不是这种情况,请按照第 3.8 节,“使用 MySQL Yum 存储库升级 MySQL”或使用 MySQL Yum 存储库替换第三方分发的 MySQL 中给出的说明进行操作。
注意
存储库设置的 RPM 文件名以mysql80-community开头,以突出显示默认的活动 MySQL 子存储库,即今天的 MySQL 8.0。它们还安装了用于 MySQL 8.3 创新版本安装和升级的 MySQL 创新跟踪子存储库。
安装 MySQL 的新安装步骤
按照以下步骤使用 MySQL Yum 存储库安装最新的 GA 版本 MySQL:
-
添加 MySQL Yum 存储库
首先,将 MySQL Yum 存储库添加到系统的存储库列表中。这是一个一次性操作,可以通过安装 MySQL 提供的一个 RPM 来执行。按照以下步骤进行:
-
前往 MySQL 开发者区的下载 MySQL Yum 存储库页面(
dev.mysql.com/downloads/repo/yum/)。 -
选择并下载适用于您平台的发布软件包。
-
使用以下命令安装下载的发布软件包,将*
platform-and-version-specific-package-name*替换为下载的 RPM 软件包的名称:$> sudo yum install *platform-and-version-specific-package-name*.rpm对于基于 EL6 的系统,命令的形式为:
$> sudo yum install mysql80-community-release-el6-*{version-number}*.noarch.rpm对于基于 EL7 的系统:
$> sudo yum install mysql80-community-release-el7-*{version-number}*.noarch.rpm对于基于 EL8 的系统:
$> sudo yum install mysql80-community-release-el8-*{version-number}*.noarch.rpm对于基于 EL9 的系统:
$> sudo yum install mysql80-community-release-el9-*{version-number}*.noarch.rpm对于 Fedora 37:
$> sudo dnf install mysql80-community-release-fc37-*{version-number}*.noarch.rpm对于 Fedora 38:
$> sudo dnf install mysql80-community-release-fc38-*{version-number}*.noarch.rpm对于 Fedora 39:
$> sudo dnf install mysql80-community-release-fc39-*{version-number}*.noarch.rpm安装命令将 MySQL Yum 存储库添加到系统的存储库列表中,并下载 GnuPG 密钥以检查软件包的完整性。有关使用 GnuPG 密钥检查的详细信息,请参阅第 2.1.4.2 节,“使用 GnuPG 进行签名检查”。
您可以通过以下命令检查 MySQL Yum 存储库是否已成功添加(对于启用了 dnf 的系统,请在命令中用dnf替换yum):
$> yum repolist enabled | grep "mysql.*-community.*"
注意
一旦在您的系统上启用了 MySQL Yum 存储库,通过yum update命令(或对于启用了 dnf 的系统,通过dnf upgrade)进行的任何系统范围的更新都会升级系统上的 MySQL 软件包,并在 MySQL Yum 存储库中找到替代品时替换任何本地第三方软件包;请参见第 3.8 节,“使用 MySQL Yum 存储库升级 MySQL”,讨论可能对系统产生的一些影响,请参见升级共享客户端库。
-
-
选择一个发布系列
当使用 MySQL Yum 存储库时,默认选择安装最新的 GA 系列(目前为 MySQL 8.0)。如果这正是您想要的,请跳转到下一步,安装 MySQL。
在 MySQL Yum 存储库中,MySQL Community Server 的不同发布系列托管在不同的子存储库中。默认情况下启用最新 GA 系列(目前为 MySQL 8.0)的子存储库,并默认禁用所有其他系列的子存储库(例如 MySQL 8.0 系列)。使用此命令查看 MySQL Yum 存储库中的所有子存储库,并查看它们中哪些是启用的或禁用的(对于启用了 dnf 的系统,请在命令中用dnf替换yum):
$> yum repolist all | grep mysql要安装最新发布的最新 GA 系列,无需进行任何配置。要安装特定系列的最新发布而不是最新的 GA 系列,需要在运行安装命令之前禁用最新 GA 系列的子存储库并启用特定系列的子存储库。如果您的平台支持yum-config-manager,您可以通过以下命令执行此操作,这些命令禁用了 5.7 系列的子存储库并启用了 8.0 系列的子存储库:
$> sudo yum-config-manager --disable mysql57-community $> sudo yum-config-manager --enable mysql80-community对于启用了 dnf 的平台:
$> sudo dnf config-manager --disable mysql57-community $> sudo dnf config-manager --enable mysql80-community除了使用yum-config-manager或dnf config-manager命令外,您还可以通过手动编辑
/etc/yum.repos.d/mysql-community.repo文件来选择一个发布系列。这是文件中发布系列子存储库的典型条目:[mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql找到要配置的子存储库条目,并编辑
enabled选项。指定enabled=0以禁用子存储库,或enabled=1以启用子存储库。例如,要安装 MySQL 8.0,请确保上述 MySQL 5.7 子存储库条目的enabled=0,并且对于 8.0 系列的条目,enabled=1:# Enable to use MySQL 8.0 [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql您应该一次只启用一个发布系列的子存储库。当启用了多个发布系列的子存储库时,Yum 会使用最新的系列。
通过运行以下命令并检查其输出来验证已启用和禁用正确的子存储库(对于启用 dnf 的系统,请在命令中用 dnf 替换 yum):
$> yum repolist enabled | grep mysql -
禁用默认的 MySQL 模块
(仅适用于 EL8 系统)基于 EL8 的系统(如 RHEL8 和 Oracle Linux 8)包含一个默认启用的 MySQL 模块。除非禁用此模块,否则会掩盖 MySQL 存储库提供的软件包。要禁用包含的模块并使 MySQL 存储库软件包可见,请使用以下命令(对于启用 dnf 的系统,请在命令中用 dnf 替换 yum):
$> sudo yum module disable mysql -
安装 MySQL
通过以下命令安装 MySQL(对于启用 dnf 的系统,请在命令中用 dnf 替换 yum):
$> sudo yum install mysql-community-server这将安装 MySQL 服务器的软件包(
mysql-community-server)以及运行服务器所需组件的软件包,包括客户端的软件包(mysql-community-client)、客户端和服务器的常见错误消息和字符集的软件包(mysql-community-common)以及共享客户端库(mysql-community-libs)。 -
启动 MySQL 服务器
使用��下命令启动 MySQL 服务器:
$> systemctl start mysqld您可以使用以下命令检查 MySQL 服务器的状态:
$> systemctl status mysqld
如果操作系统启用了 systemd,则应使用标准的 systemctl 命令(或者使用参数颠倒的 service)来管理 MySQL 服务器服务,如 stop、start、status 和 restart。mysqld 服务默认启用,并在系统重新启动时启动。有关更多信息,请参见 Section 2.5.9, “使用 systemd 管理 MySQL 服务器”。
在服务器初始启动时,假设服务器的数据目录为空,则会发生以下情况:
-
服务器已初始化。
-
SSL 证书和密钥文件在数据目录中生成。
-
validate_password已安装并启用。 -
创建一个超级用户帐户
'root'@'localhost。设置并存储超级用户的密码在错误日志文件中。要显示它,请使用以下命令:$> sudo grep 'temporary password' /var/log/mysqld.log尽快使用生成的临时密码登录并为超级用户帐户设置自定义密码来更改根密码:
$> mysql -uroot -pmysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';注意
validate_password默认安装。validate_password实施的默认密码策略要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且密码总长度至少为 8 个字符。
有关后安装程序的更多信息,请参见 Section 2.9, “后安装设置和测试”。
注意
基于 EL7 平台的兼容性信息: 平台的本机软件存储库中的以下 RPM 软件包与从 MySQL Yum 存储库安装 MySQL 服务器的软件包不兼容。一旦您使用 MySQL Yum 存储库安装了 MySQL,您就无法安装这些软件包(反之亦然)。
- akonadi-mysql
使用 Yum 安装其他 MySQL 产品和组件
您可以使用 Yum 安装和管理 MySQL 的各个组件。其中一些组件托管在 MySQL Yum 存储库的子存储库中:例如,MySQL 连接器位于 MySQL 连接器社区子存储库中,而 MySQL Workbench 位于 MySQL 工具社区中。您可以使用以下命令列出来自 MySQL Yum 存储库的所有 MySQL 组件的软件包,适用于您平台(对于启用 dnf 的系统,请将命令中的 yum 替换为 dnf):
$> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available
使用以下命令安装您选择的任何软件包,将 package-name 替换为软件包的名称(对于启用 dnf 的系统,请将命令中的 yum 替换为 dnf):
$> sudo yum install *package-name*
例如,在 Fedora 上安装 MySQL Workbench:
$> sudo dnf install mysql-workbench-community
要安装共享客户端库(对于启用 dnf 的系统,请将命令中的 yum 替换为 dnf):
$> sudo yum install mysql-community-libs
特定平台说明
ARM 支持
ARM 64 位(aarch64)在 Oracle Linux 7 上受支持,并需要 Oracle Linux 7 软件集合存储库(ol7_software_collections)。例如,要安装服务器:
$> yum-config-manager --enable ol7_software_collections
$> yum install mysql-community-server
注意
ARM 64 位(aarch64)在 MySQL 8.0.12 上受 Oracle Linux 7 支持。
已知限制
8.0.12 版本要求您在执行 yum install 步骤后通过执行 ln -s /opt/oracle/oracle-armtoolset-1/root/usr/lib64 /usr/lib64/gcc7 调整 libstdc++7 路径。
使用 Yum 更新 MySQL
除了安装外,您还可以使用 MySQL Yum 存储库执行 MySQL 产品和组件的更新。有关详细信息,请参阅 第 3.8 节,“使用 MySQL Yum 存储库升级 MySQL”。
2.5.2 在 Linux 上使用 MySQL APT 存储库安装 MySQL
原文:
dev.mysql.com/doc/refman/8.0/en/linux-installation-apt-repo.html
MySQL APT 存储库提供了deb软件包,用于在当前的 Debian 和 Ubuntu 发行版上安装和管理 MySQL 服务器、客户端和其他组件。
使用 MySQL APT 存储库的说明可在 A Quick Guide to Using the MySQL APT Repository 中找到。
2.5.3 在 Linux 上使用 MySQL SLES 仓库安装 MySQL
原文:
dev.mysql.com/doc/refman/8.0/en/linux-installation-sles-repo.html
MySQL SLES 仓库提供了用于在 SUSE 企业 Linux 服务器上安装和管理 MySQL 服务器、客户端和其他组件的 RPM 软件包。
使用 MySQL SLES 仓库的说明可在 A Quick Guide to Using the MySQL SLES Repository 中找到。
2.5.4 使用 Oracle 提供的 RPM 软件包在 Linux 上安装 MySQL
原文:
dev.mysql.com/doc/refman/8.0/en/linux-installation-rpm.html
推荐在基于 RPM 的 Linux 发行版上安装 MySQL 的方法是使用 Oracle 提供的 RPM 软件包。有两个来源可以获取它们,适用于 MySQL 的社区版:
-
从 MySQL 软件仓库获取:
-
MySQL Yum 仓库(详见 Section 2.5.1, “使用 MySQL Yum 仓库在 Linux 上安装 MySQL”)。
-
MySQL SLES 仓库(详见 Section 2.5.3, “使用 MySQL SLES 仓库在 Linux 上安装 MySQL”)。
-
-
从下载 MySQL 社区服务器页面中获取,位于MySQL 开发者区。
注意
MySQL 的 RPM 发行版也由其他供应商提供。请注意,它们可能在功能、能力和约定(包括通信设置)方面与 Oracle 构建的不同,并且本手册中的安装说明不一定适用于它们。应该参考供应商的说明。
MySQL RPM 软件包
表 2.9 MySQL 社区版的 RPM 软件包
| 包名称 | 摘要 |
|---|---|
mysql-community-client | MySQL 客户端应用程序和工具 |
mysql-community-client-plugins | MySQL 客户端应用程序的共享插件 |
mysql-community-common | 服务器和客户端库的通用文件 |
mysql-community-devel | MySQL 数据库客户端应用程序的开发头文件和库 |
mysql-community-embedded-compat | MySQL 服务器作为一个嵌入式库,兼容使用库版本 18 的应用程序 |
mysql-community-icu-data-files | MySQL 打包的 ICU 数据文件,MySQL 正则表达式需要 |
mysql-community-libs | MySQL 数据库客户端应用程序的共享库 |
mysql-community-libs-compat | 用于先前 MySQL 安装的共享兼容性库;仅在平台支持先前的 MySQL 版本时存在 |
mysql-community-server | 数据库服务器和相关工具 |
mysql-community-server-debug | 调试服务器和插件二进制文件 |
mysql-community-test | MySQL 服务器的测试套件 |
mysql-community | 源代码 RPM 看起来类似于 mysql-community-8.0.36-1.el7.src.rpm,具体取决于所选的操作系统 |
| 其他debuginfo RPM | 有几个debuginfo软件包:mysql-community-client-debuginfo、mysql-community-libs-debuginfo、mysql-community-server-debug-debuginfo、mysql-community-server-debuginfo 和 mysql-community-test-debuginfo。 |
| 包名称 | 摘要 |
表 2.10 MySQL 企业版的 RPM 软件包
| 包名称 | 摘要 |
|---|---|
mysql-commercial-backup | MySQL 企业备份(在 8.0.11 中添加) |
mysql-commercial-client | MySQL 客户端应用程序和工具 |
mysql-commercial-client-plugins | MySQL 客户端应用程序的共享插件 |
mysql-commercial-common | 服务器和客户端库的通用文件 |
mysql-commercial-devel | MySQL 数据库客户端应用程序的开发头文件和库 |
mysql-commercial-embedded-compat | MySQL 服务器作为兼容性库嵌入式库,适用于使用库版本 18 的应用程序 |
mysql-commercial-icu-data-files | MySQL 打包的 MySQL 正则表达式所需的 ICU 数据文件 |
mysql-commercial-libs | MySQL 数据库客户端应用程序的共享库 |
mysql-commercial-libs-compat | 用于先前 MySQL 安装的共享兼容性库;仅在平台支持先前的 MySQL 版本时存在。库的版本与您正在使用的发行版默认安装的库的版本相匹配。 |
mysql-commercial-server | 数据库服务器和相关工具 |
mysql-commercial-test | MySQL 服务器的测试套件 |
| 附加debuginfo RPMs | 有几个debuginfo包:mysql-commercial-client-debuginfo、mysql-commercial-libs-debuginfo、mysql-commercial-server-debug-debuginfo、mysql-commercial-server-debuginfo 和 mysql-commercial-test-debuginfo。 |
| 软件包名称 | 摘要 |
RPM 的完整名称具有以下语法:
*packagename*-*version*-*distribution*-*arch*.rpm
*distribution和arch*值表示构建软件包的 Linux 发行版和处理器类型。请参阅下表以获取发行标识符的列表:
表 2.11 MySQL Linux RPM 软件包分发标识符
| 发行值 | 预期用途 |
|---|---|
el*{version},其中{version}*是主要的 Enterprise Linux 版本,例如el8 | 基于 EL6(8.0)、EL7、EL8 和 EL9 的平台(例如,Oracle Linux、Red Hat Enterprise Linux 和 CentOS 的相应版本) |
fc*{version},其中{version}*是主要的 Fedora 版本,例如fc37 | Fedora 38 和 39 |
sles12 | SUSE Linux 企业服务器 12 |
要查看 RPM 软件包中的所有文件(例如,mysql-community-server),请使用以下命令:
$> rpm -qpl mysql-community-server-*version*-*distribution*-*arch*.rpm
本节其余部分的讨论仅适用于直接从 Oracle 下载的 RPM 软件包进行安装过程,而不是通过 MySQL 存储库。
一些软件包之间存在依赖关系。如果您计划安装许多软件包,您可能希望下载 RPM 捆绑包tar文件,其中包含上述所有 RPM 软件包,这样您就不需要单独下载它们。
在大多数情况下,您需要安装 mysql-community-server、mysql-community-client、mysql-community-client-plugins、mysql-community-libs、mysql-community-icu-data-files、mysql-community-common 和 mysql-community-libs-compat 软件包才能获得一个功能齐全的标准 MySQL 安装。要执行这样的标准、基本安装,请转到包含所有这些软件包的文件夹(最好不要包含其他名称类似的 RPM 软件包),然后执行以下命令:
$> sudo yum install mysql-community-{server,client,client-plugins,icu-data-files,common,libs}-*
在 SLES 中用 zypper 替换 yum,在 Fedora 中用 dnf 替换。
尽管最好使用像 yum 这样的高级包管理工具来安装软件包,但喜欢直接使用 rpm 命令的用户可以将 yum install 命令替换为 rpm -Uvh 命令;然而,使用 rpm -Uvh 会使安装过程更容易失败,因为安装过程可能会遇到潜在的依赖性问题。
要仅安装客户端程序,您可以在要安装的软件包列表中跳过 mysql-community-server;执行以下命令:
$> sudo yum install mysql-community-{client,client-plugins,common,libs}-*
在 SLES 中用 zypper 替换 yum,在 Fedora 中用 dnf 替换。
使用 RPM 软件包进行标准的 MySQL 安装会在系统目录下创建文件和资源,如下表所示。
表 2.12 来自 MySQL Developer Zone 的 Linux RPM 软件包的 MySQL 安装布局
| 文件或资源 | 位置 |
|---|---|
| 客户端程序和脚本 | /usr/bin |
| mysqld 服务器 | /usr/sbin |
| 配置文件 | /etc/my.cnf |
| 数据目录 | /var/lib/mysql |
| 错误日志文件 | 对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:/var/log/mysqld.log对于 SLES:/var/log/mysql/mysqld.log |
secure_file_priv 的值 | /var/lib/mysql-files |
| System V init script | 对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:/etc/init.d/mysqld对于 SLES:/etc/init.d/mysql |
| Systemd 服务 | 对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:mysqld对于 SLES:mysql |
| Pid 文件 | /var/run/mysql/mysqld.pid |
| Socket | /var/lib/mysql/mysql.sock |
| 密钥环目录 | /var/lib/mysql-keyring |
| Unix 手册页 | /usr/share/man |
| 包含(头)文件 | /usr/include/mysql |
| 库文件 | /usr/lib/mysql |
| 其他支持文件(例如,错误消息和字符集文件) | /usr/share/mysql |
| 文件或资源 | 位置 |
安装还会在系统上创建一个名为 mysql 的用户和一个名为 mysql 的组。
注意
-
使用
useradd命令的-r和-s /bin/false选项创建mysql用户,以便它没有登录服务器主机的权限(有关详细信息,请参见创建 mysql 用户和组)。要在您的操作系统上切换到mysql用户,请使用su命令的--shell=/bin/bash选项:su - mysql --shell=/bin/bash -
使用旧软件包安装之前版本的 MySQL 可能已经创建了名为
/usr/my.cnf的配置文件。强烈建议您检查文件的内容,并将所需的设置迁移到文件/etc/my.cnf中,然后删除/usr/my.cnf。
MySQL 在安装过程结束时不会自动启动。对于 Red Hat Enterprise Linux、Oracle Linux、CentOS 和 Fedora 系统,请使用以下命令启动 MySQL:
$> systemctl start mysqld
对于 SLES 系统,命令是相同的,但服务名称不同:
$> systemctl start mysql
如果操作系统启用了 systemd,则应使用标准的systemctl(或者使用参数颠倒的service)命令来管理 MySQL 服务器服务,例如stop、start、status和restart。mysqld服务默认启用,并在系统重新启动时启动。请注意,在 systemd 平台上可能会有一些不同的工作方式:例如,更改数据目录的位置可能会导致问题。有关更多信息,请参见 Section 2.5.9,“使用 systemd 管理 MySQL 服务器”。
在使用 RPM 和 DEB 软件包进行升级安装时,如果 MySQL 服务器在升级发生时正在运行,则 MySQL 服务器将被停止,升级将进行,然后 MySQL 服务器将被重新启动。一个例外:如果在升级过程中还更改了版本(例如从社区版到商业版,反之亦然),则 MySQL 服务器不会重新启动。
在服务器初始启动时,假设服务器的数据目录为空时,会发生以下情况:
-
服务器已初始化。
-
在数据目录中生成 SSL 证书和密钥文件。
-
validate_password已安装并启用。 -
创建超级用户帐户
'root'@'localhost'。设置超级用户的密码并将其存储在错误日志文件中。要显示密码,请对于 RHEL、Oracle Linux、CentOS 和 Fedora 系统使用以下命令:$> sudo grep 'temporary password' /var/log/mysqld.log对于 SLES 系统,请使用以下命令:
$> sudo grep 'temporary password' /var/log/mysql/mysqld.log下一步是使用生成的临时密码登录并为超级用户帐户设置自定义密码:
$> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注意
默认情况下安装了validate_password。由validate_password实施的默认密码策略要求密码至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为 8 个字符。
如果在安装过程中出现问题,您可能会在错误日志文件/var/log/mysqld.log中找到调试信息。
对于一些 Linux 发行版,可能需要增加可用文件描述符数量的限制以供mysqld使用。请参阅 Section B.3.2.16, “File Not Found and Similar Errors”。
从多个 MySQL 版本安装客户端库。 可以安装多个客户端库版本,例如,如果您希望与链接到先前库的旧应用程序保持兼容性。要安装旧的客户端库,请使用rpm的--oldpackage选项。例如,要在具有来自 MySQL 8.0 的libmysqlclient.21的 EL6 系统上安装mysql-community-libs-5.5,请使用以下命令:
$> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm
调试包。 MySQL Server 的一个特殊变体编译了调试包并包含在服务器 RPM 包中。它执行调试和内存分配检查,并在服务器运行时生成一个跟踪文件。要使用该调试版本,请使用/usr/sbin/mysqld-debug启动 MySQL,而不是像服务或使用/usr/sbin/mysqld启动。请参阅 Section 7.9.4, “The DBUG Package”以了解您可以使用的调试选项。
注意
调试版本的默认插件目录从 MySQL 8.0.4 中的/usr/lib64/mysql/plugin更改为/usr/lib64/mysql/plugin/debug。以前,必须将plugin_dir更改为/usr/lib64/mysql/plugin/debug以供调试版本使用。
从源 SRPM 重新构建 RPM。 MySQL 的源代码 SRPM 包可以下载。它们可以原样使用,使用标准的rpmbuild工具链重新构建 MySQL 的 RPM 包。