目录
本章介绍如何获取和安装MySQL。 以下是程序的摘要,后面的部分提供了详细信息。 如果您计划将现有版本的MySQL升级到较新版本而不是首次安装MySQL,请参见 第2.11节“升级MySQL” ,了解有关升级过程以及升级前应考虑的问题的信息。
如果您有兴趣从其他数据库系统迁移到MySQL,请参见 第A.8节“MySQL 8.0常见问题解答:迁移” ,其中包含有关迁移问题的一些常见问题的答案。
MySQL的安装通常遵循以下步骤:
确定MySQL是否在您的平台上运行并受支持。
请注意,并非所有平台都适用于运行MySQL,并且并非所有运行MySQL的平台都由Oracle Corporation正式支持。 有关官方支持的平台的信息,请参阅 MySQL网站上的 https://www.mysql.com/support/supportedplatforms/database.html 。
选择要安装的分发版。
有几个版本的MySQL可用,大多数都有几种分发格式。 您可以从包含二进制(预编译)程序或源代码的预打包发行版中进行选择。 如有疑问,请使用二进制分发。 Oracle还为那些想要查看最新开发和测试新代码的人提供了对MySQL源代码的访问。 要确定应使用的版本和分发类型,请参见 第2.1.1节“要安装的MySQL版本和分发版本” 。
下载要安装的发行版。
有关说明,请参见 第2.1.2节“如何获取MySQL” 。 要验证分发的完整性,请使用 第2.1.3节“使用MD5校验和或GnuPG验证程序包完整性”中的说明 。
安装发行版。
要从二进制发行版安装MySQL,请使用 第2.2节“在Unix / Linux上使用通用二进制文件安装MySQL”中的说明 。
要从源代码分发版或当前开发源代码树 安装MySQL ,请使用 第2.9节“从源代码安装MySQL”中的说明 。
执行任何必要的安装后设置。
安装MySQL后,请参见
第2.10节“安装后设置和测试”
以获取有关确保MySQL服务器正常工作的信息。
另请参阅
第2.10.4节“保护初始MySQL帐户”中提供的信息
。
本节介绍如何保护初始MySQL
root
用户帐户,
该
帐户
在分配
密码
之前
没有密码
。
无论您是使用二进制文件还是源代码分发安装MySQL,本节均适用。
如果要运行MySQL基准脚本脚本,必须提供对MySQL的Perl支持。 请参见 第2.13节“Perl安装说明” 。
有关在不同平台和环境中安装MySQL的说明,请参见平台:
Unix,Linux,FreeBSD
有关使用通用二进制文件(例如,
.tar.gz
程序包)
在大多数Linux和Unix平台上安装MySQL的说明
,请参见
第2.2节“使用通用二进制文件在Unix / Linux上安装MySQL”
。
有关从源代码发行版或源代码库完全构建MySQL的信息,请参见 第2.9节“从源代码安装MySQL”
有关从源代码安装,配置和构建的特定平台帮助,请参阅相应的平台部分:
Linux,包括有关分发特定方法的说明,请参见 第2.5节“在Linux上安装MySQL” 。
IBM AIX,请参见 第2.7节“在Solaris上安装MySQL” 。
FreeBSD,请参见 第2.8节“在FreeBSD上安装MySQL” 。
微软Windows
有关在Microsoft Windows上安装MySQL的说明,请使用MySQL Installer或Zipped二进制文件,请参见 第2.3节“在Microsoft Windows上安装MySQL” 。
有关管理MySQL实例的信息,请参见 第2.3.4节“MySQL通告程序” 。
有关使用Microsoft Visual Studio从源代码构建MySQL的详细信息和说明,请参见 第2.9节“ 从源代码 安装MySQL” 。
OS X.
要在OS X上安装,包括使用二进制包和本机PKG格式,请参见 第2.4节“在macOS上安装MySQL” 。
有关使用OS X Launch Daemon自动启动和停止MySQL的信息,请参见 第2.4.3节“安装和使用MySQL启动守护程序” 。
有关MySQL首选项窗格的信息,请参见 第2.4.4节“安装和使用MySQL首选项窗格” 。
以下部分包含选择,下载和验证您的分发所需的信息。 本章后面部分中的说明介绍了如何安装所选的发行版。 对于二进制发行版,请参见 第2.2节“在Unix / Linux上使用通用二进制文件安装MySQL”中的说明 或适用于您的平台的相应部分(如果有)。 要从源代码构建MySQL,请使用 第2.9节“从源代码安装MySQL”中的说明 。
MySQL可在许多操作系统和平台上使用。 有关官方支持的平台的信息,请参阅 MySQL网站上的 https://www.mysql.com/support/supportedplatforms/database.html 。
准备安装MySQL时,请确定要使用的版本和分发格式(二进制文件或源代码)。
首先,决定是安装开发版本还是通用可用性(GA)版本。 开发版本具有最新功能,但不建议用于生产。 GA版本,也称为生产版或稳定版,适用于生产用途。 我们建议使用最新的GA版本。
MySQL 8.0中的命名方案使用由三个数字和一个可选后缀组成的版本名称(例如, mysql-8.0.1-dmr )。 版本名称中的数字解释如下:
第一个数字( 8 )是主要版本号。
第二个数字( 0 )是次要版本号。 总的来说,主要和次要数字构成了发行系列号。 序列号描述了稳定的功能集。
第三个数字( 1 )是发行系列中的版本号。 对于每个新的错误修复版本,这都会增加。 在大多数情况下,系列中的最新版本是最佳选择。
版本名称还可以包含后缀以指示版本的稳定性级别。 通过一组后缀在一系列进程中释放,以指示稳定性级别如何提高。 可能的后缀是:
dmr 表示开发里程碑版本(DMR)。 MySQL开发使用里程碑模型,其中每个里程碑都引入了一小部分经过全面测试的功能。 从一个里程碑到下一个里程碑,根据尝试这些早期版本的社区成员提供的反馈,功能界面可能会发生变化,甚至可能会删除功能。 里程碑版本中的功能可被视为具有预生产质量。
rc 表示候选发布者(RC)。 通过MySQL的所有内部测试后,发布候选版本被认为是稳定的。 RC版本中可能仍会引入新功能,但重点转移到修复错误以稳定系列早期介绍的功能。
缺少后缀表示一般可用性(GA)或生产版本。 GA版本是稳定的,已成功通过早期版本阶段,并且被认为是可靠的,没有严重的错误,并且适用于生产系统。
系列中的开发始于DMR版本,随后是RC版本,最后达到GA状态版本。
选择要安装的MySQL版本后,确定要为您的操作系统安装哪种分发格式。 对于大多数用例,二进制分发是正确的选择。 对于许多平台,二进制发行版以本机格式提供,例如Linux的RPM软件包或OS X的DMG软件包。分发版也可以采用更通用的格式,例如Zip存档或压缩的 tar 文件。 在Windows上,您可以使用 MySQL安装程序 来安装二进制分发版。
在某些情况下,最好从源代码发行版安装MySQL:
您想在某个显式位置安装MySQL。 标准二进制发行版已准备好在任何安装位置运行,但您可能需要更灵活地将MySQL组件放置在您想要的位置。
您希望 使用可能未包含在标准二进制分发版中的功能 来配置 mysqld 。 以下是用于确保功能可用性的最常见附加选项列表:
-DWITH_LIBWRAP=1
用于TCP包装器支持。
-DWITH_ZLIB={system|bundled}
对于依赖于压缩的功能
-DWITH_DEBUG=1
用于调试支持
有关其他信息,请参见 第2.9.4节“MySQL源配置选项” 。
您希望在 没有标准二进制分发版中包含的某些功能的情况下 配置 mysqld 。
您想要读取或修改构成MySQL的C和C ++代码。 为此,获取源分发。
源代码分发包含比二进制分发更多的测试和示例。
有关当前MySQL版本和下载说明的信息 , 请 访问 https://dev.mysql.com/downloads/上 的下载页面 。 有关MySQL下载镜像站点的完整最新列表,请参阅 https://dev.mysql.com/downloads/mirrors.html 。 您还可以在那里找到有关成为MySQL镜像站点以及如何报告错误或过时镜像的信息。
对于使用Yum作为其包管理系统的基于RPM的Linux平台,可以使用 MySQL Yum Repository 安装 MySQL 。 有关详细信息 , 请参见 第2.5.1节“使用MySQL Yum存储库在Linux上安装MySQL” 。
对于基于Debian的Linux平台,可以使用 MySQL APT Repository 安装 MySQL 。 有关详细信息 , 请参见 第2.5.2节“使用MySQL APT存储库在Linux上安装MySQL” 。
对于SUSE Linux Enterprise Server(SLES)平台,可以使用 MySQL SLES存储库 安装 MySQL 。 有关详细信息 , 请参见 第2.5.3节“使用MySQL SLES存储库在Linux上安装MySQL” 。
要获取最新的开发源,请参见 第2.9.3节“使用开发源树安装MySQL” 。
下载适合您需要的MySQL软件包之后,在尝试安装之前,请确保它完好无损且未被篡改。 有三种完整性检查方法:
MD5校验和
使用
GnuPG
GNU Privacy Guard的
加密签名
对于RPM包,内置RPM完整性验证机制
以下部分描述了如何使用这些方法。
如果您注意到MD5校验和或GPG签名不匹配,请首先尝试再次下载相应的程序包,可能是从另一个镜像站点下载。
下载MySQL软件包后,应确保其MD5校验和与MySQL下载页面上提供的校验和匹配。 每个包都有一个单独的校验和,您可以根据下载的包进行验证。 每个MySQL产品的下载页面上都列出了正确的MD5校验和,您将把它与您下载的文件(产品)的MD5校验和进行比较。
每个操作系统和设置都提供了自己的工具版本,用于检查MD5校验和。
通常,该命令名为
md5sum
,或者可能命名为
md5
,而某些操作系统根本不发送它。
在Linux上,它是
GNU Text Utilities
包的一部分,可用于各种平台。
您也可以从
http://www.gnu.org/software/textutils/
下载源代码
。
如果安装了OpenSSL,则可以使用命令
openssl md5
package_name
。
可以从中
获得
md5
命令行实用程序的
Windows实现
http://www.fourmilab.ch/md5/
。
winMd5Sum
是一个图形化的MD5检查工具,可以从
http://www.nullriver.com/index/products/winmd5sum
获得
。
我们的Microsoft Windows示例将采用名称
md5.exe
。
Linux和Microsoft Windows示例:
外壳> md5sum mysql-standard-8.0.18-linux-i686.tar.gz
aaab65abbec64d5e907dcd41b8699945 mysql-standard-8.0.18-linux-i686.tar.gz
外壳> md5.exe mysql-installer-community-8.0.18.msi
aaab65abbec64d5e907dcd41b8699945 mysql-installer-community-8.0.18.msi
您应该验证生成的校验和(十六进制数字的字符串)是否与相应程序包正下方的下载页面上显示的校验和相匹配。
确保验证的校验和
存档文件
(例如
.zip
,
.tar.gz
或
.msi
文件),并没有被包含在存档内的文件。
换句话说,在提取其内容之前验证该文件。
验证包的完整性和真实性的另一种方法是使用加密签名。 这比使用 MD5校验和 更可靠 ,但需要更多工作。
我们使用 GnuPG (GNU Privacy Guard) 签署MySQL可下载软件包 。 GnuPG 是 Phil Zimmermann 着名的Pretty Good Privacy( PGP )的 开源替代品 。 大多数Linux发行版 默认安装了 GnuPG 。 否则,请参阅 http://www.gnupg.org/ 以获取有关 GnuPG 以及如何获取和安装它的 更多信息 。
要验证特定包的签名,首先需要获取我们的公共GPG构建密钥的副本,您可以从
http://pgp.mit.edu/
下载该密钥
。
您要获取的密钥已命名
mysql-build@oss.oracle.com
。
或者,您可以直接从以下文本复制并粘贴密钥:
-----开始PGP公共钥匙块----- 版本:GnuPG v1 mQGiBD4 + owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH / nJKZyQT7h9bPlUWC3 RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96 + OmSLN9brZ fw2vOUgCmYv2hW0hyDHuvYlQA / BThQoADgj8AW6 / 0Lo7V1W9 / 8VuHP0gQwCgvzV3 BqOxRznNCRCRxAuAuVztHRcEAJooQK1 + iSiunZMYD1WufeXfshc57S / + yeJkegNW hxwR9pRWVArNYJdDRT + rf2RUe3vpquKNQU / hnEIUHJRQqYHo8gTxvxXNQc7fJYLV K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP / Vb7hiPwxh6rDZ7ITnE kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw + UNDI QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6 // 62zQJ7Q2TXlTUUwgUmVs ZWFzZSBFbmdpbmVlcmluZyA8bXlzcWwtYnVpbGRAb3NzLm9yYWNsZS5jb20 + iGwE ExECACwCGyMCHgECF4ACGQEGCwkIBwMCBhUKCQgCAwUWAgMBAAUCXEBY + wUJI87e 5AAKCRCMcY07UHLh9RZPAJ9uvm0zlzfCN + DHxHVaoFLFjdVYTQCfborsC9tmEZYa whhogjeBkZkorbyIaQQTEQIAKQIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAhkB BQJTAdRmBQkaZsvLAAoJEIxxjTtQcuH1X4MAoKNLWAbCBUj96637kv6Xa / fJuX5m AJwPtmgDfjUe2iuhXdTrFEPT19SB6ohmBBMRAgAmAhsjBgsJCAcDAgQVAggDBBYC AwECHgECF4AFAk53PioFCRP7AhUACgkQjHGNO1By4fUmzACeJdfqgc9gWTUhgmcM AOmG4RjwuxcAoKfM + U8yMOGELi + TRif7MtKEms6piGkEExECACkCGyMGCwkIBwMC BBUCCAMEFgIDAQIeAQIXgAIZAQUCUZSROgUJFTchqgAKCRCMcY07UHLh9YtAAJ9X RA / ymlmozPZn + A9ls8 / uwMcTsQCfaQMNq1dNkhH2kyByc3Rx9 / W2xfqJARwEEAEC AAYFAlAS6 + UACgkQ8aIC + GoXHivrWwf / dtLk / X + NC2VMDlg + vOeM0qgG1IlhXZfi NsEisvvGaz4m8fSFRGe + 1bvvfDoKRhxiGXU48RusjixzvBb6KTMuY6JpOVfz9Dj3 H9spYriHa + i6rYySXZIpOhfLiMnTy7NH2OvYCyNzSS / ciIUACIfH / 2NH8zNT5CNF 1uPNRs7HsHzzz7pOlTjtTWiF4cq / Ij6Z6CNrmdj + SiMvjYN9u6sdEKGtoNtpycgD 5HGKR + I7Nd / 7v56yhaUe4FpuvsNXig86K9tI6MUFS8CUyy7Hj3kVBZOUWVBM053k nGdALSygQr50DA3jMGKVl4ZnHje2RVWRmFTr5YWoRTMxUSQPMLpBNIkBHAQQAQIA BgUCU1B + vQAKCRAohbcD0zcc8dWwCACWXXWDXIcAWRUw + j3ph8dr9u3SItljn3wB c7clpclKWPuLvTz7lGgzlVB0s8hH4xgkSA + zLzl6u56mpUzskFl7f1I3Ac9GGpM4 0M5vmmR9hwlD1HdZtGfbD + wkjlqgitNLoRcGdRf / + U7x09GhSS7Bf339sunIX6sM gXSC4L32D3zDjF5icGdb0kj + 3lCrRmp853dGyA3ff9yUiBkxcKNawpi7Vz3D2ddU pOF3BP + 8NKPg4P2 + srKgkFbd4HidcISQCt3rY4vaTkEkLKg0nNA6U4r0YgOa7wIT SsxFlntMMzaRg53QtK0 + YkH0KuZR3GY8B7pi + tlgycyVR7mIFo7riQEcBBABCAAG BQJWgVd0AAoJEEZu4b / gk4UKk9MH / Rnt7EccPjSJC5CrB2AU5LY2Dsr + PePI2ubP WsEdG82qSjjGpbhIH8LSg / PzQoGHiFWMmmZWJktRT + dcgLbs3b2VwCNAwCE8jOHd UkQhEowgomdNvHiBHKHjP4 / lF68KOPiO / 2mxYYkmpM7BWf3kB57DJ5CTi3 / JLoN7 zF40qIs / p09ePvnwStpglbbtUn7XPO + 1 / Ee8VHzimABom52PkQIuxNiVUzLVn3bS Wqrd5ecuqLk6yzjPXd2XhDHWC9Twpl68GePru6EzQtusi0m6S / sHgEXqh / IxrFZV JlljF75JvosZq5zeulr0i6kOij + Y1p6MFffihITZ1gTmk + CLvK2JASIEEAECAAwF Ak53QS4FAwASdQAACgkQlxC4m8pXrXwJ8Qf /是/ UO9mqfoc2sMyhwMpN4 / fdBWwf LkA12FXQDOQMvwH9HsmEjnfUgYKXschZRi + DuHXe1P7l8G2aQLubhBsQf9ejKvRF TzuWMQkdIq + 6Koulxv6ofkCcv3d1xtO2W7nb5yxcpVBPrRfGFGebJvZa58DymCNg yGtAU6AOz4veavNmI2 + GIDQsY66 + tYDvZ + CxwzdYu + HDV9HmrJfc6deM0mnBn7SR jqzxJPgoTQhihTav6q / R5 / 2p5NvQ / H84OgS6GjosfGc2duUDzCP / kheMRKfzuyKC OHQPtJuIj8 ++ gfpHtEU7IDUX1So3c9n0PdpeBvclsDbpRnCNxQWU4mBot4kBIgQQ AQIADAUCToi2GQUDABJ1AAAKCRCXELibyletfLZAB / 9oRqx + NC98UQD / wlxCRytz VI / MuPnbgQUPLHEap10tvEi33S / H / XDR / tcGofY4cjAvo5skZXXeWq93Av7PACUb zkg0X0eSr2oL6wy66xfov72AwSuX + iUK68qtKaLqRLitM02y8aNRV / ggKvt7UMvG mOvs5yLaYlobyvGaFC2ClfkNOt2MlVnQZCmnYBCwOktPGkExiu2yZMifcYGxQcpH KVFG59KeF2cM2d4xYM8HJqkSGGW306LFVSyeRwG + wbttgLpD5bM / T2b3fF / J35ra CSMLZearRTq8aygPl + XM7MM2eR946aw6jmOsgNBErbvvIdQj6LudAZj + 8imcXV2K iQEiBBABAgAMBQJOmdnRBQMAEnUAAAoJEJcQuJvKV618AvIIAIEF1ZJ + Ry7WOdKF 5oeQ / ynaYUigzN92fW / 9zB8yuQlngkFJGidYMbci1tR1siziIVJFusR3ZonqAPGK / SUta9Y6KWLhmc7c5UnEHklq / NfdMZ2WVSIykXlctqw0sbb + z1ecEd4G8u9j5ill MO1B36rQayYAPoeXLX8dY4VyFLVGaQ00rWQBYFZrpw16ATWbWGJP332NSfCk4zZq 6kXEW07q0st3YBgAAGdNQyEeZCa4d4pBRSX6189Kjg6GDnIcaiOF6HO6PLr9fRlL r5ObCgU + G9gEhfiVwDEV9E + 7 / Bq2pYZ9whhkBqWQzdpXTNTM24uaEhE01EPO5zeC O214q6mJASIEEAECAAwFAk6rpgEFAwASdQAACgkQlxC4m8pXrXzAhwf / f9O99z16 3Y5FZVIxexyqXQ / Mct9uKHuXEVnRFYbA49dQLD4S73N + zN7gn9jFeQcBo4w8qVUV 94U / TA / VbLkdtNREyplPM4XY8YE5Wfd9bfyg3q1PbEiVjk995sBF + 2 + To99YYKst gXPqjlH0jUfEyDmexOj + hsp8Rc63kvkIx36VBa4ONRYFefGAhKDMigL2YAhc1UkG tkGTuLmlCGwIV6lviDZD3RJf5375VFnaHv7eXfwQxCwE + BxG3CURrjfxjaxMTmMP yAG2rhDp5oTUEvqDYNbko5UxYOmrSjvF4FzXwqerElXJUkUzSh0pp7RxHB / 1lCxD s7D1F1hlgFQuNIkBIgQQAQIADAUCTrzZHAUDABJ1AAAKCRCXELibyletfMUpB / 4S 07dREULIBnA1D6qr3fHsQJNZqbAuyDlvgGGLWzoyEDs + 1JMFFlaa + EeLIo1386GU 2DammDC23p3IB79uQhJeD2Z1TcVg4cA64SfF / CHca5coeRSrdAiudzU / cgLGtXIP / OaFamXgdMxAhloLFbSHPCZkyb00phVa8 + xeIVDrK1HByZsNIXy / SSK8U26S2PVZ 2o14fWvKbJ1Aga8N6DuWY / D8P2mi3RAbiuZgfzkmKL5idH / wSKfnFKdTgJzssdCc 1jZEGVk5rFYcWOrJARHeP / tsnb / UxKBEsNtO7e3N2e / rLVnEykVIO066hz7xZK / V NBSpx3k3qj4XPK41IHy2iQEiBBABAgAMBQJOzqO8BQMAEnUAAAoJEJcQuJvKV618 2twH / 0IzjXLxN45nvIfEjC75a + i9ZSLlqR8lsHL4GpEScFKI0a0lT4IVAIY2RKG + MAs2eHm0UfKuwGs5jluRZ9RqKrc61sY0XQV9 / 7znY9Db16ghX04JjknOKs / fPi87 rvKkB / QxJWS8qbb / erRmW + cPNjbRxTFPS5JIwFWHA16ieFEpvdAgKV6nfvJVTq1r jPDcnIA9CJN2SmUFx9Qx3SRc6ITbam1hjFnY6sCh6AUhxLI2f1mq1xH9PqEy42Um 68prRqTyJ7Iox1g / UDDkeeUcAg7T1viTz7uXpS3Wrq4zzo4yOpaJfLDR3pI5g2Zk SNGTMo6aySE4OABt8i1Pc1Pm6AmJASIEEAECAAwFAk7yPFYFAwASdQAACgkQlxC4 m8pXrXzXiAf9FrXe0lgcPM + tYOWMLhv5gXJi2VUBaLxpyRXm / kJcmxInKq1GCd3y D4 / FLHNu3ZcCz / uklPAbZXWI0O6ewq0LWsRtklmJjWiedH + hGyaTv95VklojRIBd 8nBaJ6M98rljMBHTFwWvjQFVf4FLRJQZqHlvjcCkq2Dd9BWJpGXvr / gpKkmMJYNK / ftfZRcChb35NI19WRpOhj9u808OPcqKVvZBcPwFGV5cEBzmAC94J7JcD8 + S8Ik8 iUJMQGGL3QcmZOBozovh86hj7KTSEBHlLXl832z89H1hLeuLbnXoGLv3zeUFSxkv 1h35LhZLqIMDQRXLuUzxGHMBpLhPyGWRJ4kBIgQQAQIADAUCTwQJFwUDABJ1AAAK CRCXELibyletfABvB / 9Cy69cjOqLGywITs3Cpg // 40jmdhSAVxilJivP6J5bubFH DJlVTx541Dv5h4hTG2BQuueQ4q1VCpSGW + rHcdhPyvmZGRz1rxdQQGh1Dv0Bod2c 3PJVSYPSrRSwCZJkJHOtVRBdjK4mkZb5aFTza + Tor9kxzj4FcXVd4KAS + hHQHYHc Ar8tt2eOLzqdEFTULeGiSoNn + PVzvzdfhndphK + 8F2jfQ2UKuc01O7k0Yn9xZVx0 OG6fE1gStzLv7C5amWLRd8 + XH + MN0G8MgNglpBoExsEMMlPBYSUHa6lxpdMNMuib rIyVncE9X8QOhImt8K0sNn / EdbuldJNGYbDLt7O4iQEiBBABAgAMBQJPFdTcBQMA EnUAAAoJEJcQuJvKV6184owH + WZ / uLpezXnSxigeH1sig72QEXMrNd5DVHCJdig3 博+ K5YmmN710 / m5z + 63XKUEWpd6 / knajObgckThzWftNeK1SSFQGPmoYZP9EZnSU 7L + / dSUpExbj842G5LYagrCyMGtlxRywWEmbi72TKS / JOK0jLiOdvVy + PHrZSu0D TVQ7cJh1BmPsbz7zzxjmcI5l + 7B7K7RHZHq45nDLoIabwDacj7BXvBK0Ajqz4QyJ GQUjXC7q + 88I + ptPvOXlE5nI / NbiCJOMI6d / bWN1KwYrC80fZuFaznfQFcPyUaDw yRaun + K3kEji2wXecq + yMmLUEp01TKsUeOL50HD6hHH07W + JASIEEAECAAwFAk85 bQsFAwASdQAACgkQlxC4m8pXrXwKPQgAlkbUsTr7nkq + haOk0jKpaHWEbRMEGMrB I3F7E + RDO6V / 8y4Jtn04EYDc8GgZMBah + mOgeINq3y8jRMYV5jVtZXv2MWYFUcjM kVBKeqhi / pGEjmUdmdt3DlPv3Z + fMTMRmAocI981iY / go8PVPg / + nrR6cFK2xxnO R8TacikJBFeSfkkORg1tDzjjYv1B5ZIEkpplepl5ahJBBq7cpYhTdY6Yk0Sz0J8w EdffLSaNxrRuWLrRhWzZU7p9bFzfb / 7OHc21dJnB7wKv5VvtgE + jiQw9tOKaf5hc SgRYuF6heu + B25gc5Uu88lo409mZ7oxQ6hDCn7JHvzh0rhmSN + Kid4kBIgQQAQIA DAUCT0qQrQUDABJ1AAAKCRCXELibyletfC9UB / 4o2ggJYM0CLxEpP0GU8UKOh3 + / zm1DN7Qe4kY2iCtF1plKHQaTgt5FlgRCFaiXcVv7WzGz / FnmxonR1leLl + kfRlwy PPnoI / AWPCy / NO4Cl5KnjsSmsdDUpObwZ4KYsdilZR7ViJu2swdAIgnXBUwrlRJR 7CK4TAKrTeonRgVSrVx8Vt // 8 / cYj73CLq8oY / KK0iHiQrSwo44uyhdiFIAssjyX N6 / 2E + w0zgvPexNSNNROHQ8pjbq + NTY6GwKIGsaej3UTRwQ7psvKXz8y7xdzmOAr / khGvxB5gjkx02pimjeia8v66aH6rbnojJMAovNUS4EHdHnulv4rovC8Kf9iiQEi BBABAgAMBQJPVdsaBQMAEnUAAAoJEJcQuJvKV618vVEIALFXPBzcAO1SnQarBLzy YMVZZumPvSXKnUHAO + 6kjApXPJ + qFRdUaSNshZxVKY9Zryblu4ol / fLUTt0CliSD IxD6L4GXEm4VYYCl4lPO3bVsJnGITLFwQGHM27EmjVoTiD8Ch7kPq2EXr3dMRgzj PDZ + 6aHGSUfOdLTPXufDvW83bEWGaRVuTJKw + wIrcuRqQ + ucWJgJGwcE4zeHjZad Jx1XUm1X + BbI73uiQussyjhhQVVNU7QEdrjyuscaZ / H38wjUwNbylxDPB4I8quC1 knQ0wSHr7gKpM + E9nhiS14poRqU18u78 / sJ2MUPXnQA6533IC238 / LP8JgqB + BIQ BTSJASIEEAECAAwFAk9ng3cFAwASdQAACgkQlxC4m8pXrXxQRAf / UZlkkpFJj1om 9hIRz7gS + l7YvTaKSzpo + TBcx3C7aqKJpir6TlMK9cb9HGTHo2Xp1N3FtQL72NvO 6CcJpBURbvSyb4i0hrm / YcbUC4Y3eajWhkRS3iVfGNFbc / rHthViz0r6Y5lhXX16 aVkDv5CIFWaF3BiUK0FnHrZiy4FPacUXCwEjv3uf8MpxV5oEmo8Vs1h4TL3obyUz qrImFrEMYE / 12lkE8iR5KWCaF8eFyl56HL3PPl90JMQBXzhwsFoWCPuwjfM5w6sW LL // zynwxtlJ9CRz9c2vK6aJ8DRu3OfBKN1iiEcNEynksDnNXErn5xXKz3p5pYdq e9BLzUQCDYkBIgQQAQIADAUCT3inRgUDABJ1AAAKCRCXELibyletfGMKCADJ97qk geBntQ + tZtKSFyXznAugYQmbzJld8U6eGSQnQkM40Vd62UZLdA8MjlWKS8y4A4L2 0cI14zs5tKG9Q72BxQOw5xkxlLASw1 / 8WeYEbw7ZA + SPG // q9v3kIkru3sv64mMA enZtxsykexRGyCumxLjzlAcL1drWJGUYE2Kl6uzQS7jb + 3PNBloQvz6nb3YRZ + CG Ly9D41SIK + fpnV8r4iqhu7r4LmAQ7Q1DF9aoGaYvn2 + xLGyWHxJAUet4xkMNOLp6 k9RF1nbNe4I / sqeCB25CZhCTEvHdjSGTD2yJR5jfoWkwO9w8DZG1Q9WrWqki4hSB l0cmcvO34pC1SJYziQEiBBABAgAMBQJPinQFBQMAEnUAAAoJEJcQuJvKV618CFEI AJp5BbcV7 + JBMRSvkoUcAWDoJSP2ug9zGw5FB8J90PDefKWCKs5Tjayf2TvM5ntq 5DE9SGaXbloIwa74FoZlgqlhMZ4AtY9Br + oyPJ5S844wpAmWMFc6NnEPFaHQkQ + B dJYpRVNd9lzagJP261P3S + S9T2UeHVdOJBgWIq9Mbs4lnZzWsnZfQ4Lsz0aPqe48 tkU8hw + nflby994qIwNOlk / U + I / lJbNz5zDY91oscXTRl2jV1qBgKYwwCXxyB3j9 fyVpRl + 7QnqbTWcCICVFL + uuYpP0HjdoKNqhzEguAUQQLOB9msPTXfa2hG + 32ZYg 5pzI5V7GCHq0KO6u5Ctj3TGJASIEEAECAAwFAk + cQEEFAwASdQAACgkQlxC4m8pX rXzi7AgAx8wJzNdD7UlgdKmrAK // YqH7arSssb33Xf45sVHDpUVA454DXeBrZpi + zEuo03o5BhAuf38cwfbkV6jN1mC2N0FZfpy4v7RxHKLYr7tr6r + DRn1L1giX5ybx CgY0fLAxkwscWUKGKABWxkz9b / beEXaO2rMt + 7DBUdpAOP5FNRQ8WLRWBcMGQiaT S4YcNDAiNkrSP8CMLQP + 04hQjahxwCgBnksylciqz3Y5 / MreybNnTOrdjVDsF0Oe t0uLOiWXUZV1FfaGIdb / oBQLg + e1B74p5 + q3aF8YI97qAZpPa1qiQzWIDX8LX9QX EFyZ3mvqzGrxkFoocXleNPgWT8fRuokBIgQQAQIADAUCT64N / QUDABJ1AAAKCRCX ELibyletfDOGCACKfcjQlSxrWlEUrYYZpoBP7DE + YdlIGumt5l6vBmxmt / 5OEhqr + dWwuoiyC5tm9CvJbuZup8anWfFzTTJmPRPsmE4z7Ek + 3CNMVM2wIynsLOt1pRFK 4 / 5RNjRLbwI6EtoCQfpLcZJ // SB56sK4DoFKH28Ok4cplESPnoMqA3QafdSEA / FL qvZV / iPgtTz7vjQkMgrXAIUM4fvKe3iXkAExGXtmgdXHVFoKmHrxJ2DTSvM7 / 19Z jGJeu2MhIKHyqEmCk6hLjxyCE5pAH59KlbAQOP1bS28xlRskBApm2wN + LOZWzC62 HhEReQ50inCGuuubK0PqUQnyYc + lUFxrFpcliQEiBBABAgAMBQJPv9lVBQMAEnUA AAoJEJcQuJvKV618AzgH / iRFFCi4qjvoqji1fi7yNPZVOMMO2H13Ks + AfcjRtHuV aa30u50ND7TH + XQe6yerTapLh3aAm / sNP99aTxIuwRSlyKEoDs93 + XVSgRqPBgbF / vxv0ykok3p6L9DxFO / w5cL8JrBhMZoJrEkIBFkwN8tWlcXPRFQvcdBYv3M3DTZU QY + UHnOxHvSzsl + LJ0S9Xcd9C5bvYfabmYJvG5eRS3pj1L / y3a6yw6hvY + JtnQAk t05TdeHMIgQH / zb8V9wxDzmE0un8LyoC2Jx5TpikQsJSejwK6b3coxVBlngku6 + C qDAimObZLw6H9xYYIK0FoJs7j5bQZEwUO7OLBgjcMOqJASIEEAECAAwFAk / Rpc8F AwASdQAACgkQlxC4m8pXrXw49Qf / TdNbun2htQ + cRWarszOx8BLEiW / x6PVyUQpZ 纳伏/ 0qvhKzlJUjM9hQPcA0AsOjhqtCN6Cy8KXbK / TvPm9D / Nk6HWwD1PomzrJVFk2 ywGFIuTR + lluKSp7mzm5ym0wJs5cPq731Im31RUQU8ndjLrq9YOf5FVL8NqmcOAU 4E8d68BbmVCQC5MMr0901FKwKznShfpy7VYN25 / BASj8dhnynBYQErqToOJB6Cnd JhdTlbfR4SirqAYZZg3XeqGhByytEHE1x7FMWWFYhdNtsnAVhYBbWqAzBs8lF9Jd Mhaf0VQU / 4z10gVrRtXLR / ixrCi + P4cM / fOQkqd6pwqWkaXt6okBIgQQAQIADAUC T + NxIAUDABJ1AAAKCRCXELibyletfFBBCAC6 + 0TUJDcNaqOxOG1KViY6KYg9NCL8 pwNK + RKNK / N1V + WGJQH7qDMwRoOn3yogrHax4xIeOWiILrvHK0O6drS1DjsymIhR Sm2XbE / 8pYmEbuJ9vHh3b / FTChmSAO7dDjSKdWD3dvaY8lSsuDDqPdTX8FzOfrXC M22C / YPg7oUG2A5svE1b + yismP4KmVNWAepEuPZcnEMPFgop3haHg9X2 + MJ / btDB Yr6p9kAgIY17nigtNTNjtI0dMLu43aIzedCYHqOlNHiB049jkJs54fMGBjF9qPtc m0k44xyKd1 / JXWMdNUmtwKsChAXJS3YOciMgIx6tqYUTndrP4I6q1rfriQEiBBAB AgAMBQJP9T1VBQMAEnUAAAoJEJcQuJvKV618J9wIAI1lId9SMbEHF6PKXRe154lE pap5imMU / lGTj + 9ZcXmlf8o2PoMMmb3 / E1K + EZUaeSBoOmjS8C2gwd5XFwRrlwAD RLK / pG5XsL4h5wmN2fj1ororrJXvqH427PLRQK9yzdwG4 + 9HTBOxjoS8qZT9plyK AJZzAydAMqyseRHgNo0vMwlgrs4ojo + GcFGQHrF3IaUjvVfUPOmIj7afopFdIZmI GaSF0TXBzqcZ1chFv / eTBcIuIKRvlaDee5FgV7 + nLH2nKOARCLvV / + 8uDi2zbr83 Ip5x2tD3XuUZ0ZWxD0AQWcrLdmGb4lkxbGxvCtsaJHaLXWQ2m760RjIUcwVMEBKJ ASIEEAECAAwFAlAGYWsFAwASdQAACgkQlxC4m8pXrXwyVAgAvuvEl6yuGkniWOlv uHEusUv / + + 2GCBg6qV IEpVtbTCCgiFjYR5GasSp1gpZ5r4BocOlbGdjdJGHTpyK8 xD1i + 6qZWUYhNRg2POXUVzcNEl2hhouwPLOifcmTwAKU76TEv3L5STviL3hWgUR2 yEUZ3Ut0IGVV6uPER9jpR3qd6O3PeuFkwf + NaGTye4jioLAy3aYwtZCUXzvYmNLP 90K4y + 5yauZteLmNeq26miKC / NQu4snNFClPbGRjHD1ex9KDiAMttOgN4WEq7srT rYgtT531WY4deHpNgoPlHPuAfC0H + S6YWuMbgfcb6dV + Rrd8Ij6zM3B / PcjmsYUf OPdPtIkBIgQQAQIADAUCUBgtfQUDABJ1AAAKCRCXELibyletfAm3CACQlw21Lfeg d8RmIITsfnFG / sfM3MvZcjVfEAtsY3fTK9NiyU0B3yX0PU3ei37qEW + 50BzqiStf 5VhNvLfbZR + yPou7o2MAP31mq3Uc6grpTV64BRIkCmRWg40WMjNI1hv7AN / 0atgj ATYQXgnEw7mfFb0XZtMTD6cmrz / A9nTPVgZDxzopOMgCCC1ZK4Vpq9FKdCYUaHpX 3sqnDf + gpVIHkTCMgWLYQOeX5Nl + fgnq6JppaQ3ySZRUDr + uFUs0uvDRvI / CN + UR ri92wdDnczjFumKvz / cLJAg5TG2Jv1Jx3wecALsVqQ3gL7f7vr1OMaqhI5FEBqdN 29L9cZe / ZmkriQEiBBIBCgAMBQJVoNxyBYMHhh + AAAoJEEoz7NUmyPxLD1EH / 2EH 7A4 + 8A1lPLy2L9xcNt2bifLfFP2pEjcG6ulBoMKpHvuTCgtX6ZPdHpM7uUOje / F1 CCN0IPB533U1NIoWIKndwNUJjughtoRM + caMUdYyc4kQm29Se6hMPDfyswXE5Bwe PmoOm4xWPVOH / cVN04zyLuxdlQZNQF / nJg6PMsz4w5z + K6NGGm24NEPcc72iv + 6R UC / RY / 7v5cVu4hO5 + r104mmNV5yLecQF13cHy2JlngIHXPSlxTZbeJX7qqxE7TQh 5nviSPgdk89oB5jFSx4g1efXiwtLlP7lbDlxHduomyQuH9yqmPZMbkJt9uZDc8Zz MYsDDwlc7BIe5bGKfjqJAhwEEAECAAYFAlSanFIACgkQdzHqU52lcqLdvg // CAEP qdN5VTKWEoDFjDS4I6t8 + 0KzdDWDacVFwKJ8RAo1M2SklDxnIvnzysZd2VHp5Pq7 i4LYCZo5lDkertQ6LwaQxc4X6myKY4LTA652ObFqsSfgh9kW + aJBBAyeahPQ8CDD + Yl23 + MY5wTsj4qt7KffNzy78vLbYnVnvRQ3 / CboVix0SRzg0I3Oi7n3B0lihvXy 5goy9ikjzZevejMEfjfeRCgoryy9j5RvHH9PF3fJVtUtHCS4f + kxLmbQJ1XqNDVD hlFzjz8oUzz / 8YXy3im5MY7Zuq4P4wWiI7rkIFMjTYSpz / evxkVlkR74qOngT2pY VHLyJkqwh56i0aXcjMZiuu2cymUt2LB9IsaMyWBNJjXr2doRGMAfjuR5ZaittmML yZwix9mWVk7tkwlIxmT / IW6Np0qMhDZcWYqPRpf7 + MqY3ZYMK4552b8aDMjhXrnO OwLsz + UI4bZa1r9dguIWIt2C2b5C1RQ9AsQBPwg7h5P + HhRuFAuDKK + vgV8FRuzR JeKkFqwB4y0Nv7BzKbFKmP + V + / + krRv / Dyz9Bz / jyAQgw02u1tPupH9BGhlRyluN yCJFTSNj7G + OLU0 / l4XNph5OOC7sy + AMZcsL / GST / TXCizRcCuApNTPDaenACpbv g8OoIzmNWhh4LXbAUHCKmY // hEw9PvTZA1xKHgyJAhwEEgECAAYFAlJYsKQACgkQ oirk60MpxUV2XQ // B2 / uvThkkbeOegusDC4AZfjnL / V3mgk4iYy4AC9hum0R9oNl XDR51P1TEw9mC1btHj + 7m7Iq1a5ke5wIC7ENZiilr0yPqeWgL5 + LC98dz / L85hqA wIoGeOfMhrlaVbAZEj4yQTAJDA35vZHVsQmp87il0m + fZX04OBLXBzw86EoAAZ7Q EoH4qFcT9k1T363tvNnIm3mEvkQ5WjE1R9uchJa1g7hdlNQlVkjFmPZrJK9fl4z5 6Dto89Po4Sge48jDH0pias4HATYHsxW819nz5jZzGcxLnFRRR5iITVZi9qzsHP7N bUh3qxuWCHS9xziXpOcSZY848xXw63Y5jDJfpzupzu / KHj6CzXYJUEEqp9MluoGb / BCCEPzdZ0ovyxFutM / BRcc6DvE6sTDF / UES21ROqfuwtJ6qJYWX + lBIgyCJvj4o RdbzxUleePuzqCzmwrIXtoOKW0Rlj4SCeF9yCwUMBTGW5 / nCLmN4dwf1KW2RP2Eg 4ERbuUy7QnwRP5UCl + 0ISZJyYUISfg8fmPIdQsetUK9Cj + Q5jpB2GXwELXWnIK6h K / 6jXp + EGEXSqdIE53vAFe7LwfHiP / D5M71D2h62sdIOmUm3lm7xMOnM5tKlBiV + 4jJSUmriCT62zo710 + 6iLGqmUUYlEll6Ppvo8yuanXkYRCFJpSSP7VP0bBqIZgQT EQIAJgUCTnc9dgIbIwUJEPPzpwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIxx jTtQcuH1Ut4AoIKjhdf70899d + 7JFq3LD7zeeyI0AJ9Z + YyE1HZSnzYi73brScil bIV6sbQ7TXlTUUwgUGFja2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkg PGJ1aWxkQG15c3FsLmNvbT6IbwQwEQIALwUCTnc9rSgdIGJ1aWxkQG15c3FsLmNv bSB3aWxsIHN0b3Agd29ya2luZyBzb29uAAoJEIxxjTtQcuH1tT0An3EMrSjEkUv2 9OX05JkLiVfQr0DPAJwKtL1ycnLPv15pGMvSzav8JyWN3IhlBBMRAgAdBQJHrJS0 BQkNMFioBQsHCgMEAxUDAgMWAgECF4AAEgkQjHGNO1By4fUHZUdQRwABAa6SAJ9 / PgZQSPNeQ6LvVVzCALEBJOBt7QCffgs + vWP18JutdZc7XiawgAN9vmmITAQTEQIA DAUCPj6j0QWDCWYAuwAKCRBJUOEqsnKR8iThAJ9ZsR4o37dNGyl77nEqP6RAlJqa YgCeNTPTEVY + VXHR / yjfyo0bVurRxT2ITAQTEQIADAUCPkKCAwWDCWIiiQAKCRC2 9c1NxrokP5aRAKCIaaegaMyiPKenmmm8xeTJSR + fKQCgrv0TqHyvCRINmi6LPucx GKwfy7KIRgQQEQIABgUCP6zjrwAKCRCvxSNIeIN0D / aWAKDbUiEgwwAFNh2n8gGJ SW / 8lAuISgCdHMzLAS26NDP8T2iejsfUOR5sNriIRgQQEQIABgUCP7RDdwAKCRCF LQ + rMHNOZsbDAJ0WoPV + tWILtZG3wYqg5LuHM03faQCeKuVvCmdPtro06xDzeeTX VrZ14 + GIRgQQEQIABgUCQ1uz6gAKCRCL2C5vMLlLXH90AJ0QsqhdAqTAk3SBnO2w zuSOwiDIUwCdFExsdDtXf1cL3Q4ilo + OTdrTW2CIRgQTEQIABgUCRPEzJgAKCRD2 ScT0YJNTDApxAKCJtqT9LCHFYfWKNGGBgKjka0zi9wCcCG3MvnvBzDUqDVebudUZ 61Sont + ITAQQEQIADAUCQYHLAQWDBiLZiwAKCRAYWdAfZ3uh7EKNAJwPywk0Nz + Z Lybw4YNQ7H1UxZycaQCePVhY4P5CHGjeYj9SX2gQCE2SNx + ITAQQEQIADAUCQYHL NAWDBiLZWAAKCRCBwvfr4hO2kiIjAJ0VU1VQHzF7yYVeg + bh31nng9OOkwCeJI8D 9mx8neg4wspqvgXRA8 + t2saITAQQEQIADAUCQYHLYgWDBiLZKgAKCRBrcOzZXcP0 cwmqAJsFjOvkY9c5eA / zyMrOZ1uPB6pd4QCdGyzgbYb / eoPu6FMvVI9PVIeNZReI TAQQEQIADAUCQdCTJAWDBdQRaAAKCRB9JcoKwSmnwmJVAKCG9a + Q + qjCzDzDtZKx 5NzDW1 + W + QCeL68seX8OoiXLQuRlifmPMrV2m9 + ITAQQEQIADAUCQitbugWDBXlI 0gAKCRDmG6SJFeu5q / MTAKCTMvlCQtLKlzD0sYdwVLHXJrRUvgCffmdeS6aDpwIn U0 / yvYjg1xlYiuqITAQSEQIADAUCQCpZOgWDB3pLUgAKCRA8oR80lPr4YSZcAJwP 4DncDk4YzvDvnRbXW6SriJn1yQCdEy + d0CqfdhM7HGUs + PZQ9mJKBKqITAQSEQIA DAUCQD36ugWDB2ap0gAKCRDy11xj45xlnLLfAKC0NzCVqrbTDRw25cUss14RRoUV PACeLpEc3zSahJUB0NNGTNlpwlTczlCITAQSEQIADAUCQQ4KhAWDBpaaCAAKCRA5 yiv0PWqKX / zdAJ4hNn3AijtcAyMLrLhlZQvib551mwCgw6FEhGLjZ + as0W681luc wZ6PzW + ITAQSEQIADAUCQoClNAWDBSP / WAAKCRAEDcCFfIOfqOMkAJwPUDhS1eTz gnXclDKgf353LbjvXgCeLCWyyj / 2d0gIk6SqzaPl2UcWrqiITAQTEQIADAUCPk1N hAWDCVdXCAAKCRAtu3a / rdTJMwUMAKCVPkbk1Up / kyPrlsVKU / Nv3bOTZACfW5za HX38jDCuxsjIr / 084n4kw / uITAQTEQIADAUCQdeAdgWDBc0kFgAKCRBm79vIzYL9 PJ + 8AJ9d7rvGJIcHzTCSYVnaStv6jP + AEACeNHa5yltqieRBCCcLcacGqYK81omI TAQTEQIADAUCQhiBDgWDBYwjfgAKCRB2wQMcojFuoaDuAJ9CLYdysef7IsW42UfW hI6HjxkzSgCfeEpXS4hEmmGicdpRiJQ / W21aB0GIZQQTEQIAHQULBwoDBAMVAwID FgIBAheABQJLcC / KBQkQ8 / OnABIHZUdQRwABAQkQjHGNO1By4fWw2wCeJilgEarL 8eEyfDdYTyRdqE45HkoAnjFSZY8Zg / iXeErHI0r04BRukNVgiHsEMBECADsFAkJ3 NfU0HQBPb3BzLi4uIHNob3VsZCBoYXZlIGJlZW4gbG9jYWwhIEknbSAqc28qIHN0 dXBpZC4uLgAKCRA5yiv0PWqKX + 9HAJ0WjTx / rqgouK4QCrOV / 2IOU + jMQQCfYSC8 JgsIIeN8aiyuStTdYrk0VWCIjwQwEQIATwUCRW8Av0gdAFNob3VsZCBoYXZlIGJl ZW4gYSBsb2NhbCBzaWduYXR1cmUsIG9yIHNvbWV0aGluZyAtIFdURiB3YXMgSSB0 aGlua2luZz8ACgkQOcor9D1qil + G + wCfcFWoo5qUl4XTE9K8tH3Q + xGWeYYAnjii KxjtOXc0ls + BlqXxbfZ9uqBsiQIiBBABAgAMBQJBgcuFBYMGItkHAAoJEKrj5s5m oURoqC8QAIISudocbJRhrTAROOPoMsReyp46Jdp3iL1oFDGcPfkZSBwWh8L + cJjh dycIwwSeZ1D2h9S5Tc4EnoE0khsS6wBpuAuih5s // coRqIIiLKEdhTmNqulkCH5m imCzc5zXWZDW0hpLr2InGsZMuh2QCwAkB4RTBM + r18cUXMLV4YHKyjIVaDhsiPP / MKUj6rJNsUDmDq1GiJdOjySjtCFjYADlQYSD7zcd1vpqQLThnZBESvEoCqumEfOP xemNU6xAB0CL + pUpB40pE6Un6Krr5h6yZxYZ / N5vzt0Y3B5UUMkgYDSpjbulNvaU TFiOxEU3gJvXc1 + h0BsxM7FwBZnuMA8LEA + UdQb76YcyuFBcROhmcEUTiducLu84 E2BZ2NSBdymRQKSinhvXsEWlH6Txm1gtJLynYsvPi4B4JxKbb + awnFPusL8W + GFZ jbygeKdyqzYgKj3M79R3geaY7Q75Kxl1UogiOKcbI5VZvg47OQCWeeERnejqEAdx EQiwGA / ARhVOP / 1l0LQA7jg2P1xTtrBqqC2ufDB + V + jhXaCXxstKSW1lTbv / b0d6 454UaOUV7RisN39pE2zFvJvY7bwfiwbUJVmYLm4rWJAEOJLIDtDRtt2h8JahDObm 3CWkpadjw57S5v1c / MN + xV9yTgVx5YUfC / 788L1HNKXfeVDq8zbAiQIiBBMBAgAM BQJCnwocBYMFBZpwAAoJENjCCglaJFfPIT4P / 25zvPp8ixqV85igs3rRqMBtBsj + 5EoEW6DJnlGhoi26yf1nasC2frVasWG7i4JIm0U3WfLZERGDjR / nqlOCEqsP5gS3 43N7r4UpDkBsYh0WxH / ZtST5llFK3zd7XgtxvqKL98l / OSgijH2W2SJ9DGpjtO + T iegq7igtJzw7Vax9z / LQH2xhRQKZR9yernwMSYaJ72i9SyWbK3k0 + e95fGnlR5pF zlGq320rYHgD7v9yoQ2t1klsAxK6e3b7Z + RiJG6cAU8o8F0kGxjWzF4v8D1op7S + IoRdB0Bap01ko0KLyt3 + G4 / 33 / 2UxsW50BtfqcvYNJvU4bZns1YSqAgDOOanBhg8 Ip5XPlDxH6J / 3997n5JNj / nk5ojfd8nYfe / 5TjflWNiput6tZ7frEki1wl6pTNbv V9C1eLUJMSXfDZyHtUXmiP9DKNpsucCUeBKWRKLqnsHLkLYydsIeUJ8 + ciKc + EWH FxEY + Ml72cXAaz5BuW9L8KHNzZZfez / ZJabiARQpFfjOwAnmhzJ9r ++ TEKRLEr96 taUI9 / 8nVPvT6LnBpcM38Td6dJ639YvuH3ilAqmPPw50YvglIEe4BUYD5r52Seqc 8XQowouGOuBX4vs7zgWFuYA / s9ebfGaIw + uJd / 56Xl9ll6q5CghqB / yt1EceFEnF CAjQc2SeRo6qzx22iEYEEBECAAYFAkSAbycACgkQCywYeUxD5vWDcACfQsVk / XGI ITFyFVQ3IR / 3Wt7zqBMAoNhso / cX8VUfs2BzxPvvGS3y + 5Q9iEYEEBECAAYFAkUw ntcACgkQOI4l6LNBlYkyFgCbBcw5gIii0RTDJsdNiuJDcu / NPqEAniSq9iTaLjgF HZbaizUU8arsVCB5iEYEEBECAAYFAkWho2sACgkQu9u2hBuwKr6bjwCfa7ZK6O + X mT08Sysg4DEoZnK4L9UAoLWgHuYg35wbZYx + ZUTh98diGU / miF0EExECAB0FAj4 + owwFCQlmAYAFCwcKAwQDFQMCAxYCAQIXgAAKCRCMcY07UHLh9XGOAJ4pVME15 / DG rUDohtGv2z8a7yv4AgCeKIp0jWUWE525QocBWms7ezxd6syIXQQTEQIAHQUCR6yU zwUJDTBYqAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQcuH1dCoAoLC6RtsD9K3N 7NOxcp3PYOzH2oqzAKCFHn0jSqxk7E8by3sh + Ay8yVv0BYhdBBMRAgAdBQsHCgME AxUDAgMWAgECF4AFAkequSEFCQ0ufRUACgkQjHGNO1By4fUdtwCfRNcueXikBMy7 tE2BbfwEyTLBTFAAnifQGbkmcARVS7nqauGhe1ED / vdgiF0EExECAB0FCwcKAwQD FQMCAxYCAQIXgAUCS3AuZQUJEPPyWQAKCRCMcY07UHLh9aA + AKCHDkOBKBrGb8tO g9BIub3LFhMvHQCeIOOot1hHHUlsTIXAUrD8 + ubIeZaJARwEEgECAAYFAkvCIgMA CgkQ3PTrHsNvDi8eQgf / dSx0R9Klozz8iK79w00NOsdoJY0Na0NTFmTbqHg30XJo G62cXYgc3 + TJnd + pYhYi5gyBixF / L8k / kPVPzX9W0YfwChZDsfTw0iDVmGxOswiN jzSo0lhWq86 / nEL30Khl9AhCC1XFNRw8WZYq9Z1qUXHHJ2rDARaedvpKHOjzRY0N dx6R2zNyHDx2mlfCQ9wDchWEuJdAv0uHrQ0HV9 + xq7lW / Q3L / V5AuU0tiowyAbBL PPYrB6x9vt2ZcXS7BOy8SfQ1i8W2QDQ / Toork4YwBiv6WCW / ociy7paAoPOWV / NF 2S6hDispeecbk7wqpbUj5klDmwrlgB / jmoAXWEnbsYkBIgQQAQIADAUCSSpooAUD ABJ1AAAKCRCXELibyletfFOMCACpP + OVZ7lH / CNY + 373c4FnSI0 / S5PXS0ABgdd4 BFWRFWKrWBeXBGc8sZfHOzVEwkzV96iyHbpddeAOAkEA4OVPW1MMFCmlHxi2s9 / N JrSrTPVfQOH5fR9hn7Hbpq / ETw0IoX1FKo7vndMnHZnFEnI + PDXLcdMYQgljYzhT xER4vYY0UKu8ekSshUy4zOX7XSJxwqPUvps8qs / TvojIF + vDJvgFYHVkgvS + shp8 哦/ exg9vKETBlgU87Jgsqn / SN2LrR / Jhl0aLd0G0iQ + / wHmVYdQUMFaCZwk / BKNa XPzmGZEUZ3RNbYa19Mo7hcE3js76nh5YMxFvxbTggVu4kdFkiQEiBBABAgAMBQJK M06IBQMAEnUAAAoJEJcQuJvKV618F4gH / innejIHffGMk8jYix4ZZT7pW6ApyoI + N9Iy85H4L + 8rVQrtcTHyq0VkcN3wPSwtfZszUF / 0qP6P8sLJNJ1BtrHxLORYjJPm gveeyHPzA2oJl6imqWUTiW822fyjY / azwhvZFzxmvbFJ + r5N / Z57 + Ia4t9LTSqTN HzMUYaXKDaAqzZeK7P0E6XUaaeygbjWjBLQ1O0ezozAy + KK / gXApmDCGFuHSFe7Z mgtFcbXLM2XFQpMUooETD2R8MUsd + xnQsff / k6pQOLxi + jUEsWSr / iqmvlk6gZ4D pemBjuhcXYlxJYjUaX9Zmn5s + ofF4GFxRqXoY7l9Z + tCM9AX37lm6S + JASIEEAEC AAwFAkpEcgoFAwASdQAACgkQlxC4m8pXrXz2mgf / RQkpmMM + 5r8znx2TpRAGHi5w ktvdFxlvPaOBWE28NDwTrpcoMqo9kzAiuvEQjVNihbP21wR3kvnQ84rTAH0mlC2I uyybggpqwzOUl + Wi0o + vk8ZA0A0dStWRN8uqneCsd1XnqDe1rvqC4 / 9yY223tLmA kPvz54ka2vX9GdJ3kxMWewhrVQSLCktQpygU0dujGTDqJtnk0WcBhVF9T87lv3W2 eGdPielzHU5trXezmGFj21d56G5ZFK8co7RrTt4qdznt80glh1BTGmhLlzjMPLTe dcMusm3D1QB9ITogcG94ghSf9tEKmmRJ6OnnWM5Kn9KcL63E5oj2 / lY9H54wSYkB IgQQAQIADAUCSlY + RwUDABJ1AAAKCRCXELibyletfOOQB / 0dyJBiBjgf + 8d3yNID pDktLhZYw8crIjPBVdOgX12xaUYBTGcQITRVHSggzffDA5BQXeUuWhpL4QB0uz1c EPPwSMiWiXlBtwF5q6RVf3PZGJ9fmFuTkPRO7SruZeVDo9WP8HjbQtOLukYf566e grzAYR9p74UgWftpDtmrqrRTobiuvsFBxosbeRCvEQCrN0n + p5D9hCVB88tUPHnO WA4mlduAFZDxQWTApKQ92frHiBqy + M1JFezz2OM3fYN + Dqo / Cb7ZwOAA / 2dbwS7o y4sXEHbfWonjskgPQwFYB23tsFUuM4uZwVEbJg + bveglDsDStbDlfgArXSL / 0 + AK lFcHiQEiBBABAgAMBQJKaAqEBQMAEnUAAAoJEJcQuJvKV618rH0H / iCciD4U6YZN JBj0GN7 / Xt851t9FWocmcaC + qtuXnkFhplXkxZVOCU4VBMs4GBoqfIvagbBTyfV4 迪+ W8Uxr + / 1jiu3l / HvoFxwdwNkGG6zNBhWSjdwQpGwPvh5ryV1OfLX / mgQgdDmx vqz5 + kFDUj4m7uLaeuU2j1T0lR4zU0yAsbt7J3hwfqJCXHOc9bm5nvJwMrSm + SDC TP5HjUlwHr9mTe8xuZvj6sO / w0P4AqIMxjC9W7pT9q0ofG2KSTwt7wFbh05sbG4U QYOJe4 + Soh3 + KjAa1c0cvmIh4cKX9qfCWwhhdeNfh1A9VTHhnl5zTv / UjvnQtjhl H / Fq1eBSKcSJASIEEAECAAwFAkp5LgoFAwASdQAACgkQlxC4m8pXrXwY6wgAg3f8 76L3qDZTYlFAWs3pXBl8GsUr1DEkTlEDZMZKDM3wPmhaWBR1hMA3y6p3aaCUyJIJ BEneXzgyU9uqCxXpC78d5qc3xs / JD / SswzNYuvuzLYOw5wN5L31SLmQTQ8KqE0uo RynBmtDCQ4M2UKifSnv + 0 + 3mPh85LVAS481GNpL + VVfCYtKesWNu40 + 98Yg6L9NG WwRTfsQbcdokZo44Jz7Y7f81ObC4r / X1DgPj2 + d4AU / plzDcdrbINOyprs + 7340e cnaGO4Lsgd19b1CvcgJgltRquu3kRvd + Ero2RYpDv6GVK8Ea0Lto4 + B / Ae8cLXAh QnaWQCEWmw + AU4Jbz4kBIgQQAQIADAUCSo5fvQUDABJ1AAAKCRCXELibyletfA08 B / 9w8yJdc8K + k07U30wR / RUg3Yb2lBDygmy091mVsyB0RGixBDXEPOXBqGKAXiV1 QSMAXM2VKRsuKahY2HFkPbyhZtjbdTa7Pr / bSnPvRhAh9GNWvvRg2Kp3qXDdjv9x ywEghKVxcEIVXtNRvpbqRoKmHzIExvUQck5DM1VwfREeYIoxgs4035WADhVMdngQ S2Gt8P2WaU / p8EZhFGg6X8KtOlD68zGboaJe0hj2VDc +的Jc + KdjRfE3fW5IToid / O DkUaIW6tB3WkXb0g6D / 2hrEJbX3headChHKSB8eQdOR9bcCJDhhU8csd501qmrhC ctmvlpeWQZdIQdk6sABPWeeCiQEiBBABAgAMBQJKoBJHBQMAEnUAAAoJEJcQuJvK V618Ml8H / 1D88 /克/ p9fSVor4Wu5WlMbg8zEAik3BIxQruEFWda6nART6M9E7e + P1 ++ UHZsWYs6l9ROpWxRLG1Yy9jLec2Y3nUtb20m65p + IVeKR2a9PHW35WZDV9dOYP GZabKkO1clLeWLVgp9LRjZ + AeRG + ljHqsULXro1dwewLTB / gg9I2vgNv6dKxyKak 纳米/ GrqZLATAq2KoaE / U / 6lzRFZIzZnLtjZh8X7 + NS + V8v9IiY4ntrpkrbvFk30U6 WJp79oBIWwnW / 84RbxutRoEwSar / TLwVRkcZyRXeJTapbnLGnQ / lDO1o1d7 + Vbjd Q / SG / cKHHf7NthCwkQNsCnHL0f51gZCJASIEEAECAAwFAkqoEAAFAwASdQAACgkQ lxC4m8pXrXwE / AF / XD4R / A5R6Ir / nCvKwCTKJmalajssuAcLEa2pMnFZYO / 8rzLO + Gp8p0qFH9C4LFwA0NvR5q6X / swuROf4zxljSvNcdlQVaAfJ2ZDEgJ5GXzsPplrv SAI9jS3LL7fSWDZgKuUe0a4qx7A0NgyGMUYGhP + QlRFa8vWEBI9fANd / 0mMqAeBV qQyOH0X1FiW1Ca2Jn4NKfuMy9GEvRddVIbB1LvoNVtXPNzeeKMyNb9Jdx1MFWssy COBP2DayJKTmjvqPEc / YOjOowoN5sJ / jn4mVSTvvlTooLiReSs6GSCAjMVxN7eYS / Oyq6Iu1JDcJvmB8N2WixAZtAVgF8OA7CWXKVYkBIgQQAQIADAUCSrnHiQUDABJ1 AAAKCRCXELibyletfPChB / 9uECti1dZeNuFsd0 / RuGyRUVlrrhJE6WCcOrLO9par rPbewbKBmjSzB0MygJXGvcC06mPNuquJ7 / WpxKsFmfg4vJBPlADFKtgRUy9BLzjC eotWchPHFBVW9ftPbaQViSUu7d89NLjDDM5xrh80puDIApxoQLDoIrh3T1kpZx56 jSWv0gelFUMbXAzmqkJSyL4Xdh1aqzgUbREd7Xf2ICzuh0sV6V7c / AwWtjWEGEsA HZaiQDywZwbC18GwrMLiAzGWb / AScFDQRCZKJDjL + Ql8YT6z + ZMVr8gb7CIU5PKY dhiIf2UVTQwLAoW7lNRCQQAqcGjK3IMIz7SO / yk4HmVUiQEiBBABAgAMBQJK3gjG BQMAEnUAAAoJEJcQuJvKV618jkEH + wb0Zv9z7xQgpLMowVuBFQVu8 / z7P5ASumyB PUO3 + 0JVxSHBhlCKQK7n11m1fhuGt2fCxXhSU6LzXj36rsKRY53lGZ9QhvqFUtQH 3Xb2IQLIJC4UKjG2jSSCdcuA / x98bwp2v7O03rn7ndCS16CwXnRV3geQoNipRKMS DajKPpZv1RiZm8pMKqEb8WSw352xWoOcxuffjlsOEwvJ85SEGCAZ9tmIlkZOc7Ai QONDvii9b8AYhQ60RIQC0HP2ASSmK0V92VeFPxHmAygdDQgZNVtbVxgnnt7oTNEu VRXNY + z4OfBArp7R + cTsvijDRZY4kML1n22hUybwoxUEvjqZV2 + JASIEEAECAAwF AkrvOlQFAwASdQAACgkQlxC4m8pXrXxrPAgArXiNgZirNuBhfNCXlkzkCHLx5wnV e4SmTpbWzTwWw7 + qk7d4l9hlWtdImISORINzo7f4ShSUzJX2GciNaXhaHRo7 + y5O Zbu82jQb09aQQj / nibKYuqxqUrobTEm + DuYz3JUQZm2PsPcHLS8mX9cxvrJUncPG nXEV0DRaq71SGWDprtkvBbp6i38aY3sIhYgz8wM5m1szKDtjywmBYcFehIdozt9z hm7wZshzRWQX1 + RF / pIsnk + OzBIa34crSemTnacbV / B7278z2XAyziPNFuqz0xu + iltOmYmayfNWAmumuw9NcuwWMlth6Mc2HLrpo0ZBheJ6iuDMPsHnwqdB / 4kBIgQQ AQIADAUCSwBd2gUDABJ1AAAKCRCXELibyletfP6tB / 4m1w0BtlkJgtS6E + B / NS14 z4A4PGors + N + MYm05qzvi + ENDF / sytCmVcKeimrtvDcfoDtKAFFvJjcYXfnJdGWm Pu0SJMRL5KKCirAKwZmU / saxOgoB5QLNw + DHPteJ3w9GmWlGxIqG1r15WC5duzBC y3FsnjJYG3jaLnHOO9yXXb5h0kUTORfUKdvAr1gxF2KoatZWqGoaPPnHoqb88rjt zk8I7gDqoXnzh8wLxa0ZYvfTC / McxdWTrwXLft + krmMQ18iIZEne2hvVLNJVuluU oiWLeHA8iNCQ4W4WTdLc1mCnCjGTMX / MN41uLH0C9Ka4R6wEaqj4lPDk1B / 1TV + Q iQEiBBABAgAMBQJLEYGrBQMAEnUAAAoJEJcQuJvKV618naIH / 2t9aH5mBTKBN6fU qhrf79vIsjtI / QNS5qisBISZMX3 / 1 / 0Gu6WnxkPSfdCUJMWCjMcnVj7KU2wxTHHG VpAStd9r2afUNxRyqZwzwyytktuZok0XngAEDYDDBS3ssu2R4uWLCsC2ysXEqO / 5 tI5YrTWJZrfeIphTaYP5hxrMujvqy3kEwKKbiMz91cDeiLS + YCBcalj5n / 1dMYf7 8U8C6ieurxAg / L8h6x25VM4Ilx4MmG2T8QGtkkUXd + FD / KYWmf0LE5LLPknf0Hhw oVslPXeinp4FsHK / 5wzviv4YZpzuTqs9NlKcMsa4IuuPOB0FDf0pn + OFQbEg9QwY 2gCozK + JASIEEAECAAwFAksjTdQFAwASdQAACgkQlxC4m8pXrXwlogf / XBGbXRVX LMaRN4SczOjwT3 / tUCriTkb3v + zKjRG90zFhYAccjn7w + 7jKQicjq6quQG1EH2X4 / Su6ps1lDLqGHHhiJW3ZhxQScLZmhdAYsh2qG4GP / UW3QjXG7c61t + H3olvWg2cr wqCxxFZAgkAAkr9xcHWFZJEQeXoob6cCZObaUnHSANdmC6s5lUxXYa2bmL7Q3UB4 4KCzDvAfbPZKJOw9k0qb3lc11zx + vGdyZFbm4R0 + 3LPp / vT0b3GlSbbF9lU1GOXh VaphrgFFa76dmjfHCkPplXAkK1VSIU / aPGAefduTFMdlSZpdMtJ5AULjGcszBDlR pLlPxvqVa0ZpgIkBIgQQAQIADAUCSycmkgUDABJ1AAAKCRCXELibyletfHlNCACp 1YespiHfQt2alcscE5zgfETEHHic8Ai6pNkU9HT4TeWcFHEDe5QqfYcpjLrQvBXS kSvxEittbyRdv + E + j5Z + HyHjiG8nAQBL6qy9eHqQE4 + d7gYs6DTk7sG9ZMYphREb ltzD + F4hVCQdLT8LNr0eVFN7ehqECScDaCG8 / Qyti + 1 / 0M902 /炔+ mz0ilOiUdWJ 9x6LPaIINtb1gsYDEylLjwGIZmI0r5Kh9wYoV4vnNezFbxO1uRiW0B7iaPjIEsbt OOKp7wx2aX + DM3N9F3BtaIY8XnzcnomNm83SNsgmgrZljpQltUnNqIhNM8DupQ + I WOV5gtl6pTC7CgeVTVyRiQEiBBABAgAMBQJLOGXuBQMAEnUAAAoJEJcQuJvKV618 ll4IAKJ9mm4jb0c8fe9 + uDI8eCJRbzNbVXm8zWzpA8GUtQAakwxoKv332QP1Wa1P ODNI / e3EMhsSREOZJJv79YqGxGRBTE9Kb / VjM34nas4XSnXKW28XWhKyIw + XwQAi nY2swFHh + 83Htr / mwTdJfS2aEYl2zboBvd / JZCdhOGU2GH737S / 3uEczoKkfVQ / w的 OTM8X1xWwlYWqx23k / DsGcuDs9lA2g7Mx7DSqBtVjaTkn9h0zATzXLDkmP4SAUVj cZ83WDpFre5WnizZjdXlBMM5OCexp5WpmzyHLTnaBFK4jEmnsk5C2Rnoyp8Ivz6g Ecg1tRbEXijRw ++ d2TFYlJwLKtiJASIEEAECAAwFAktKMicFAwASdQAACgkQlxC4 m8pXrXxqHQgAuYY5scKrh0m / GS9EYnyC9494lOlO6iytU0CpE6oBC31M3hfX / DBJ UbcS5szZNU + 2CPYo4ujQLZ7suN7 + tTjG6pZFfMevajT9 + JSL + NPMF8RLdLOVYmbl TmSQGNO + XGEYaKYH5oZIeIW5AKCgi2ozkdFlBBLAx7Kqo / FyybhkURFEcvEyVmgf 3KLV7IIiX / fYLfoCMCJ / Lcm9 / llSFB1n8Nvg66Xd533DKoHjueD3jyaNAVlo2mq / SIAV ++ kntvOiB3GDK5pfwHZ78WWiCpsWZpE5gzAnzJ1Y0WEigRo0PVLu3cLO0jLG 23D + H / CbfZ8rkajHJeCDQF7YVmP0t0nYpYkBIgQQAQIADAUCS1v + ZgUDABJ1AAAK CRCXELibyletfNS / CACqt2TkB86mjqM + cJ74 + dWBvJ2aFuURuxzm95i9Q / W / hU08 2iMbC3 + 0k2oD8CrTOe61P + 3oRyLjv / UEDUNzLncNe2YsA9JeV + 4hvPwH5Vp3Om13 089fCKZUbqslXNKkHiWYU + zAaZJXEuGRmRz0HbQIeAMOWF4oa226uo1e4ws1Jhc + F3E / ApCRyFBqBUdL05hapQLditYpsBjIdiBGpjzidMLE2wX2W4ZpAdN0U6BIyIqR mTPjbSkvzS9kSWFmfhQgnBDKEYJpVZgE1sN52rYC1sDeGeiuKxlzjVov9MMhYMWa Zo3R5o3F2iIM / BK6FbC252lf / Mhu3ICuXujNBZNYiQEiBBABAgAMBQJLbSH4BQMA EnUAAAoJEJcQuJvKV618kd0IAJLLwDH6gvgAlBFklQJXqQxUdcSOOVMAWtlHgWOy ozjgomZZBkRL8dtCDr9YBMcj5czcQ3qpmLJdppXhKB + kJV2iUXfDMSFXwJ4wLfIs 8FNnXw8H5U01oBkGH / Ku6ngL9Vwt + MjYHtCWkw9QueUKZnDudX9qIzLAIt + mwSTu A6 + fY4VWIg40AA0v3exaQM55YR / UhlKunpGG9o8Qkq77dMEbTMpOmBoLbOMRB3Dd MAvVU6G2l6Pcb7KobVCuOBnb6batXARV / G8sw + nzfJ16fr / KobZT2A6m + Jrqk4dl F14ljLbz16O5JGUPAryN2G2ddBdSAy7dtFSVhWWiWC9n88q5Ag0EPj6jHRAIAO /小时 iX8WzHWOMLJT54x / axeDdqn1rBDf5cWmaCWHN2ujNNlgpx5emoU9v7QStsNUCOGB bXkeO4Ar7YG + jtSR33zqNh3y5kQ0YkY3dQ0wh6nsl + wh4XIIY / 3TUZVtmdJeUBRH JlfVNFYad2hX1guFI37Ny1PoZAFsxO82g + XB / Se8r / + sbmVcONdcdIeFKrE3FjLt IjNQcxC6l9Q2Oy8KDxG / zvUZG3 + H5i3tdRMyGgmuD6gEV0GXOHYUopzLeit1 + AA0 bCk36Mwbu + BeOw / CJW3 + b0mB27hOaf9aCA855IP6fJFvtxcblq8nHIqhU3Dc9tec SL9 / S1xZ5S8ylG / xeRsAAwUH / i8KqmvAhq0X7DgCcYputwh37cuZlHOa1Ep07JRm BCDgkdQXkGrsj2Wzw7Aw / TGdWWkmn2pxb8BRui5cfcZFO7c6vryi6FpJuLucX975 + eVY50ndWkPXkJ1HF4i + HJwRqE2zliN / RHMs4LJcwXQvvjD43EE3AO6eiVFbD + QA AdxUFoOeLblKNBHPG7DPG9xL + Ni5rkE + TXShxsB7F0z7ZdJJZOG0JODmox7IstQT GoaU9u41oyZTIiXPiFidJoIZCh7fdurP8pn3X + R5HUNXMr7M + ba8lSNxce / F3kmH 0L7rsKqdh9d / aVxhJINJ + inVDnrXWVoXu9GBjT8Nco1iU9SIVAQYEQIADAUCTnc9 7QUJE / sBuAASB2VHUEcAAQEJEIxxjTtQcuH1FJsAmwWK9vmwRJ / y9gTnJ8PWf0BV roUTAKClYAhZuX2nUNwH4vlEJQHDqYa5yQ == = ghXk -----结束PGP公共钥匙块-----
要将构建密钥导入到您的个人公共GPG密钥环中,请使用
gpg --import
。
例如,如果已将密钥保存在已命名的文件中
mysql_pubkey.asc
,则import命令如下所示:
外壳> gpg --import mysql_pubkey.asc
gpg:key 5072E1F5:公钥“MySQL Release Engineering
<mysql-build@oss.oracle.com>“已导入
gpg:处理总数:1
gpg:已导入:1
gpg:找不到最终可靠的密钥
您还可以使用公钥ID从公钥服务器下载密钥
5072E1F5
:
shell> gpg --recv-keys 5072E1F5 gpg:从hkp服务器keys.gnupg.net请求密钥5072E1F5 gpg:key 5072E1F5:“MySQL Release Engineering <mysql-build@oss.oracle.com>” 1个新用户ID gpg:key 5072E1F5:“MySQL Release Engineering <mysql-build@oss.oracle.com>” 53个新签名 gpg:找不到最终可靠的密钥 gpg:处理总数:1 gpg:新用户ID:1 gpg:新签名:53
如果要将密钥导入RPM配置以验证RPM安装包,则应该能够直接导入密钥:
外壳> rpm --import mysql_pubkey.asc
如果遇到问题或需要RPM特定信息,请参见 第2.1.3.4节“使用RPM进行签名检查” 。
下载并导入公共构建密钥后,下载所需的MySQL软件包和相应的签名,该签名也可从下载页面获得。
签名文件与具有
.asc
扩展
名的分发文件具有相同的名称,
如下表中的示例所示。
表2.1源文件的MySQL包和签名文件
文件类型 | 文件名 |
---|---|
分发文件 | mysql-standard-8.0.18-linux-i686.tar.gz |
签名文件 | mysql-standard-8.0.18-linux-i686.tar.gz.asc |
确保两个文件都存储在同一目录中,然后运行以下命令以验证分发文件的签名:
外壳> gpg --verify package_name
.asc
如果下载的包有效,您将看到类似于以下内容的“好签名”:
外壳> gpg --verify mysql-standard-8.0.18-linux-i686.tar.gz.asc
gpg:Signature made Tue 01 Feb 2011 02:38:30 AM CST使用DSA密钥ID 5072E1F5
gpg:来自“MySQL Release Engineering <mysql-build@oss.oracle.com>”的好签名
Good signature
与我们网站上列出的签名相比,
该
消息表明文件签名有效。
但您可能也会看到警告,如下所示:
外壳> gpg --verify mysql-standard-8.0.18-linux-i686.tar.gz.asc
gpg:签名于2013年1月23日星期三02:25:45使用DSA密钥ID 5072E1F5
gpg:检查trustdb
gpg:找不到最终可靠的密钥
gpg:来自“MySQL Release Engineering <mysql-build@oss.oracle.com>”的好签名
gpg:警告:此密钥未通过可信签名认证!
gpg:没有迹象表明签名属于所有者。
主键指纹:A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5
这是正常的,因为它们取决于您的设置和配置。 以下是对这些警告的解释:
gpg:找不到最终可信赖的密钥 :这意味着您或您的信任网不会“最终信任”特定密钥,这对于验证文件签名是可以的。
警告:此密钥未通过可信签名认证! 没有迹象表明签名属于所有者。 :这是指您相信自己拥有真正的公钥的信任程度。 这是个人决定。 理想情况下,MySQL开发人员会亲自向您提供密钥,但更常见的是,您下载了密钥。 下载是否被篡改? 可能不是,但这个决定取决于你。 建立信任网是信任它们的一种方法。
有关如何使用公钥的更多信息,请参阅GPG文档。
在
第2.1.3.2,“签名检查使用GnuPG”
部分介绍如何使用GPG验证MySQL的下载。
该指南也适用于Microsoft Windows,但另一种选择是使用像
Gpg4win
这样的GUI工具
。
您可以使用不同的工具,但我们的示例基于Gpg4win,并利用其捆绑的
Kleopatra
GUI。
下载并安装Gpg4win,然后加载Kleopatra。 该对话框应类似于:
接下来,添加MySQL Release Engineering证书。 通过单击
, 来执行此操作 。 在搜索框中键入“Mysql Release Engineering”,然后按“ 。选择“MySQL Release Engineering”证书。 指纹和密钥ID必须为“5072E1F5”,或选择 导入的证书” 选项卡下。
以确认证书有效。 现在,通过单击“ 将其 。 将显示导入对话框,选择“ ,此证书现在将列在“接下来,配置证书的信任级别。 选择我们的证书,然后从主菜单中选择 我认为支票 对我们的证书 非常准确 ,否则您可能无法验证我们的签名。 选择 我认为检查非常准确 以启用“完全信任”,然后按 。
, 。 我们建议选择
接下来,验证下载的MySQL包文件。
这需要打包文件和签名的文件。
签名文件必须与打包文件具有相同的名称,但具有附加的
.asc
扩展名,如下表中的示例所示。
签名链接到每个MySQL产品的下载页面。
您必须
.asc
使用此签名
创建
文件。
表2.2用于Microsoft Windows的MySQL安装程序的MySQL包和签名文件
文件类型 | 文件名 |
---|---|
分发文件 | mysql-installer-community-8.0.18.msi |
签名文件 | mysql-installer-community-8.0.18.msi.asc |
确保两个文件都存储在同一目录中,然后运行以下命令以验证分发文件的签名。
将signature(
.asc
)文件
拖放
到Kleopatra中,或从
,
加载对话框
,然后选择
.msi
或
.asc
文件。
单击“
以检查文件。 两个最常见的结果将如下所示,虽然黄色警告看起来有问题,但以下表示文件检查成功通过。 您现在可以运行此安装程序。看到红色“签名错误”错误表示文件无效。 如果看到此错误,请不要执行MSI文件。
在
第2.1.3.2,“签名检查使用GnuPG”
部分解释了为什么你可能不会看到一个绿色的
Good
signature
结果。
对于RPM软件包,没有单独的签名。 RPM软件包具有内置GPG签名和MD5校验和。 您可以通过运行以下命令来验证包:
外壳> rpm --checksig package_name
.rpm
例:
外壳> rpm --checksig MySQL-server-8.0.18-0.linux_glibc2.5.i386.rpm
MySQL-server-8.0.18-0.linux_glibc2.5.i386.rpm:md5 gpg OK
如果您使用的是RPM 4.1并且它抱怨
(GPG)
NOT OK (MISSING KEYS: GPG#5072e1f5)
,即使您已将MySQL公共构建密钥导入到您自己的GPG密钥环中,您仍需要先将密钥导入RPM密钥环。
RPM 4.1不再使用您的个人GPG密钥环(或GPG本身)。
相反,RPM维护一个单独的密钥环,因为它是一个系统范围的应用程序,而用户的GPG公钥环是一个用户特定的文件。
要将MySQL公钥导入RPM密钥环,首先获取密钥,然后使用
rpm --import
导入密钥。
例如:
shell> gpg --export -a 5072e1f5> 5072e1f5.asc shell> rpm --import 5072e1f5.asc
或者, rpm 还支持直接从URL加载密钥,您可以使用此手册页:
外壳> rpm --import https://dev.mysql.com/doc/refman/8.0/en/checking-gpg-signature.html
如果需要获取MySQL公钥,请参见 第2.1.3.2节“使用GnuPG进行签名检查” 。
Oracle提供了一组MySQL的二进制发行版。
这些包括
用于许多平台
的压缩
tar
文件(具有
.tar.xz
扩展名的
文件
)
形式的通用二进制分发
,以及用于所选平台的特定于平台的包格式的二进制文件。
本节介绍 在Unix / Linux平台上 从压缩的 tar 文件二进制发行版 安装MySQL 。 有关其他特定于平台的二进制包格式,请参阅本手册中其他特定于平台的部分。 例如,对于Windows发行版,请参见 第2.3节“在Microsoft Windows上安装MySQL” 。 有关 如何以 不同的分发格式获取MySQL, 请参见 第2.1.2节“如何获取MySQL” 。
MySQL压缩的
tar
文件二进制发行版具有表单的名称
,其中
是数字(例如
),并
指示分发所针对的操作系统的类型(例如,
或
)。
mysql-
VERSION
-OS
.tar.xzVERSION
8.0.18
OS
pc-linux-i686
winx64
还有一个
用于Linux通用二进制发行
版的MySQL压缩
tar
文件
的
“
最小安装
”
版本,该
文件具有表单的名称
。
最小安装分发不包括调试二进制文件,并且剥离了调试符号,使其明显小于常规二进制分发。
如果您选择安装最小安装分发,请记住在随后的说明中调整文件名格式的差异。
mysql-
VERSION
-OS
-minimal.tar.xz
如果您以前使用操作系统本机程序包管理系统(如Yum或APT)安装了MySQL,则使用本机二进制文件安装时可能会遇到问题。
确保您之前的MySQL安装已完全删除(使用您的包管理系统),并且还删除了任何其他文件,例如旧版本的数据文件。
您也应该检查配置文件,如
/etc/my.cnf
或
/etc/mysql
目录,并删除它们。
MySQL依赖于
libaio
库。
如果未在本地安装此库,则数据目录初始化和后续服务器启动步骤将失败。
如有必要,请使用适当的包管理器进行安装。
例如,在基于Yum的系统上:
shell>yum search libaio
#搜索信息 shell>yum install libaio
#install library
或者,在基于APT的系统上:
shell>apt-cache search libaio
#搜索信息 shell>apt-get install libaio1
#install library
要安装压缩的
tar
文件二进制分发版,请在您选择的安装位置(通常
/usr/local/mysql
)将
其解压缩
。
这将创建下表中显示的目录。
表2.3通用Unix / Linux二进制包的MySQL安装布局
目录 | 目录的内容 |
---|---|
bin |
mysqld 服务器,客户端和实用程序 |
docs |
信息格式的MySQL手册 |
man |
Unix手册页 |
include |
包含(标题)文件 |
lib |
图书馆 |
share |
用于数据库安装的错误消息,字典和SQL |
support-files |
其他支持文件 |
mysqld 二进制文件的 调试版本 可用作 mysqld-debug 。 要从源代码分发中编译自己的MySQL调试版,请使用相应的配置选项来启用调试支持。 请参见 第2.9节“从源安装MySQL” 。
要安装和使用MySQL二进制分发版,命令序列如下所示:
shell>groupadd mysql
shell>useradd -r -g mysql -s /bin/false mysql
shell>cd /usr/local
shell> shell> shell> shell> shell> shell> shell> shell> shell>tar xvf
/path/to/mysql-VERSION-OS
.tar.xzln -s
full-path-to-mysql-VERSION-OS
mysqlcd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql
bin/mysql_ssl_rsa_setup
bin/mysqld_safe --user=mysql &
#Next命令是可选的 外壳>cp support-files/mysql.server /etc/init.d/mysql.server
此过程假定您具有
root
(管理员)对系统的访问权限。
或者,您可以使用
sudo
(Linux)或
pfexec
(Solaris)命令为
每个命令添加前缀
。
该
mysql-files
目录提供了一个方便的位置,可用作
secure_file_priv
系统变量
的值
,从而将导入和导出操作限制为特定目录。
请参见
第5.1.8节“服务器系统变量”
。
下面是用于安装二进制分发的前面描述的更详细版本。
如果您的系统还没有用于运行
mysqld
的用户和组
,则可能需要创建它们。
以下命令添加
mysql
组和
mysql
用户。
您可能想要调用用户并将其他内容分组而不是
mysql
。
如果是这样,请在以下说明中替换相应的名称。
useradd
和
groupadd
的语法
在不同版本的Unix / Linux上可能略有不同,或者它们可能有不同的名称,如
adduser
和
addgroup
。
shell>groupadd mysql
shell>useradd -r -g mysql -s /bin/false mysql
由于仅出于所有权目的而不是登录目的而要求用户,因此
useradd
命令使用
-r
和
-s /bin/false
选项来创建对服务器主机没有登录权限的用户。
如果您的
useradd
不支持它们,
请忽略这些选项
。
选择要在其下解压缩分发的目录并将位置更改为该目录。
这里的示例解压缩下的分发
/usr/local
。
因此,这些说明假定您有权创建文件和目录
/usr/local
。
如果该目录受保护,则必须执行安装
root
。
外壳> cd /usr/local
使用 第2.1.2节“如何获取MySQL”中 的说明获取分发文件 。 对于给定的版本,所有平台的二进制发行版都是从相同的MySQL源代码分发构建的。
解压缩分发包,从而创建安装目录。
如果它有
选项支持,
tar
可以解压缩并解压缩发行版
z
:
外壳> tar xvf /path/to/mysql-VERSION-OS
.tar.xz
该
焦油
命令创建的目录
。
mysql-
VERSION
-OS
要从压缩的
tar
文件二进制分发版
安装MySQL
,您的系统必须具有GNU
XZ
Utils
来解压缩分发版并使用合理的
tar
来解压缩它。
在MySQL Server 8.0.12中,压缩算法从Gzip更改为XZ; 并且通用二进制文件的文件扩展名从.tar.gz更改为.tar.xz。
已知
GNU
tar
可以工作。
某些操作系统提供
的标准
tar
无法解析MySQL发行版中的长文件名。
您应该下载并安装GNU
tar
,或者如果可用,请使用预安装的GNU tar版本。
通常这可以作为
gnutar
,
gtar
或
GNU或自由软件目录中的
tar
使用,例如
/usr/sfw/bin
或
/usr/local/bin
。
GNU
tar
可从
http://www.gnu.org/software/tar/获得
。
如果您的
tar
不支持该
xz
格式,则使用
xz
命令解压缩分发和
tar
以解压缩它。
使用
以下替代命令
替换前面的
tar
命令以解压缩并提取分发:
外壳> xz -dc /path/to/mysql-VERSION-OS
.tar.xz | tar x
接下来,创建一个指向 tar 创建的安装目录的符号链接 :
外壳> ln -s full-path-to-mysql-VERSION-OS
mysql
该
ln
命令创建指向安装目录的符号链接。
这使您可以更轻松地引用它
/usr/local/mysql
。
为了避免在使用MySQL时始终键入客户端程序的路径名,可以将
/usr/local/mysql/bin
目录
添加
到
PATH
变量中:
外壳> export PATH=$PATH:/usr/local/mysql/bin
安装过程的其余部分涉及设置分发所有权和访问权限,初始化数据目录,启动MySQL服务器以及设置配置文件。 有关说明,请参见 第2.10节“安装后设置和测试” 。
MySQL 8.0 Server要求Microsoft Visual C ++ 2015 Redistributable Package在Windows平台上运行。 在安装服务器之前,用户应确保已在系统上安装该软件包。 该软件包可从 Microsoft下载中心获得 。 此外,MySQL调试二进制文件需要安装Visual Studio 2015。
MySQL仅适用于Microsoft Windows 64位操作系统。 有关支持的Windows平台信息,请参阅 https://www.mysql.com/support/supportedplatforms/database.html 。
在Microsoft Windows上安装MySQL有不同的方法。
最简单和推荐的方法是下载MySQL Installer(适用于Windows),并让它安装和配置特定版本的MySQL Server,如下所示:
从 https://dev.mysql.com/downloads/installer/ 下载MySQL安装程序 并执行它。
与标准的MySQL安装程序不同,较小的“网络社区”版本不捆绑任何MySQL应用程序,但会下载您选择安装的MySQL产品。
确定用于初始安装MySQL产品的安装类型。 例如:
Developer Default :提供一种安装类型,其中包括MySQL Server的选定版本以及与MySQL开发相关的其他MySQL工具,例如MySQL Workbench。
仅限服务器 :为没有其他产品的所选MySQL服务器版本提供设置。
自定义 :允许您选择任何版本的MySQL服务器和其他MySQL产品。
安装服务器实例(和产品),然后通过首先为服务器实例选择以下可用性级别之一来开始服务器配置:
独立MySQL服务器/经典MySQL复制(默认)
将服务器实例配置为在没有高可用性的情况下运行。
InnoDB集群
提供基于MySQL Group Replication的两个配置选项:
在本地主机上的沙箱InnoDB集群中配置多个服务器实例(仅用于测试)。
创建一个新的InnoDB集群并配置一个种子实例或将新的服务器实例添加到现有的InnoDB集群。
按照屏幕上的说明完成配置过程。 有关每个步骤的更多信息,请参见 第2.3.3.3.1节“使用MySQL Installer进行MySQL服务器配置” 。
MySQL现已安装。 如果您将MySQL配置为服务,则每次重新启动系统时Windows都会自动启动MySQL服务器。 此外,此过程会在本地主机上安装MySQL Installer应用程序,稍后您可以使用该应用程序升级或重新配置MySQL服务器。
如果您在系统上安装了MySQL Workbench,请考虑使用它来检查新的MySQL服务器连接。 默认情况下,程序在安装MySQL后自动启动。
可以将MySQL作为标准应用程序或Windows服务运行。 通过使用服务,您可以通过标准Windows服务管理工具监视和控制服务器的操作。 有关更多信息,请参见 第2.3.5.8节“将MySQL作为Windows服务启动” 。
为了适应该
RESTART
语句,MySQL服务器在作为服务或独立运行时分叉,以使监视进程能够监督服务器进程。
在这种情况下,您将观察到两个
mysqld
进程。
如果
RESTART
不需要功能,则可以使用该
--no-monitor
选项
启动服务器
。
请参见
第13.7.7.8节“RESTART语法”
。
通常,您应该使用具有管理员权限的帐户在Windows上安装MySQL。
否则,您可能会遇到某些操作的问题,例如编辑
PATH
环境变量或访问
服务控制管理器
。
安装后,不需要使用具有管理员权限的用户执行MySQL。
有关在Windows平台上使用MySQL的限制列表,请参见 第C.10.5节“Windows平台限制” 。
除了MySQL Server软件包之外,您可能还需要或希望其他组件在您的应用程序或开发环境中使用MySQL。 这些包括但不限于:
要使用ODBC连接到MySQL服务器,您必须具有Connector / ODBC驱动程序。 有关更多信息,包括安装和配置说明,请参阅 MySQL Connector / ODBC开发人员指南 。
MySQL Installer将为您安装和配置Connector / ODBC。
要将MySQL服务器与.NET应用程序一起使用,必须具有Connector / NET驱动程序。 有关更多信息,包括安装和配置说明,请参阅 MySQL Connector / NET Developer Guide 。
MySQL Installer将为您安装和配置MySQL Connector / NET。
适用于Windows的MySQL发行版可以从 https://dev.mysql.com/downloads/ 下载 。 请参见 第2.1.2节“如何获取MySQL” 。
MySQL for Windows有几种分发格式,详见此处。 一般来说,您应该使用MySQL Installer。 它包含比旧版MSI更多的功能和MySQL产品,比压缩文件更易于使用,并且您无需其他工具即可启动并运行MySQL。 MySQL安装程序自动安装MySQL服务器和其他MySQL产品,创建选项文件,启动服务器,并使您能够创建默认用户帐户。 有关选择包的更多信息,请参见 第2.3.2节“选择安装包” 。
MySQL安装程序分发包括MySQL服务器和其他MySQL产品,包括MySQL Workbench,用于Visual Studio的MySQL和用于Excel的MySQL。 MySQL Installer还可用于将来升级这些产品(请参阅 https://dev.mysql.com/doc/mysql-compat-matrix/en/ )。
有关使用MySQL Installer安装MySQL的说明,请参见 第2.3.3节“用于Windows的MySQL安装程序” 。
标准二进制分发(打包为压缩文件)包含您解压缩到所选位置的所有必需文件。 此程序包包含完整Windows MSI Installer程序包中的所有文件,但不包含安装程序。
有关使用压缩文件安装MySQL的说明,请参见
第2.3.5节“使用
noinstall
ZIP存档
在Microsoft Windows上安装MySQL
”
。
源分发格式包含使用Visual Studio编译器系统构建可执行文件的所有代码和支持文件。
有关在Windows上从源代码构建MySQL的说明,请参见 第2.9节“从源代码安装MySQL” 。
大桌支持
如果需要大小超过4GB的表,请在NTFS或更新的文件系统上安装MySQL。
不要忘记使用
MAX_ROWS
和
AVG_ROW_LENGTH
创建表时。
请参见
第13.1.20节“CREATE TABLE语法”
。
MySQL和病毒检查软件
包含MySQL数据和临时表的目录上的病毒扫描软件(如Norton / Symantec Anti-Virus)可能会导致MySQL的性能和病毒扫描软件错误识别包含垃圾邮件的文件内容等问题。 这是由于病毒扫描软件使用的指纹识别机制,以及MySQL快速更新不同文件的方式,这可能被识别为潜在的安全风险。
安装MySQL Server后,建议您在
datadir
用于存储MySQL表数据
的主目录(
)
上禁用病毒扫描
。
病毒扫描软件通常内置一个系统,可以忽略特定的目录。
此外,默认情况下,MySQL会在标准Windows临时目录中创建临时文件。
要防止临时文件也被扫描,请为MySQL临时文件配置单独的临时目录,并将此目录添加到病毒扫描例外列表中。
为此,请将
tmpdir
参数
的配置选项添加
到
my.ini
配置文件中。
有关更多信息,请参见
第2.3.5.2节“创建选项文件”
。
对于Windows上的MySQL 8.0,默认安装目录
C:\Program Files\MySQL\MySQL Server
8.0
用于使用MySQL Installer执行的安装。
如果您使用ZIP存档方法安装MySQL,您可能更喜欢安装
C:\mysql
。
但是,子目录的布局保持不变。
所有文件都位于此父目录中,使用下表中显示的结构。
表2.4 Microsoft Windows的默认MySQL安装布局
目录 | 目录的内容 | 笔记 |
---|---|---|
bin |
mysqld 服务器,客户端和实用程序 | |
%PROGRAMDATA%\MySQL\MySQL Server 8.0\ |
日志文件,数据库 |
Windows系统变量
%PROGRAMDATA%
默认为
C:\ProgramData
。
|
docs |
发布文档 |
使用MySQL Installer,使用该
Modify
操作选择此可选文件夹。
|
include |
包含(标题)文件 | |
lib |
图书馆 | |
share |
其他支持文件,包括错误消息,字符集文件,示例配置文件,用于数据库安装的SQL |
对于MySQL 8.0,在Windows上安装MySQL时有多种安装包格式可供选择。 本节中描述的包格式为:
程序数据库(PDB)文件(文件扩展名为
pdb
)可在出现问题时提供有关调试MySQL安装的信息。
这些文件包含在MySQL的ZIP Archive分发版(但不包括MSI发行版)中。
该软件包具有类似于
mysql-installer-community-8.0.18.0.msi
或
的文件名
mysql-installer-commercial-8.0.18.0.msi
,并利用MSI自动安装MySQL服务器和其他产品。
MySQL Installer将下载并应用更新到自身以及每个已安装的产品。
它还配置已安装的MySQL服务器(包括沙箱InnoDB集群测试设置)和MySQL路由器。
建议大多数用户使用MySQL Installer。
MySQL Installer可以安装和管理(添加,修改,升级和删除)许多其他MySQL产品,包括:
应用程序 - MySQL Workbench,用于Visual Studio的MySQL,用于Excel的MySQL,用于MySQL Shell和MySQL路由器(请参阅 https://dev.mysql.com/doc/mysql-compat-matrix/en/ )
连接器 - MySQL Connector / C,MySQL Connector / C ++,MySQL Connector / NET,Connector / ODBC,MySQL Connector / Python,MySQL Connector / J,MySQL Connector / Node.js
文档 - MySQL手册(PDF格式),示例和示例
MySQL Installer在所有MySQL支持的Windows版本上运行(请参阅 https://www.mysql.com/support/supportedplatforms/database.html )。
由于MySQL Installer不是Microsoft Windows的本机组件,并且依赖于.NET,因此它不适用于最小的安装选项,如Windows Server的Server Core版本。
有关如何使用MySQL Installer安装MySQL的说明,请参见 第2.3.3节“用于Windows的MySQL安装程序” 。
这些软件包包含完整MySQL Server安装包中的文件,但GUI除外。 此格式不包括自动安装程序,必须手动安装和配置。
该
noinstall
ZIP档案被分成两个单独的压缩文件。
主包名为
。
这包含在系统上使用MySQL所需的组件。
可选的MySQL测试套件,MySQL基准套件和调试二进制文件/信息组件(包括PDB文件)位于一个名为的单独压缩文件中
。
mysql-
VERSION
-winx64.zipmysql-
VERSION
-winx64-debug-test.zip
如果您选择安装
noinstall
ZIP存档,请参见
第2.3.5节“使用
noinstall
ZIP存档
在Microsoft Windows上安装MySQL
”
。
有关在Windows平台上使用Oracle提供的MySQL Docker映像的信息,请参见 第2.5.6.3节“使用Docker在Windows和其他非Linux平台上部署MySQL” 。
Oracle提供的MySQL Docker映像专为Linux平台构建。 其他平台不受支持,从Oracle运行MySQL Docker镜像的用户自行承担风险。
MySQL Installer是一个独立的应用程序,旨在减轻安装和配置在Microsoft Windows上运行的MySQL产品的复杂性。 它支持以下MySQL产品:
MySQL服务器
MySQL Installer可以同时在同一主机上安装和管理多个独立的MySQL服务器实例。 例如,MySQL Installer可以在同一主机上安装,配置和升级MySQL 5.6,MySQL 5.7和MySQL 8.0的单独实例。 MySQL Installer不允许主版本号和次版本号之间的服务器升级,但允许在版本系列中进行升级(例如5.7.18到5.7.19)。
MySQL Installer无法 在同一主机上安装MySQL服务器的 Community 和 Commercial (标准版和企业版)版本。 如果您需要在同一主机上同时发布这两个版本,请考虑使用 ZIP存档 分发来安装其中一个版本。
MySQL应用程序
MySQL Workbench,MySQL Shell,MySQL路由器,用于Visual Studio的MySQL,用于Excel的MySQL,MySQL通知程序和MySQL实用程序。
MySQL连接器
MySQL Connector / NET,MySQL Connector / Python,MySQL Connector / ODBC,MySQL Connector / J,MySQL Connector / C和MySQL Connector / C ++。
要安装MySQL Connector / Node.js,请参阅
https://dev.mysql.com/downloads/connector/nodejs/
。
Connector / Node.js不提供
.msi
与MySQL Installer一起使用
的
文件。
文档和示例
MySQL参考手册(按版本)PDF格式和MySQL数据库样本(按版本)。
MySQL Installer需要Microsoft .NET Framework 4.5.2或更高版本。 如果主机上未安装此版本,则可以通过访问 Microsoft网站 下载该版本 。
从 https://dev.mysql.com/downloads/installer/ 下载软件, 以安装适用于Windows的所有MySQL产品的Community版本。 选择以下MySQL Installer程序包选项之一:
Web
:仅包含MySQL安装程序和配置文件。
Web包仅下载您选择安装的MySQL产品,但每次下载都需要Internet连接。
该文件的大小约为2 MB;
该文件的名称的形式为
,其中
是MySQL服务器的版本号,如8.0和
是包号,它从0开始。
mysql-installer-community-
web
-VERSION
.N
.msiVERSION
N
完整或当前捆绑包
:捆绑所有适用于Windows的MySQL产品(包括MySQL服务器)。
的文件大小为300 MB,该名称的形式为
,其中
是MySQL服务器的版本号,如8.0和
是包号,它从0开始。
mysql-installer-community-
VERSION
.N
.msiVERSION
N
从 https://edelivery.oracle.com/ 下载软件 以安装适用于Windows的MySQL产品的商业(标准版或企业版)版本。 商业版本包括社区版本中的所有当前和以前的GA版本(不包括开发里程碑版本),还包括以下产品:
工作台SE / EE
MySQL企业备份
MySQL企业防火墙
Commercial版本与My Oracle Support(MOS)帐户集成。 有关知识库内容和修补程序,请参阅 My Oracle Support 。
当您第一次下载MySQL安装程序时,安装向导将指导您完成MySQL产品的初始安装。 如下图所示,初始设置是整个过程中的一次性活动。 MySQL安装程序在初始设置期间检测主机上安装的现有MySQL产品,并将它们添加到要管理的产品列表中。
MySQL安装程序在初始设置期间将配置文件(稍后描述)提取到主机的硬盘驱动器。 虽然MySQL Installer是一个32位应用程序,但它可以安装32位和64位二进制文件。
初始设置会在
组 下的“开始”菜单中添加一个链接 。 单击 , , , 以打开MySQL安装程序。MySQL安装程序要求您在安装新的MySQL软件包之前接受许可协议。 接受协议条款后,您可以添加,更新,重新配置和删除您下载的MySQL Installer版本提供的所有产品和功能。
对于Commercial版本,在安装捆绑的MySQL产品时输入My Oracle Support(MOS)凭据是可选的,但在选择MySQL Installer必须下载的非捆绑MySQL产品时需要您的凭据。
非捆绑产品是
.msi
在初始设置后使用MySQL Installer下载的
任何
文件。
您的凭据必须与您在Oracle中注册的用户名和密码相匹配,才能访问支持站点。
在初始设置期间,系统会提示您选择要在主机上安装的MySQL产品。 一种替代方法是使用符合您的设置要求的预定安装类型。 默认情况下,GA和预发布产品都包含在下载和安装中,包括 Developer Default , Client only 和 Full setup类型。 选择 仅安装GA产品 选项以限制产品集仅在使用这些安装类型时包含GA产品。
选择以下安装类型之一仅确定初始安装,并且不会限制您以后安装或更新Windows产品的能力:
开发人员默认值 :安装以下与MySQL合作开发应用程序的产品:
MySQL Server (安装您下载MySQL Installer时选择的版本。)
MySQL连接器 (.NET / Python / ODBC / Java / C / C ++)
MySQL实用工具
MySQL文档
MySQL示例和示例
仅限服务器 :仅安装MySQL服务器。 此安装类型安装您下载MySQL安装程序时选择的通用可用性(GA)或开发版本服务器。 它使用默认安装和数据路径。
仅限客户端
:仅安装最新的MySQL应用程序和MySQL连接器。
此安装类型与类型类似
Developer
Default
,不同之处在于它不包括MySQL服务器或通常与服务器捆绑在一起的客户端程序,例如
mysql
或
mysqladmin
。
完整 :安装所有可用的MySQL产品。
自定义自 定义安装类型使您可以从中筛选和选择单个MySQL产品 MySQL安装程序目录中 。
使用
Custom
安装类型进行安装:
通常下载位置无法提供的产品或产品版本。 该目录包含所有产品版本,包括预发布(或开发)与GA之间的其他版本。
使用备用安装路径,数据路径或两者的MySQL服务器实例。 有关如何调整路径的说明,请参见 第2.3.3.2节“使用MySQL安装程序设置备用服务器路径” 。
同一主机上同时有两个或多个MySQL服务器版本(例如,5.6,5.7和8.0)。
产品和功能的特定组合不作为预定安装类型提供。 例如,您可以安装单个产品,例如MySQL Workbench,而不是安装Windows的所有客户端应用程序。
当主机上已存在要安装的产品的默认安装或数据文件夹(MySQL服务器所需)时,向导将显示“ 路径冲突” 步骤以识别每个冲突,并使您能够采取措施以避免在现有文件夹中包含文件被新安装覆盖。 只有在MySQL Installer检测到冲突时,才会在初始设置中看到此步骤。
要解决路径冲突,请执行以下操作之一:
从列表中选择产品以显示冲突选项。 警告符号表示哪个路径存在冲突。 使用“浏览”按钮选择新路径,然后单击“
。
如果适用,请
单击“上
Custom
设置类型,您可以选择单个产品版本。
单击“
忽略冲突并覆盖现有文件夹中的文件。删除现有产品。 单击“ 仪表板中 的“删除”操作从主机中删除已安装的产品 。
以停止初始设置并关闭MySQL安装程序。 从“开始”菜单再次打开MySQL安装程序,并使用
MySQL Installer使用
package-rules.xml
文件中的
条目
来确定是否在主机上安装了每个产品的必备软件。
当需求检查失败时,MySQL安装程序会显示“
检查要求”
步骤以帮助您更新主机。
下图标识并描述了此步骤的关键区域。
显示初始设置中的当前步骤。 此列表中的步骤可能会略有不同,具体取决于主机上已安装的产品,必备软件的可用性以及要在主机上安装的产品。
按产品列出所有待处理的安装要求,并指示状态如下:
“ 状态” 列 中的空白 表示MySQL Installer可以尝试下载并安装所需的软件。
“ 状态” 列 中的 “ 手动 ”一词 表示您必须手动满足要求。 选择列表中的每个产品以查看其要求详细信息。
详细描述要求以帮助您完成每个手动解决方案。 如果可能,提供下载URL。 下载并安装所需软件后,单击“
以验证是否已满足要求。提供以下设置操作以继续:
- 返回上一步。 此操作使您可以选择不同的设置类型。
- 让MySQL安装程序尝试下载并安装所有项目所需的软件,而无需手动状态。 手动要求由您解决,并通过单击 进行验证 。
- 不执行自动应用要求的请求,并继续安装,不包括未通过检查要求步骤的产品。
产品目录 。
- 停止安装MySQL产品。 由于已安装MySQL Installer,因此从“开始”菜单打开MySQL Installer并 从仪表板中 单击“ 时,将再次开始初始设置 。 有关可用管理操作的说明,请参阅
所有MySQL Installer文件都位于
C:\Program Files
(x86)
和
C:\ProgramData
文件夹中。
下表描述了将MySQL Installer定义为独立应用程序的文件和文件夹。
更新或卸载MySQL Installer时,既不会更改也不会删除已安装的MySQL产品。
表2.5 MySQL安装程序配置文件
文件或文件夹 | 描述 | 文件夹层次结构 |
---|---|---|
MySQL Installer for Windows |
此文件夹包含运行MySQL Installer和 MySQLInstallerConsole.exe 所需的所有文件 ,这是一个具有类似功能的命令行程序。 | C:\Program Files (x86) |
Templates |
该
Templates
文件夹为每个版本的MySQL服务器都有一个文件。
模板文件包含用于动态计算某些值的键和公式。
|
C:\ProgramData\MySQL\MySQL Installer for
Windows\Manifest |
package-rules.xml |
此文件包含要安装的每个产品的先决条件。 |
C:\ProgramData\MySQL\MySQL Installer for
Windows\Manifest |
produts.xml |
该
|
C:\ProgramData\MySQL\MySQL Installer for
Windows\Manifest |
Product Cache |
该
|
C:\ProgramData\MySQL\MySQL Installer for Windows |
您可以在安装MySQL服务器时更改默认安装路径,数据路径或两者。 安装服务器后,如果不删除并重新安装服务器实例,则无法更改路径。
更改MySQL服务器的路径
确定要更改的MySQL服务器并显示“ 高级选项” 链接。
单击“ 高级选项” 以打开一个对话框,您可以在其中输入备用路径名称。 验证路径名后,单击“ 继续配置步骤。
MySQL Installer提供了一个类似向导的工具来安装和配置Windows的新MySQL产品。 与仅运行一次的初始设置不同,每次下载或安装新产品时,MySQL安装程序都会调用该向导。 对于首次安装,初始设置的步骤直接进入安装步骤。
对执行MySQL Installer的用户授予对所有生成文件的完全权限,例如
my.ini
。
这并不适用于文件和目录的特定产品,如MySQL服务器数据目录
%ProgramData%
是所拥有
SYSTEM
。
在主机上安装和配置的产品遵循可能需要在各个步骤中输入的一般模式。 MySQL Installer使用以下工作流程将所有选定的产品加载到一起:
产品下载。
如果您安装了完整(非Web)MySQL Installer程序包,
.msi
则
Product Cache
在初始设置期间
所有
文件都已加载到该
文件夹,并且不会再次下载。
否则,单击“
开始下载。
每个产品的状态从更改
Downloading
为
Downloaded
。
产品安装。
每个产品列表中的变化从状态
Ready to Install
到
Installing
,最后到
Complete
。
在此过程中,单击“
显示详细信息”
以查看安装操作。
如果此时取消安装,则会安装产品,但尚未配置服务器(如果已安装)。 要重新启动服务器配置,请从“开始”菜单打开MySQL Installer,然后单击 仪表板中相应服务器旁边 的“ 重新配置” 链接。
产品配置。
此步骤仅适用于MySQL服务器,MySQL路由器和示例。
列表中每个项目的状态应该表明
Ready to Configure
。
单击“
以启动列表中所有项目的配置向导。 此步骤中显示的配置选项特定于您选择安装的数据库或路由器的版本。单击“ MySQL Installer仪表板 。
以开始应用配置选项,或单击“上 (重复)以返回到每个配置页。 单击 打开安装完成。 此步骤最终确定不需要配置的产品的安装。 它使您能够将日志复制到剪贴板并启动某些应用程序,例如MySQL Workbench和MySQL Shell。 单击 MySQL Installer仪表板 。
打开MySQL Installer执行MySQL服务器的初始配置。 例如:
对于MySQL 8.0发行版系列,可以将服务器配置为作为独立数据库运行,作为单个主机上的沙箱InnoDB集群运行,或者在本地网络内创建生产InnoDB集群(请参阅 第2.3.3.3.1.1节,高可用性“ )。
它创建
my.ini
用于配置MySQL服务器
的配置文件(
)。
写入此文件的值受安装过程中所做选择的影响。
一些定义取决于主机。
例如,如果主机的内核少于三个,则启用query_cache。
查询缓存在MySQL 5.7中已弃用,在MySQL 8.0(及更高版本)中已删除。
默认情况下,会添加MySQL服务器的Windows服务。
提供MySQL服务器的默认安装和数据路径。 有关如何更改默认路径的说明,请参见 第2.3.3.2节“使用MySQL安装程序设置备用服务器路径” 。
它可以选择创建具有基于常规角色的可配置权限的MySQL服务器用户帐户,例如DB Administrator,DB Designer和Backup Admin。
它可选地创建一个
MysqlSys
以有限权限
命名的Windows用户
,然后运行MySQL服务器。
用户帐户也可以在MySQL Workbench中添加和配置。
选中“ 显示高级选项” 可以设置其他“ 日志选项” 。 这包括为错误日志,常规日志,慢查询日志定义自定义文件路径(包括执行查询所需的秒数配置)和二进制日志。
在配置过程中,单击“
继续 ,或 单击 上一步” 上一步。 单击“ 在最后一步 ”以应用服务器配置。以下部分描述了适用于Windows上MySQL服务器的服务器配置选项。 您安装的服务器版本将确定您可以配置的步骤和选项。 配置MySQL服务器可能包括部分或全部步骤。
MySQL Installer使您能够使用MySQL Group Replication将MySQL Server作为独立实例或高可用性集群的成员进行安装,配置和部署。 在任何一种情况下,MySQL Installer都会将服务器(或服务器)的安装和配置限制为本地Windows主机。
独立MySQL服务器/经典MySQL复制(默认)
选择此选项可将一个MySQL实例配置为作为独立数据库服务器运行。 如果您打算稍后设置经典复制,然后将此服务器包含在自定义解决方案中,则此选项非常理想。 其余的配置步骤将在后面的部分中介绍,从 类型和网络开始 。
InnoDB集群
选择此选项可创建或扩展基于MySQL Group Replication的InnoDB集群解决方案(请参见 第21.1节“InnoDB集群简介” )。 您可以配置(或重新配置)至少三个服务器实例,以在单台计算机上执行基本设置作为仅测试沙箱群集,或在本地网络中创建生产群集。
InnoDB集群日志详细程度。
此配置步骤包括可调整日志,该日志在生产或沙箱集群中的每个服务器实例的配置期间捕获信息。
值为:
MINIMAL
,
MEDIUM
(默认值)和
DEBUG
。
如果群集配置失败,请使用
MySQL Installer仪表板
中的“重新
配置”
操作
重新启动配置,然后将详细级别设置为
在下次尝试期间收集其他信息。
DEBUG
MySQL Installer提供以下配置变体来部署InnoDB集群:
设置仅用于测试的本地服务器群集
选择“
创建沙盒InnoDB集群以进行测试”
以启用此选项。
出现提示时,定义群集中的服务器沙箱实例数,为
root
用户
设置密码
,并根据需要调整InnoDB群集日志详细级别。
有关配置的更详细说明,请参阅
使用MySQL安装程序部署Sandbox InnoDB群集
。
此设置需要MySQL 5.7.17或更高版本。
创建或加入InnoDB集群
要使用MySQL Installer设置高可用性InnoDB集群,您必须在本地网络上至少拥有三台计算机。 如果需要更高级的设置,请使用MySQL Shell配置群集中的部分或全部服务器实例。 有关如何执行本地网络群集设置的详细信息,请参阅 使用MySQL Installer设置InnoDB群集 。 此设置需要MySQL 8.0.0或更高版本。
InnoDB集群旨在与MySQL Shell一起运行,使您可以执行高级集群管理,并使用MySQL路由器自动执行客户端应用程序和服务器实例之间的连接。 使用MySQL Installer在Windows上部署集群不需要MySQL Shell和MySQL Router。
沙箱部署包括在同一台计算机上一起运行的多个服务器沙箱实例。 由于所有服务器实例都驻留在同一台计算机上,因此沙箱群集无法满足高可用性解决方案的要求。 相反,此部署选项模拟了一个环境,您可以从中探索与InnoDB集群管理相关的技术。
选择“
创建沙盒InnoDB集群以进行测试”时
,后续步骤会提示您选择由三个,五个,七个或九个MySQL服务器实例组成的集群。
与MySQL Installer提供的其他服务器设置不同,沙箱部署会跳过通常的服务器配置步骤(身份验证方法除外)。
命名的结果集群
sandboxCluster
可在为您配置的选定端口上使用。
如果使用MySQL Shell手动为沙盒InnoDB集群设置了这些端口,MySQL Installer会在配置期间删除端口3310到3390。
每个沙箱实例都配置为作为进程(而不是Windows服务)运行。 重新启动计算机后,必须手动启动沙箱群集中的每个实例。
创建测试群集后,单击“ 摘要” 选项卡以查看适用于群集的特定端口。 要修改现有集群中的服务器实例数或调整日志记录级别,请使用 MySQL Installer仪表板中 的 重新配置 快速操作 。
重新配置群集或升级沙箱群集中的服务器实例时,MySQL Installer会删除所有现有沙箱群集数据。
MySQL Installer将所有沙盒InnoDB集群配置条目存储在该
installer_config.xml
文件中。
默认情况下,MySQL Installer会
%userprofile%\MySQL\mysql-sandboxes
在本地主机上
创建沙箱实例
。
要创建单个InnoDB集群,请选择 InnoDB Cluster 作为高可用性选项,然后选择 Create a New InnoDB Cluster 。 调整日志详细级别(根据需要),然后单击“ 以配置第一个服务器实例。 此设置过程涉及在多台计算机上安装和运行MySQL Installer。
通过提供以下配置信息来定义第一个服务器实例(或种子):
InnoDB群集名称:
默认群集名称是
myCluster
。
如果要配置多个群集,请将默认名称替换为解决方案中有意义的名称。
字母数字字符,空格和下划线(
_
)字符对此字段有效。
限制为40个字符。
群集管理员用户名:
默认的群集管理员名称是
ic
。
您可以跨多个群集重用相同的MySQL管理帐户。
稍后在配置其他服务器实例以加入群集时,系统将提示您输入此帐户名(和密码)。
限制为32个字符。
群集管理员密码:
输入群集管理员帐户的密码(最小长度为四个字符)。 MySQL安装程序将在您键入时评估MySQL密码的强度。 使用“ 重复密码” 字段确认密码。
主机地址:
从列表中选择本地主机的主机名或IP地址。 将其他服务器实例连接到群集时,系统将提示您通过主机名或IP地址标识种子实例。
服务器ID:
默认值为
1
。
需要此标识符才能在二进制日志中记录服务器实例的事件。
群集中每个服务器实例的ID必须是唯一的;
但是,您可以在不同的群集中重复使用相同的数字。
您在此字段中指定的服务器ID也会在“高级选项”步骤中稍后显示。
如果更改“高级选项”中的值,则InnoDB群集设置的编号也会更改。
单击“
类型”和“网络”开始
。
添加种子实例并创建群集后,需要更多实例才能获得完全容差。
此时,状态为
OK_NO_TOLERANCE
。
要将第二个和第三个服务器实例添加到群集,必须在本地网络内使用单独的计算机。 需要种子实例的一些配置详细信息才能完成连接操作。
启动MySQL Installer并在下一台计算机上安装服务器实例后,通过选择 InnoDB Cluster 作为高可用性选项 开始配置 ,然后选择 将本地MySQL服务器实例添加到InnoDB群集 。 调整 InnoDB Cluster Log Verbosity Level (根据需要),然后单击 Next 。
通过提供以下配置信息来定义加入服务器实例:
种子实例地址:
输入承载种子实例的计算机的主机名或IP地址。
种子实例端口:
默认值是
3306
,这是经典MySQL的端口。
使用为种子实例配置的相同TCP端口。
群集管理员用户名:
默认的群集管理员名称是
ic
。
如果在配置种子实例时分配了其他名称,请输入备用群集管理员名称。
群集管理员密码:
输入分配给集群管理员帐户的密码。
主机地址:
从列表中选择本地主机的主机名或IP地址。
服务器ID:
默认值为
1
。
需要此标识符才能在二进制日志中记录服务器实例的事件。
群集中每个服务器实例的ID必须是唯一的;
但是,您可以在不同的群集中重复使用相同的数字。
您在此字段中指定的服务器ID也会在“高级选项”步骤中稍后显示。
如果更改“高级选项”中的值,则InnoDB群集设置的编号也会更改。
使用此按钮可验证本地服务器实例与为群集定义的种子实例之间的连接。 需要有效连接才能继续。
单击“ 类型”和“网络”开始 。
,然后完成其余的配置步骤,这些步骤将在以下各节中介绍,从“
通过群集中的一个种子实例和第二个服务器实例,状态为
OK_NO_TOLERANCE
。
添加第三个服务器实例后,状态为
OK
,表示群集现在可以容忍一个实例的故障。
服务器配置类型
选择描述您的设置的MySQL服务器配置类型。 此设置定义将分配给MySQL服务器实例的系统资源(内存)量。
开发 :一台可以托管许多其他应用程序的机器,通常这是您的个人工作站。 此选项将MySQL配置为使用最少的内存。
服务器 :此计算机上将运行其他几个应用程序,例如Web服务器。 此选项将MySQL配置为使用中等内存量。
Dedicated :专用于运行MySQL服务器的机器。 因为没有其他主要应用程序将在此服务器上运行,例如Web服务器,所以此选项将MySQL配置为使用大部分可用内存。
连接
连接选项控制如何与MySQL建立连接。 选项包括:
TCP / IP :您可以在此处启用TCP / IP网络,否则只允许本地主机连接。 还定义 端口 (用于经典MySQL协议), X协议端口 (用于MySQL作为文档存储),以及是否打开防火墙端口以进行网络访问。 如果端口号已在使用中,您将看到 默认值旁边 的信息图标( ),并且 在您提供新端口号之前 , 被禁用。
命名管道
:启用并定义管道名称,类似于使用该
--enable-named-pipe
选项。
默认名称是
MySQL
。
共享内存
:启用然后定义内存名称,类似于使用该
--shared-memory
选项。
默认名称是
MySQL
。
高级配置
选中“ 显示高级和日志选项” 以在后续步骤中设置自定义日志记录和高级选项。 “日志记录选项”步骤使您可以为错误日志,常规日志,慢速查询日志(包括执行查询所需的秒数配置)和二进制日志定义自定义文件路径。 “高级选项”步骤使您可以设置在复制拓扑中启用二进制日志记录时所需的唯一服务器ID。
MySQL企业防火墙(仅限企业版)
默认情况下,选中 “ 启用企业防火墙” 复选框。 有关安装后的说明,请参见 第6.4.7节“MySQL Enterprise Firewall” 。
在 身份验证方法 ,仅在MySQL 8.0.4或更高版本的安装或升级过程中的步骤是可见的。 它介绍了两种服务器端身份验证选项之间的选择。 您在下一步中创建的MySQL用户帐户将使用您在此步骤中选择的身份验证方法。
使用
libmysqlclient
8.0的
MySQL 8.0连接器和社区驱动程序
现在支持
mysql_native_password
默认的身份验证插件。
但是,如果您无法更新客户端和应用程序以支持此新身份验证方法,则可以将MySQL服务器配置
mysql_native_password
为用于旧身份验证。
有关此更改含义的更多信息,请参阅
caching_sha2_password作为首选身份验证插件
。
如果要安装或升级到MySQL 8.0.4或更高版本,请选择以下身份验证方法之一:
使用强密码加密进行身份验证(推荐)
MySQL 8.0支持基于改进的,更强大的基于SHA256的密码方法的新身份验证。 建议所有新的MySQL服务器安装都使用此方法。
在
caching_sha2_password
服务器上进行验证插件需要连接器和客户端,当中添加对新的MySQL 8.0的默认身份验证支持的新版本。
使用传统身份验证方法(保留MySQL 5.x兼容性)
仅在以下情况下才应考虑使用旧的MySQL 5.x遗留身份验证方法:
无法更新应用程序以使用MySQL 8.0连接器和驱动程序。
重新编译现有应用程序是不可行的。
尚未提供更新的特定于语言的连接器或驱动程序。
Root帐户密码
需要分配root密码,在执行其他MySQL Installer操作时将要求您输入密码。 在提供的框中重复密码时,将评估密码强度。 有关密码要求或状态的描述性信息,请 在出现时 将鼠标指针移到信息图标( )上。
MySQL用户帐户(可选)
单击
或 以使用预定义角色创建或修改MySQL用户帐户。 接下来,输入所需的帐户凭据:用户名: MySQL用户名最长可达32个字符。
主机:
localhost
仅
选择
本地连接或
<All Hosts (%)>
需要与服务器的远程连接。
角色:
每个预定义角色(例如
DB Admin
)都配置有自己的一组权限。
例如,
DB
Admin
角色具有比
DB Designer
角色
更多的权限
。
“
角色”
下拉列表包含每个角色的说明。
密码: 键入密码时执行密码强度评估。 必须确认密码。 MySQL允许空密码或空密码(被认为是不安全的)。
仅限MySQL安装程序商业版: 用于Windows的MySQL企业版(商业产品)还支持在Windows上执行外部身份验证的身份验证方法。 Windows操作系统验证的帐户可以访问MySQL服务器而无需提供额外的密码。
要创建使用Windows身份验证的新MySQL帐户,请输入用户名,然后为“
主机”
和“
角色”
选择一个值
。
单击
Windows
身份验证以启用该
authentication_windows
插件。
在Windows安全性令牌区域中,为可以使用MySQL用户名进行身份验证的每个Windows用户(或组)输入一个令牌。
MySQL帐户可以包括本地Windows用户和属于域的Windows用户的安全令牌。
多个安全性令牌由分号字符(
;
)
分隔
,并对本地和域帐户使用以下格式:
本地帐户
输入简单的Windows用户名作为每个本地用户或组的安全令牌;
例如,
finley;jeffrey;admin
。
域帐户
使用标准Windows语法(
)或MySQL语法(
)输入Windows域用户和组。
domain
\
domainuser
domain
\\
domainuser
对于域帐户,如果运行MySQL Installer的帐户缺少查询Active Directory的权限,则可能需要使用域中管理员的凭据。 如果是这种情况,请选择“ 验证Active Directory用户” 以激活域管理员凭据。
Windows身份验证允许您在每次添加或修改令牌时测试所有安全令牌。
单击“
X
图标和红色令牌文本。
当所有令牌解析为有效(绿色文本没有
X
图标)时,您可以单击“
保存更改。
在Windows平台上,MySQL服务器可以作为操作系统管理的命名服务运行,并配置为在Windows启动时自动启动。 或者,您可以将MySQL服务器配置为作为需要手动配置的可执行程序运行。
将MySQL服务器配置为Windows服务 (默认选中)。
选择默认配置选项后,您还可以选择以下选项:
在系统启动时启动MySQL服务器
选中(默认)时,服务启动类型设置为自动; 否则,启动类型设置为手动。
以Windows身份运行Windows服务
当 标准的系统帐户 (缺省值),该服务登录的网络服务。
“ 自定义用户” 选项必须具有登录Microsoft Windows即服务的权限。 在 为此用户配置所需权限之前,将禁用 “ 按钮。
通过在“开始”菜单中搜索“本地安全策略”,在Windows中配置自定义用户帐户。 在“本地安全策略”窗口中,选择“ 本地策略” ,“ 用户权限分配” ,然后选择 “作为服务登录” 以打开属性对话框。 单击“ 以添加自定义用户,然后 在每个对话框中 单击“ 以保存更改。
取消选择“Windows服务”选项
如果 在“ 类型和网络” 步骤 中选中 “ 显示高级配置” 复选框, 则此步骤可用 。 要立即启用此步骤,请单击“上 返回“ 类型和网络” 步骤,然后选中复选框。
高级配置选项与以下MySQL日志文件相关:
MySQL 5.7及更高版本默认启用二进制日志。
如果 在“ 类型和网络” 步骤 中选中 “ 显示高级配置” 复选框, 则此步骤可用 。 要立即启用此步骤,请单击“上 返回“ 类型和网络” 步骤,然后选中复选框。
高级配置选项包括:
服务器ID
设置复制拓扑中使用的唯一标识符。
如果启用了二进制日志记录,则必须指定服务器ID。
默认ID值取决于服务器版本。
有关更多信息,请参阅该
--server-id
选项
的说明
。
如果为InnoDB集群的服务器实例指定了ID,则MySQL Installer会调整ID(显示在此页面上)以匹配先前的标识符。
表名称案例
您可以在服务器的初始配置和后续配置期间设置以下选项。 对于MySQL 8.0发行版系列,这些选项仅适用于服务器的初始配置。
小写
将
lower_case_table_names
选项值
设置
为1(默认值),其中表名以小写形式存储在磁盘上,并且比较不区分大小写。
保留给定案例
将
lower_case_table_names
选项值
设置
为2,其中表名称存储为给定但以小写形式进行比较。
单击“ 配置步骤” 选项卡可以跟踪每个操作的进度; 成功时,每个图标从白色切换为绿色(带复选标记)。 否则,如果单个操作超时,则进程将停止并显示错误消息。 单击“ 日志” 选项卡以查看日志。
时,所有配置设置都将应用于MySQL服务器 。 使用“
当安装成功完成并单击“
MySQL
组
下的Microsoft Windows“开始”菜单中
。
打开MySQL安装程序会加载
仪表板
,其中列出已安装的MySQL产品,并且可以使用其他MySQL安装程序操作。
MySQL Installer下载并安装一套工具,用于在Windows上开发和管理业务关键型应用程序。 该套件包括应用程序,连接器,文档和示例。
在
初始设置
期间
,选择任何预定的安装类型,但
Server only
安装最新的GA版本的工具
除外
。
使用
Custom
安装类型安装单个工具或特定版本。
如果已在主机上安装了MySQL Installer,请使用
Add
操作从MySQL Installer仪表板中选择和安装工具。
MySQL Installer提供了一个配置向导,可以引导已安装的MySQL Router 8.0或更高版本的实例,以在MySQL应用程序和InnoDB集群之间路由流量。 配置后,MySQL Router作为本地Windows服务运行。 有关将MySQL路由器与InnoDB集群一起使用的详细信息,请参阅 MySQL InnoDB集群的路由 。
初始安装后以及明确重新配置已安装的路由器时,系统会提示您配置MySQL路由器。 相反,升级操作不需要或提示您配置升级产品。
要配置MySQL路由器,请执行以下操作:
设置InnoDB集群。 有关如何使用MySQL Installer在本地主机上配置沙箱InnoDB集群的说明,请参见 第2.3.3.3.1.1节“高可用性” 。
有关InnoDB群集的一般信息,请参阅 第21章 InnoDB群集 。
使用MySQL Installer,下载并安装MySQL路由器应用程序。 安装完成后,配置向导会提示您输入信息。 选中“ 为InnoDB集群配置MySQL路由器” 复选框以开始配置并提供以下配置值:
主机名:
InnoDB集群中主(种子)服务器的主机名(
localhost
默认情况下)。
端口:
InnoDB集群中主(种子)服务器的端口号(
3310
默认情况下)。
管理用户: 具有根级权限的管理用户。
密码: 管理用户的密码。
与InnoDB集群的经典MySQL协议连接
读/写: 将第一个基本端口号设置为未使用的端口号(介于80和65532之间),向导将为您选择其余端口。
下图显示了MySQL路由器配置页面的示例,其中第一个基本端口号指定为6446,其余端口由向导设置为6447,6448和6449。
单击“ MySQL Installer仪表板 。
,然后 单击 以应用配置。 单击 关闭MySQL Installer或返回
使用MySQL路由器安装生产群集后,root帐户仅作为
root@localhost
(本地)
存在于用户表中
,而不是
root@%
(远程)。
无论路由器或客户端位于何处,即使两者都与种子服务器位于同一主机上,服务器也会将通过路由器的任何连接视为远程,而非本地。
因此,使用本地主机(请参阅下面的示例)与服务器建立的连接不进行身份验证。
外壳> \c root@localhost:6446
本节介绍MySQL Installer产品目录和仪表板。
产品目录存储发布的MySQL产品为Microsoft Windows可用来从下载的完整列表, MySQL的下载 。 默认情况下,当存在Internet连接时,MySQL Installer会每天更新目录。 您还可以从仪表板手动更新目录(稍后介绍)。
最新目录执行以下操作:
填充“ 选择产品和功能”步骤 的“ 可用产品” 窗格。 选择以下选项时会出现此步骤:
在
Custom
该过程中的安装类型
初始设置
。
仪表板中的 “ 添加” 操作。
标识仪表板中列出的已安装产品的产品更新何时可用。
该目录包括所有开发版本(预发布),一般版本(当前GA)和次要版本(其他版本)。 目录中的产品会有所不同,具体取决于您下载的MySQL Installer版本。
MySQL安装程序仪表板是 初始安装 完成 后启动MySQL安装程序时看到的默认视图 。 如果在安装完成之前关闭了MySQL Installer,MySQL Installer会在显示仪表板之前恢复初始设置。
MySQL Installer仪表板操作提供了适用于目录中列出的已安装产品或产品的各种操作。 要启动以下操作,请先单击操作链接,然后选择要管理的产品:
添加 :此操作将打开“选择产品和功能”页面。 从那里,您可以过滤产品目录中的产品,选择一个或多个要下载的产品(根据需要),然后开始安装。 有关使用过滤器的提示,请参阅 查找要安装的产品 。
修改
:使用此操作添加或删除与已安装产品关联的功能。
您可以修改的功能因产品而异。
当
程序快捷方式
复选框被选中,该产品将出现在下面的开始菜单
MySQL
组。
升级 :此操作会加载“选择要升级的产品”页面,并使用所有升级候选项填充它。 已安装的产品可以具有多个升级版本,并且需要当前的产品目录。
重要服务器升级条件:
MySQL Installer不允许主要版本或次要版本之间的服务器升级,但允许在发布系列中进行升级,例如从5.7.18升级到5.7.19。
不支持里程碑版本(或从里程碑版本到GA版本)之间的升级。 里程碑版本中发生了重大的开发更改,您可能会遇到启动服务器的兼容性问题或问题。
对于升级到MySQL 8.0.16服务器及更高版本,使用复选框可以跳过系统表的升级检查和处理,同时正常检查和处理数据字典表。 当跳过先前的服务器升级或将服务器配置为沙箱InnoDB集群时,MySQL Installer不会提示您使用该复选框。 此行为表示MySQL Server执行升级的方式发生了变化(请参见 第2.11.3节“MySQL升级过程升级的内容”) )它改变了MySQL Installer应用于配置过程的步骤顺序。
如果选择
跳过系统表升级检查和处理。
(不推荐)
,MySQL Installer使用
--upgrade=MINIMAL
服务器选项
启动升级后的服务器,该
服务器选项仅升级数据字典。
如果停止然后在没有该
--upgrade=MINIMAL
选项的
情况下重新启动服务器
,则服务器会根据需要自动升级系统表。
升级配置(跳过系统表)完成后 ,“ 日志” 选项卡和日志文件中将 显示以下信息 :
警告:升级MySQL服务器后跳过了系统表升级。该 服务器现在将使用--upgrade = MINIMAL选项启动,但随后每个都启动 服务器启动的时间,它将尝试升级系统表,除非 您修改Windows服务(命令行)以添加--upgrade = MINIMAL以绕过 升级。 为获得最佳结果:在命令行上运行mysqld.exe --upgrade = FORCE进行升级 手动系统表。
要选择新产品版本:
单击 升级 。 确认“ 可升级产品” 窗格中 产品名称旁边的复选框 具有复选标记。 取消选择此时不打算升级的产品。
对于同一发行版系列中的服务器里程碑版本,MySQL Installer取消选择服务器升级并显示警告以指示不支持升级,识别继续的风险,并提供手动执行逻辑升级的步骤摘要。 您可以自行承担重新选择服务器升级的风险。 有关如何使用里程碑版本执行逻辑升级的说明,请参阅 逻辑升级 。
单击列表中的产品以突出显示该产品。
此操作将
使用所选产品的每个可用版本的详细信息
填充“
可升级版本”
窗格:版本号,发布日期以及
Changes
用于打开该版本的发行说明
的
链接。
MySQL Installer在一个操作中升级所有选定的产品。 单击“
以查看MySQL Installer执行的操作。删除 此操作将打开“删除产品”页面,并使用主机上安装的MySQL产品填充它。 选择要删除的MySQL产品(卸载),然后单击“ 以开始删除过程。
要选择要删除的产品,请执行以下操作之一:
选中一个或多个产品的复选框。
选中“ 产品” 复选框以选择所有产品。
每个安装的服务器旁边的“快速操作”列中的 “ 重新配置” 链接将加载服务器的当前配置值,然后循环执行所有配置步骤,以便更改选项和值。 完成后,MySQL Installer将停止服务器,应用配置更改,并为您重新启动服务器。 有关每个配置选项的说明,请参见 第2.3.3.3.1节“使用MySQL安装程序进行MySQL服务器配置” 。
Samples and Examples
与特定MySQL服务器版本相关联的
安装
也可以重新配置以应用功能配置更改(如果有)。
您必须提供具有root权限的凭据才能重新配置这些项目。
该 目录 的链接,您可以手动下载MySQL的产品,最新的目录,然后进行整合与MySQL安装这些产品的变化。 目录下载操作不会对主机上已安装的产品执行升级。 相反,它会返回到仪表板,并在每个已安装的具有较新版本的产品的“版本”列中显示一个箭头图标。 使用 升级 操作安装较新的产品版本。
您还可以使用“ 目录” 链接显示每个产品的当前更改历史记录,而无需下载新目录。 选中“此时 不要更新” 复选框以仅查看更改历史记录。
MySQL Installer关于icon( )显示MySQL Installer的当前版本和MySQL的一般信息。 版本号位于“
按钮 上方 。在报告MySQL Installer的问题时,请始终包含此版本号。
单击双箭头( )以显示指向最新MySQL产品文档,博客,网络研讨会等的链接列表。
MySQL安装程序选项图标( )包括以下选项卡:
产品目录 :管理每日自动目录更新。 默认情况下,目录更新是在固定的小时安排的。 当新产品或产品版本可用时,MySQL Installer会将它们添加到目录中,然后 在仪表板中列出的已安装产品的版本号旁边 显示一个箭头图标( )。
使用此选项可启用或禁用自动目录更新,并重置MySQL Installer自动更新目录的时间。
有关特定设置,请参阅
ManifestUpdate
Windows任务计划程序中
指定
的任务。
连接设置 :MySQL Installer执行的几项操作需要访问Internet。 此选项使您可以使用默认值来验证连接或使用其他URL,从列表中选择或手动添加的URL。 选择 “ 手动” 选项后,可以添加新URL,并且可以移动或删除列表中的所有URL。 选择 “ 自动” 选项后,MySQL安装程序会尝试连接到列表中的每个默认URL(按顺序),直到建立连接。 如果无法建立连接,则会引发错误。
目录中的MySQL产品按类别列出:MySQL服务器,应用程序,MySQL连接器和文档。 默认情况下 ,“ 可用产品” 窗格中 仅显示最新的GA版本 。 如果您要查找产品的预发布版本或旧版本,则可能无法在默认列表中看到它。
要更改默认产品列表,请单击 仪表板上的“ 添加 ”以打开“选择产品和功能”页面,然后单击“ 以打开筛选器对话框(请参见下图)。 修改产品值,然后单击“ 。
重置以下一个或多个值以过滤可用产品列表:
文字:按文字过滤。
类别:所有软件(默认),MySQL服务器,应用程序,MySQL连接器或文档(用于样本和文档)。
成熟度:当前捆绑包(最初仅显示完整包),预发布,当前GA或其他版本。
当您选择预发布时间过滤器时,MySQL Installer的商业版本不会显示任何MySQL产品。 正在开发的产品仅可从MySQL Installer的Community版本获得。
已经下载(默认情况下取消选中该复选框)。
架构:任何(默认),32位或64位。
MySQLInstallerConsole.exe
提供与MySQL Installer类似的命令行功能。
它在最初执行MySQL Installer时安装,然后在
MySQL Installer
目录中
可用
。
通常,它位于
C:\Program Files (x86)\MySQL\MySQL
Installer\
,并且控制台必须以管理权限执行。
要使用,请通过选择“
Run as
administrator
。
从命令行,可以选择将目录更改为
MySQLInstallerConsole.exe
所在的位置:
C:\>cd Program Files (x86)\MySQL\MySQL Installer for Windows
C:\ Program Files(x86)\ MySQL \ MySQL Installer for Windows>MySQLInstallerConsole.exe help
===================开始初始化=================== MySQL Installer以社区模式运行 试图更新清单。 初始化产品要求 加载产品目录 检查产品目录片段 检查捆绑包中的产品包 分类产品目录 查找所有已安装的软件包。 您的商品目录最后更新日期是11/1/2016 4:10:38 PM ===================结束初始化=================== 可以使用以下命令: 配置 - 配置一个或多个已安装的程序。 帮助 - 提供可用命令列表。 安装 - 安装和配置一个或多个可用的MySQL程序。 列表 - 提供列出所有可用产品的交互方式。 修改 - 修改已安装产品的功能。 删除 - 从系统中删除一个或多个产品。 状态 - 显示所有已安装产品的状态。 更新 - 更新当前产品目录。 升级 - 升级一个或多个已安装的程序。
MySQLInstallerConsole.exe 支持以下命令:
包含冒号(“:”)的配置块值必须用双引号括起来。 例如,installdir =“C:\ MySQL \ MySQL Server 8.0”。
configure
[product1]:[setting]=[value];
[product2]:[setting]=[value]; [...]
在系统上配置一个或多个MySQL产品。 可以为每个产品配置多个设置=值对。
开关包括:
-showsettings
:通过传入产品名称,显示所选产品的可用选项
-showsettings
。
-silent
:禁用确认提示。
C:\>MySQLInstallerConsole configure -showsettings server
C:\>MySQLInstallerConsole configure server:port=3307
显示带有用法示例的帮助消息,然后退出。 传递一个附加命令以接收特定于该命令的帮助。
C:\>MySQLInstallerConsole help
C:\>MySQLInstallerConsole help install
install
[product]:[features]:[config
block]:[config block]:[config block];
[...]
在您的系统上安装一个或多个MySQL产品。
如果预发布产品可供选择,GA和预发布产品的同时安装时的值
-type
开关
Developer
,
Client
或
Full
。
-only_ga_products
仅在使用这些安装类型时,才能
使用
开关将产品集限制为GA产品。
开关和语法选项包括:
-only_ga_products
:限制产品集仅包含GA产品。
-type=[SetupType]
:安装一组预定义的软件。
“SetupType”可以是以下之一:
只有在未安装其他MySQL产品的情况下,才能选择非自定义安装类型。
开发人员 :安装完整的开发环境。
服务器 :安装单个MySQL服务器
客户端 :安装客户端程序和库
完整 :安装一切
自定义 :安装用户选择的产品。 这是默认选项。
-showsettings
:通过传入产品名称,显示所选产品的可用选项
-showsettings
。
-silent
:禁用确认提示。
[config block]
:可以指定一个或多个配置块。
每个配置块都是以分号分隔的键值对列表。
块可以包括“config”或“user”类型键,其中“config”是默认类型(如果未定义)。
包含冒号字符(
:
)的
配置块值
必须用双引号括起来。
例如,
installdir="C:\MySQL\MySQL Server
8.0"
。
每个产品只能定义一个“config”类型块。 应为应在产品安装期间创建的每个用户定义“用户”块。
重新配置产品时,不支持添加用户。
[feature]
:功能块是以分号分隔的功能列表,或者是星号字符(
*
)以选择所有功能。
C:\>MySQLInstallerConsole install server;5.6.25:*:port=3307;serverid=2:type=user;username=foo;password=bar;role=DBManager
C:\>MySQLInstallerConsole install server;5.6.25;x64 -silent
传入其他配置块的示例,
^
以适合的方式
分隔
:
C:\> MySQLInstallerConsole install server;5.6.25;x64:*:type=config;openfirewall=true; ^
generallog=true;binlog=true;serverid=3306;enable_tcpip=true;port=3306;rootpasswd=pass; ^
installdir="C:\MySQL\MySQL Server 5.6":type=user;datadir="C:\MySQL\data";username=foo;password=bar;role=DBManager
列出可以搜索所有可用MySQL产品的交互式控制台。
执行
MySQLInstallerConsole list
以启动控制台,并输入要搜索的子字符串。
C:\> MySQLInstallerConsole list
modify
[product1:-removelist|+addlist]
[product2:-removelist|+addlist] [...]
修改或显示以前安装的MySQL产品的功能。
-silent
:禁用确认提示。
C:\>MySQLInstallerConsole modify server
C:\>MySQLInstallerConsole modify server:+documentation
C:\>MySQLInstallerConsole modify server:-debug
remove
[product1] [product2]
[...]
从系统中删除一个或多个产品。
*
:传入
*
以删除所有MySQL产品。
-continue
:即使发生错误也继续操作。
-silent
:禁用确认提示。
C:\>MySQLInstallerConsole remove *
C:\>MySQLInstallerConsole remove server
提供系统上安装的MySQL产品的快速概述。 信息包括产品名称和版本,体系结构,安装日期和安装位置。
C:\> MySQLInstallerConsole status
将最新的MySQL产品目录下载到您的系统。 成功后,下次执行MySQLInstaller或MySQLInstallerConsole时将应用下载目录。
C:\> MySQLInstallerConsole update
“ 自动目录更新 GUI”选项从Windows任务计划程序执行此命令。
upgrade
[product1:version]
[product2:version] [...]
升级系统上的一个或多个产品。 语法选项包括:
*
:
*
传入将所有产品升级到最新版本,或传递特定产品。
!
:传入
!
版本号以将MySQL产品升级到其最新版本。
-silent
:禁用确认提示。
C:\>MySQLInstallerConsole upgrade *
C:\>MySQLInstallerConsole upgrade workbench:6.3.5
C:\>MySQLInstallerConsole upgrade workbench:!
C:\>MySQLInstallerConsole upgrade workbench:6.3.5 excel:1.3.2
MySQL Notifier是一个工具,使您可以通过驻留在Microsoft Windows任务栏中的指示器来监视和调整本地和远程MySQL服务器实例的状态。 MySQL Notifier还通过其上下文菜单快速访问MySQL Workbench。
MySQL Notifier是使用MySQL Installer安装的。 它可以在Microsoft Windows启动时自动加载。
安装,下载和执行 MySQL安装程序 。 从应用程序中选择MySQL Notifier,继续安装。 有关 其他详细信息, 请参阅 MySQL Installer手册 。
有关详细说明MySQL Notifier每个版本中更改的说明,请参阅 MySQL Notifier发行说明 。
访问 MySQL Notifier论坛, 获取其他MySQL Notifier帮助和支持。
启动,停止和重新启动MySQL服务器的实例。
自动检测(并添加)新的MySQL服务器服务。 这些列在“
,也可以配置。托盘图标会根据状态发生变化。 如果所有受监视的MySQL服务器实例都在运行,则它是一个右指向绿色三角形;如果至少有一个服务停止,则为红色正方形。 默认情况下,为每个服务启用 基于服务状态 选项 的 更新MySQL通知程序托盘图标 ,该选项指示此行为。
链接到其他应用程序,如MySQL Workbench,MySQL Installer和MySQL Utilities。 例如,选择
将为该特定实例加载MySQL Workbench Server Administration窗口。如果还安装了MySQL Workbench,则“
和“ 选项可用于本地(但不是远程)MySQL实例。监视本地和远程MySQL实例。
MySQL Notifier为在本地或远程计算机上监视的MySQL服务器提供可视状态信息。 任务栏中的MySQL通知程序图标会更改颜色以指示当前状态:正在运行或已停止。
MySQL Notifier自动在本地计算机上添加发现的MySQL服务。
默认情况下,
启用
自动添加名称包含
选项的
新服务并将其
设置为
mysql
。
相关通知选项包括在发现新服务或体验状态更改时收到通知,并且默认情况下也启用。
卸载服务会从MySQL Notifier中删除该服务。
单击Windows任务栏中的MySQL Notifier图标会显示MySQL Notifier主菜单,该菜单分别列出每个MySQL服务器并显示其当前状态。 您可以从菜单中启动,停止或重新启动每个MySQL服务器,如下图所示。 在本地安装MySQL Workbench时,“
和“ 菜单项将启动该应用程序。“
菜单包括以下项目:管理受监控的项目
启动MySQL安装程序 (仅在安装产品时。)
检查更新 (仅在安装MySQL安装程序时。)
MySQL Utilities Shell (仅在安装产品时。)
刷新状态
选项
关于
关闭MySQL通知程序
当MySQL Notifier没有监控服务时 ,主菜单不显示“
菜单。该 常规选项 , 通知选项 和 MySQL服务器连接选项 。
, 菜单提供了一组配置MySQL通知操作的选项。 选项分为以下类别:单击“
以启用所选选项,或 忽略所有更改。 单击“ ,然后 单击“ 以应用默认选项值。常规选项。 该组包括:
使用彩色状态图标 :为MySQL通知程序的托盘启用彩色图标样式。 默认选中。
在Windows启动时运行 :允许在Microsoft Windows启动时加载应用程序。 默认取消选中。
自动检查更新,每 # 周 :检查MySQL的通知的新版本,并运行此检查每#周。 默认选择每四周更新一次。
自动添加名称包含以下内容
的
新服务:
用于过滤服务的文本,并将其自动添加到运行MySQL Notifier的本地计算机的受监视列表以及已监视Windows服务的远程计算机上。
默认选择包含的名称
mysql
。
Ping每隔 # 秒 监视MySQL服务器实例 :ping监视MySQL服务器实例的状态更改间隔(以秒为单位)。 如果受监视的远程实例列表很大,则可能需要更长的时间间隔。 默认为30秒。
通知选项。 该组包括:
自动添加服务时通知我 :当新发现的服务添加到受监视服务列表时,显示来自任务栏的气球通知。 默认选中。
服务更改状态时通知我 :当受监视的服务更改其状态时,显示来自任务栏的气球通知。 默认选中。
MySQL服务器连接选项。 该组包括:
自动连接迁移延迟到: 当有连接要迁移到MySQL Workbench(如果已安装)时,此选项会将迁移推迟一小时,一天,一周,一个月或无限期。
“ 管理项目” 窗口有两个选项卡:“ 服务” 和“ 实例” 。
,“ 菜单使您可以添加,配置和删除要监视的服务和MySQL实例。 “服务标签。 当MySQL配置为本地服务时,MySQL Notifier会 自动 将 服务 添加到“ 服务” 选项卡。 打开 “ 服务” 选项卡后,您可以选择以下适用于所有受监视服务的选项:
状态更改时通知我
根据服务状态更新MySQL通知程序托盘图标
下图显示“ 服务” 选项卡打开,并且选中了两个选项。 此选项卡显示服务名称,托管服务的计算机以及服务的当前状态。
要停止监视服务,请从受监视服务列表中选择该服务,然后单击“
。单击 添加服务 窗口。 要添加新服务,请从下拉列表中选择一台计算机,从列表中选择一项服务,然后单击“ 接受。 使用“ 过滤器” 字段减少列表中的服务集,或选择“ 仅显示与自动添加过滤器匹配的服务”? 从“ 菜单中 重用常规选项过滤器 。
,然后 单击 以打开可以选择各种Windows服务(包括MySQL),如下图所示。 除服务名称外,该列表还显示所选计算机的每个Windows服务的当前状态。
实例选项卡。 当MySQL配置为MySQL实例时,MySQL Notifier会 自动 将 实例 添加到 Instances 选项卡。 打开 “ 实例” 选项卡后,您可以选择以下适用于每个受监视实例的选项:
状态更改时通知我
根据服务状态更新MySQL通知程序托盘图标
每隔 [#] [秒|。 监视MySQL实例状态 分钟| 小时| 天 ]
下图显示了 Instances 选项卡打开并选择了两个选项。 在此示例中,监视实例状态设置为每两分钟一次。 此选项卡显示实例名称,数据库驱动程序以及实例的当前状态。
要停止监视实例,请从受监视的MySQL实例列表中选择它,然后单击“
。单击 Monitor MySQL Server Instance 窗口。 使用 Filter 字段减少列表中的实例集,或者选择 Show MySQL instances is already monitoring? 仅显示受监控的项目。
,然后 单击 以打开(可选)您可以选择从MySQL Workbench到监视器的连接。 单击
(如下图所示)以创建新连接。有关此处未记录的问题,请访问 MySQL Notifier支持论坛 获取MySQL Notifier帮助和支持。
问题
:尝试启动/停止/重新启动MySQL服务可能会生成类似于“服务
MySQL
VERSION
未通过最新状态更改请求的消息”的错误消息“
在Windows服务中找不到
服务
mysql
VERSION
”。
说明
:这是一个区分大小写的问题,因为
与
配置文件
中的
mysql
相比,
服务名称是
MySQL
VERSION
。
VERSION
解决方案
:使用正确的信息更新MySQL Notifier配置文件,或者停止MySQL Notifier并删除此配置文件。
MySQL Notifier配置文件位于
变量
%APPDATA%\Oracle\MySQL
Notifier\settings.config
所在的位置
%APPDATA%
,具体取决于您的系统。
典型位置是“C:\ Users \
YourUsername
\ AppData \ Roaming \ Oracle \ MySQL Notifier \ settings.config”,这
YourUsername
是您的系统用户名。
在此文件中,在ServerList部分中,将ServerName值从小写更改为实际的服务名称。
例如,将
mysql
VERSION
更改
为
MySQL
VERSION
,保存,然后重新启动MySQL通知程序。
或者,停止MySQL Notifier,删除此文件,然后重启MySQL Notifier。
问题 :为了监视远程Windows服务而连接到远程计算机时,“ 添加服务” 对话框并不总是显示Windows服务控制台中显示的所有服务。
说明 :此行为由操作系统控制,并且在使用非域用户帐户时预期结果。 有关该行为的完整说明,请参阅 Microsoft 的“ 用户帐户控制”和WMI 文章。
解决方案 :当远程计算机位于兼容域中时,建议使用域用户帐户通过WMI连接到远程计算机。 有关使用WMI的详细设置说明,请参见 第2.3.4.2节“在MySQL通知程序中设置远程监视” 。
或者,当域用户帐户不可用时,Microsoft提供的安全性较低的解决方法应该谨慎实施。 有关详细信息,请参阅 Microsoft的 Windows Vista 知识库文章中 的用户帐户控制和远程限制 的 说明 。
MySQL Notifier使用Windows Management Instrumentation(WMI)来管理和监视远程计算机上的服务。 本节介绍它的工作原理以及如何设置系统以监控远程MySQL实例。
为了配置WMI,了解底层分布式组件对象模型(DCOM)体系结构正在执行WMI工作非常重要。 具体来说,MySQL Notifier在远程Microsoft Windows主机上使用异步通知查询作为.NET事件。 这些事件向运行MySQL Notifier的计算机发送异步回调,以便它知道远程计算机上的服务状态何时发生了变化。 与使用计时器的半同步通知或同步通知相比,异步通知提供了最佳性能。
如下图所示,异步通知要求远程计算机向客户端计算机发送回调(从而打开反向连接),因此必须正确配置Windows防火墙和DCOM设置才能使通信正常运行。
客户端(计算机A)包括一个不安全的应用程序(
unsecapp.exe
在本例中),对远程计算机(计算机B)进行异步调用,并接收带有数据的回叫。
异步WMI通知引发的大多数常见错误与阻止通信的Windows防火墙或未正确设置的DCOM / WMI设置有关。 有关解决方案的常见错误列表,请参阅 常见错误 。
要使WMI功能,需要执行以下步骤。 这些步骤分为两台机器。 运行MySQL通知程序(计算机A)的单台主计算机,以及正在监视的多台远程计算机(计算机B)。
通过编辑
组策略编辑器
或使用
NETSH
以下命令
启用远程管理
:
使用 组策略编辑器 :
单击“
GPEDIT.MSC
,然后单击“
。
在 本地计算机策略 标题下,展开 计算机配置 。
展开 管理模板 ,然后 展开 网络 , 网络连接 ,然后展开 Windows防火墙 。
如果计算机在域中,则双击“ 域配置文件” ; 否则,双击 标准配置文件 。
双击“ Windows防火墙:允许入站远程管理例外” 以打开配置窗口。
选中“
选项按钮,然后单击“ 。
使用
NETSH
命令:
从Microsoft Server 2008和Vista开始,“netsh firewall”命令已弃用,并替换为“netsh advfirewall firewall”。
打开具有管理权限的命令提示符窗口(可以右键单击“命令提示符”图标,然后选择 “以管理员身份运行” )。
执行以下命令:
NETSH advfirewall防火墙设置服务RemoteAdmin启用
打开DCOM端口TCP 135:
打开具有管理权限的命令提示符窗口(可以右键单击“命令提示符”图标,然后选择 “以管理员身份运行” )。
执行以下命令:
NETSH advfirewall防火墙添加规则名称= DCOM_TCP135协议= TCP localport = 135 dir = in action = allow
将包含回调(
MySqlNotifier.exe
)
接收器的客户端应用程序添加
到Windows防火墙例外列表(使用Windows防火墙配置或
NETSH
):
使用Windows防火墙配置:
在“控制面板”中,双击“ Windows防火墙” 。
在“Windows防火墙”窗口中,单击“ 通过Windows防火墙允许程序或功能” 。
在“允许的程序”窗口中,单击“
然后执行以下操作之一:
如果
MySqlNotifier.exe
位于“允许的程序和功能”列表中,请确保检查计算机连接的网络类型(“专用”,“公共”或两者)。
如果
MySqlNotifier.exe
不在列表中,请单击“
。
在“
添加程序”
窗口中,选择“
MySqlNotifier.exe
程序”列表中是否存在,否则单击“
并转到
MySqlNotifier.exe
已安装
的目录
以将其选中,然后单击“
。
确保
MySqlNotifier.exe
检查计算机连接的网络类型(私人,公共或两者)。
使用
NETSH
命令:
打开具有管理权限的命令提示符窗口(可以右键单击“命令提示符”图标,然后单击
)。
执行以下命令,在其中更改“
[YOUR_INSTALL_DIRECTORY]
”:
NETSH advfirewall防火墙添加规则名称= MySqlNotifier程序= [YOUR_INSTALL_DIRECTORY] \ MySqlNotifier.exe action = allow dir = in
如果计算机B是计算机A的成员
WORKGROUP
或不在计算机A不受信任的域中,则回调连接(连接2)将创建为匿名连接。
授予匿名连接DCOM远程访问权限:
单击“
DCOMCNFG
,然后单击“
。
在“组件服务”对话框中,展开“组件服务”,展开“计算机”,然后右键单击“ 我的电脑” ,再单击“ 。
在“我的电脑属性”对话框中,单击“ COM安全” 选项卡。
在“访问权限”下,单击“
。在“访问权限”对话框中, 在“组或用户名”框中 选择“ ANONYMOUS LOGON”名称 。 在“用户权限”下的“允许”列中,选择“ 远程访问” ,然后单击“ 。
如果登录到运行MySQL通知程序(计算机A)的计算机的用户帐户是远程计算机(计算机B)上的本地管理员,以便同一帐户是计算机B上的管理员,则可以跳到“允许远程管理“步骤。
设置DCOM安全性以允许非管理员用户远程访问计算机:
为用户或组授予“DCOM远程启动”和激活权限:
单击“
DCOMCNFG
,然后单击“
。
在“组件服务”对话框中,展开“组件服务”,展开“计算机”,然后右键单击“ 我的电脑” ,再单击“ 。
在“我的电脑属性”对话框中,单击“ COM安全” 选项卡。
在“启动和激活权限”下,单击“
。在“ 启动和激活权限” 对话框中,如果您的名称或组未显示在“组或用户名”列表中,请按照以下步骤操作:
在“ 启动和激活权限” 对话框中,单击“ 。
在“选择用户或组”对话框中,在“ 输入要选择的对象名称” 框中添加您的名称和组 ,然后单击“ 。
在“ 启动和激活权限” 对话框中,在“组或用户名”框中选择您的用户和组。 在“用户权限”下的“允许”列中,选择“ 远程启动” ,选择“ 远程激活” ,然后单击“ 。
授予DCOM远程访问权限:
单击“
DCOMCNFG
,然后单击“
。
在“组件服务”对话框中,展开“组件服务”,展开“计算机”,然后右键单击“ 我的电脑” ,再单击“ 。
在“我的电脑属性”对话框中,单击“ COM安全” 选项卡。
在“访问权限”下,单击“
。在“访问权限”对话框中, 在“组或用户名”框中 选择“ ANONYMOUS LOGON”名称 。 在“用户权限”下的“允许”列中,选择“ 远程访问” ,然后单击“ 。
允许非管理员用户访问特定的WMI名称空间:
在“控制面板”中,双击“ 管理工具” 。
在“管理工具”窗口中,双击“ 计算机管理” 。
在“计算机管理”窗口中,展开“ 服务和应用程序” 树。
右键单击“WMI控件”图标,然后选择“ 属性” 。
在“WMI控制属性”窗口中,单击“ 安全” 选项卡。
在Security选项卡中,选择命名空间,然后单击
。 Root / CIMV2是常用的命名空间。找到相应的帐户,然后 在“权限”列表中 选中“ 远程启用 ”。
允许通过编辑
组策略编辑器
或使用
NETSH
以下命令
进行远程管理
:
使用 组策略编辑器 :
单击“
GPEDIT.MSC
,然后单击“
。
在“本地计算机策略”标题下,双击“ 计算机配置” 。
双击“ 管理模板” ,“ 网络” ,“ 网络连接” ,然后 双击“ Windows防火墙” 。
如果计算机在域中,则双击“ 域配置文件” ; 否则,双击 标准配置文件 。
单击“ Windows防火墙:允许入站远程管理例外” 。
在“操作”菜单上,选择“
,或双击上一步中的选择。选中“已
单选按钮,然后单击“ 。
使用
NETSH
命令:
打开具有管理权限的命令提示符窗口(可以右键单击“命令提示符”图标,然后单击
)。执行以下命令:
NETSH advfirewall防火墙设置服务RemoteAdmin启用
确认您登录的用户帐户使用的是
Name
值而不是
Full
Name
值:
在“ 控制面板”中 ,双击“ 管理工具” 。
在“ 管理工具” 窗口中,双击“ 计算机管理” 。
在“ 计算机管理” 窗口中, 依次 展开“ 系统工具” 和“本地用户和组” 。
单击“ 用户” 节点,在右侧面板中找到您的用户,并确保它使用“ 名称” 值进行连接,而不是“ 全名” 值。
0x80070005
未正确配置DCOM安全性(请参阅计算机B,
Setting DCOM security...
步骤)。
远程计算机(计算机B)是WORKGROUP的成员,或者位于客户端计算机(计算机A)不受信任的域中(请参阅计算机A,
Grant Anonymous connections DCOM Remote Access
permissions
步骤)。
0x8007000E
远程计算机(计算机B)是WORKGROUP的成员,或者位于客户端计算机(计算机A)不受信任的域中(请参阅计算机A,
Grant Anonymous connections DCOM Remote Access
permissions
步骤)。
0x80041003
未正确配置对远程WMI命名空间的访问(请参阅计算机B,
Allowing
non-administrator users access to a specific WMI
namespace
步骤)。
0x800706BA
DCOM端口未在客户端计算机(计算机A)防火墙上打开。
请参阅
Open the DCOM
port TCP 135
计算机A
的
步骤。
远程计算机(计算机B)无法访问,因为其网络位置设置为“公共”。 确保您可以通过Windows资源管理器访问它。
从
noinstall
软件包
安装的用户
可以使用本节中的说明手动安装MySQL。
从ZIP Archive包安装MySQL的过程如下:
将主存档解压缩到所需的安装目录
可选 :如果您计划执行MySQL基准测试和测试套件,还可以提取调试测试存档
创建一个选项文件
选择MySQL服务器类型
初始化MySQL
启动MySQL服务器
保护默认用户帐户
此过程将在后面的章节中介绍。
要手动安装MySQL,请执行以下操作:
如果要从以前的版本 升级 ,请在开始升级过程之前 参阅 第2.11.10节“在Windows上升级MySQL” 。
确保以具有管理员权限的用户身份登录。
选择安装位置。
传统上,MySQL服务器安装在
C:\mysql
。
如果未安装MySQL
C:\mysql
,则必须在启动期间或选项文件中指定安装目录的路径。
请参见
第2.3.5.2节“创建选项文件”
。
MySQL安装程序安装MySQL
C:\Program
Files\MySQL
。
使用首选的文件压缩工具将安装存档解压缩到所选的安装位置。 某些工具可能会将存档提取到您选择的安装位置中的文件夹。 如果发生这种情况,您可以将子文件夹的内容移动到所选的安装位置。
如果在运行服务器时需要指定启动选项,可以在命令行中指明它们或将它们放在选项文件中。 对于每次服务器启动时使用的选项,您可能会发现使用选项文件指定MySQL配置最方便。 在以下情况下尤其如此:
安装或数据目录位置与默认位置(
C:\Program
Files\MySQL\MySQL Server 8.0
和
C:\Program Files\MySQL\MySQL Server
8.0\data
)不同。
您需要调整服务器设置,例如内存,缓存或InnoDB配置信息。
当MySQL服务器在Windows上启动时,它会在多个位置查找选项文件,例如Windows目录
C:\
和MySQL安装目录(有关位置的完整列表,请参见
第4.2.2.2节“使用选项文件”
)。
Windows目录的名称通常类似于
C:\WINDOWS
。
您可以
WINDIR
使用以下命令
从
环境变量
的值确定其确切位置
:
C:\> echo %WINDIR%
MySQL首先在
my.ini
文件中
查找每个位置的选项
,然后在
my.cnf
文件中查找。
但是,为避免混淆,最好只使用一个文件。
如果您的PC使用的引导加载程序
C:
不是引导驱动器,则唯一的选择是使用该
my.ini
文件。
无论您使用哪个选项文件,它都必须是纯文本文件。
当使用MySQL安装程序安装MySQL服务器时,它将
my.ini
在默认位置
创建
,并且执行MySQL安装程序的用户被授予对此新
my.ini
文件的
完全权限
。
换句话说,请确保MySQL Server用户有权读取该
my.ini
文件。
您还可以使用MySQL发行版中包含的示例选项文件; 请参见 第5.1.2节“服务器配置默认值” 。
可以使用任何文本编辑器(如记事本)创建和修改选项文件。
例如,如果安装了MySQL
E:\mysql
并且数据目录位于
E:\mydata\data
,则可以创建一个包含一个
[mysqld]
部分
的选项文件,
以指定
basedir
和
datadir
选项的
值
:
的[mysqld] #set basedir到您的安装路径 BASEDIR = E:/ MySQL的 #set datadir到数据目录的位置 DATADIR = E:/ MYDATA /数据
使用(转发)斜杠而不是反斜杠在选项文件中指定Microsoft Windows路径名。 如果你使用反斜杠,请将它们加倍:
的[mysqld] #set basedir到您的安装路径 BASEDIR = E:\\ MySQL的 #set datadir到数据目录的位置 DATADIR = E:\\ MYDATA \\数据
第4.2.2.2节“使用选项文件” 中给出了在选项文件值中使用反斜杠的规则 。
ZIP存档不包含
data
目录。
通过创建数据目录和填充在MySQL系统数据库中的表初始化MySQL安装,初始化MySQL的使用任一
--initialize
或
--initialize-insecure
。
有关其他信息,请参见
第2.10.1节“初始化数据目录”
。
如果要在其他位置使用数据目录,则应将
data
目录
的全部内容复制
到新位置。
例如,如果要将其
E:\mydata
用作数据目录,则必须执行以下两项操作:
将整个
data
目录及其所有内容从默认位置(例如
C:\Program Files\MySQL\MySQL Server
8.0\data
)移动到
E:\mydata
。
--datadir
每次启动服务器时,
使用
选项指定新数据目录位置。
下表显示了MySQL 8.0中Windows的可用服务器。
所有上述二进制文件都针对现代英特尔处理器进行了优化,但应适用于任何英特尔i386级或更高级别的处理器。
分发中的每个服务器都支持同一组存储引擎。
该
SHOW
ENGINES
语句显示给定服务器支持的引擎。
所有Windows MySQL 8.0服务器都支持数据库目录的符号链接。
MySQL支持所有Windows平台上的TCP / IP。
如果使用该
--enable-named-pipe
选项
启动服务器,Windows上的MySQL服务器也支持命名管道
。
有必要明确使用此选项,因为某些用户在使用命名管道时遇到关闭MySQL服务器的问题。
默认情况下,无论平台如何都使用TCP / IP,因为在许多Windows配置中,命名管道比TCP / IP慢。
如果使用
noinstall
软件包
安装MySQL
,则不包含任何数据目录。
要初始化数据目录,请使用
第2.10.1节“初始化数据目录”中的说明
。
本节概述了启动MySQL服务器的过程。 以下部分提供了有关从命令行或Windows服务启动MySQL服务器的更具体信息。
这里的信息主要适用于您使用该
noinstall
版本
安装MySQL
,或者您希望手动配置和测试MySQL而不是使用MySQL安装程序。
这些部分中的示例假定MySQL安装在默认位置下
C:\Program
Files\MySQL\MySQL Server 8.0
。
如果您在其他位置安装了MySQL,请调整示例中显示的路径名称。
客户有两种选择。 他们可以使用TCP / IP,或者如果服务器支持命名管道连接,他们可以使用命名管道。
如果使用该
--shared-memory
选项
启动服务器,MySQL for Windows也支持共享内存连接
。
客户端可以使用该
--protocol=MEMORY
选项
通过共享内存进行连接
。
有关要运行的服务器二进制文件的信息,请参见 第2.3.5.3节“选择MySQL服务器类型” 。
最好通过控制台窗口(或 “ DOS窗口 ” )中 的命令提示符进行测试 。 通过这种方式,您可以在窗口中显示服务器显示状态消息,以便于查看。 如果您的配置出现问题,这些消息可以让您更轻松地识别和修复任何问题。
必须先初始化数据库,然后才能启动MySQL。 有关初始化过程的其他信息,请参见 第2.10.1节“初始化数据目录” 。
要启动服务器,请输入以下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --console
对于包含
InnoDB
支持
的服务器
,您应该看到与启动时类似的消息(路径名称和大小可能不同):
InnoDB:第一个指定的数据文件c:\ ibdata \ ibdata1不存在: InnoDB:要创建的新数据库! InnoDB:将文件c:\ ibdata \ ibdata1的大小设置为209715200 InnoDB:数据库物理写入文件:等待... InnoDB:日志文件c:\ iblogs \ ib_logfile0不存在:要创建的新文件 InnoDB:将日志文件c:\ iblogs \ ib_logfile0的大小设置为31457280 InnoDB:日志文件c:\ iblogs \ ib_logfile1不存在:要创建的新文件 InnoDB:将日志文件c:\ iblogs \ ib_logfile1的大小设置为31457280 InnoDB:日志文件c:\ iblogs \ ib_logfile2不存在:要创建的新文件 InnoDB:将日志文件c:\ iblogs \ ib_logfile2的大小设置为31457280 InnoDB:找不到Doublewrite缓冲区:创建新的 InnoDB:创建了Doublewrite缓冲区 InnoDB:创建外键约束系统表 InnoDB:创建外键约束系统表 011024 10:58:25 InnoDB:开始了
当服务器完成其启动序列时,您应该看到类似这样的内容,这表明服务器已准备好为客户端连接提供服务:
mysqld:准备连接 版本:'8.0.18'套接字:''端口:3306
服务器继续向控制台写入它产生的任何进一步诊断输出。 您可以打开一个新的控制台窗口,在该窗口中运行客户端程序。
如果省略该
--console
选项,则服务器会将诊断输出写入数据目录中的错误日志(
C:\Program Files\MySQL\MySQL Server
8.0\data
默认情况下)。
错误日志是具有
.err
扩展名
的文件
,可以使用该
--log-error
选项
进行设置
。
root
MySQL授权表中
的初始
帐户没有密码。
启动服务器后,应使用
第2.10.4节“保护初始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
用户帐户有密码,则需要
使用该
选项
调用
mysqladmin
-p
并在出现提示时提供密码。
此命令调用MySQL管理实用程序
mysqladmin
连接到服务器并告诉它关闭。
该命令以MySQL
root
用户
身份连接,MySQL
用户是MySQL授权系统中的默认管理帐户。
MySQL授权系统中的用户完全独立于Microsoft Windows下的任何操作系统用户。
如果
mysqld
没有启动,请检查错误日志以查看服务器是否在那里写了任何消息以指出问题的原因。
默认情况下,错误日志位于
C:\Program Files\MySQL\MySQL Server
8.0\data
目录中。
它是带有后缀的文件
.err
,或者可以通过传入
--log-error
选项
来指定
。
或者,您可以尝试使用该
--console
选项
启动服务器
;
在这种情况下,服务器可以在屏幕上显示一些有助于解决问题的有用信息。
最后一个选项是
使用
和
选项
启动
mysqld
。
在这种情况下,
mysqld
写入一个日志文件
,其中应包含
mysqld
无法启动
的原因
。
请参见
第29.5.4节“DBUG包”
。
--standalone
--debug
C:\mysqld.trace
使用 mysqld --verbose --help 显示 mysqld 支持的 所有选项 。
PATH
手动
编辑系统时必须非常小心
;
意外删除或修改现有
PATH
值
的任何部分
可能会使您出现故障甚至无法使用的系统。
为了更容易调用MySQL程序,可以将MySQL
bin
目录
的路径名添加
到Windows系统
PATH
环境变量中:
在Windows桌面上,右键单击“ 我的电脑” 图标,然后选择“ 。
接下来, 从出现的“
菜单中 选择“ 选项卡 ,然后单击“ 按钮。在“ 系统变量”下 ,选择“ ,然后单击“ 按钮。 应出现 “ 对话框。
将光标放在标记为“
变量值”
的空间中出现的文本末尾
。
(使用
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
。
在Windows上,运行MySQL的推荐方法是将其安装为Windows服务,以便MySQL在Windows启动和停止时自动启动和停止。 也可以使用 NET 命令或图形 服务 实用程序 从命令行控制作为服务安装的MySQL服务器 。 通常,要将MySQL安装为Windows服务,您应该使用具有管理员权限的帐户登录。
该 服务 实用程序(Windows的 服务控制管理器 )可以在Windows控制面板中找到。 为避免冲突,建议 在从命令行执行服务器安装或删除操作时 关闭“ 服务” 实用程序。
在将MySQL作为Windows服务安装之前,应首先使用以下命令停止当前服务器的运行:
C:\>"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin"
-u root shutdown
如果MySQL
root
用户帐户有密码,则需要
使用该
选项
调用
mysqladmin
-p
并在出现提示时提供密码。
此命令调用MySQL管理实用程序
mysqladmin
连接到服务器并告诉它关闭。
该命令以MySQL
root
用户
身份连接,MySQL
用户是MySQL授权系统中的默认管理帐户。
MySQL授权系统中的用户完全独立于Windows下的任何操作系统用户。
使用以下命令将服务器安装为服务:
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install
service-installation命令不会启动服务器。 有关这方面的说明将在本节后面给出。
为了更容易调用MySQL程序,可以将MySQL
bin
目录
的路径名添加
到Windows系统
PATH
环境变量中:
在Windows桌面上,右键单击“ 我的电脑” 图标,然后选择“ 。
接下来, 从出现的“
菜单中 选择“ 选项卡 ,然后单击“ 按钮。在“ 系统变量”下 ,选择“ ,然后单击“ 按钮。 应出现 “ 对话框。
将光标放在标记为“
变量值”
的空间中出现的文本末尾
。
(使用
End
键确保光标位于此空间中文本的最末端。)然后输入MySQL
bin
目录
的完整路径名
(例如
C:\Program Files\MySQL\MySQL Server
8.0\bin
),并且应该有一个分号将此路径与此字段中存在的任何值。
通过单击“
依次关闭此对话框和每个对话框
直到所有打开的对话都被驳回。
您现在应该可以通过在DOS提示符下从系统上的任何目录键入其名称来调用任何MySQL可执行程序,而无需提供路径。
这包括服务器,
mysql
客户端和所有MySQL命令行实用程序,如
mysqladmin
和
mysqldump
。
如果在同一台计算机上运行多个MySQL服务器,
则不应将MySQL
bin
目录
添加
到Windows
PATH
。
PATH
手动
编辑系统时必须非常小心
;
意外删除或修改现有
PATH
值
的任何部分
可能会使您出现故障甚至无法使用的系统。
安装服务时可以使用以下附加参数:
您可以在
--install
选项
后面立即指定服务名称
。
默认服务名称是
MySQL
。
如果给出了服务名称,则可以跟随一个选项。
按照惯例,这应该是
指定选项文件的名称,服务器在启动时应从中读取选项。
--defaults-file=
file_name
除了
--defaults-file
可能
之外,使用单一选项
但不鼓励。
--defaults-file
更灵活,因为它允许您通过将它们放在命名选项文件中来为服务器指定多个启动选项。
您还可以
--local-service
在服务名称后面
指定一个
选项。
这会导致服务器使用
LocalService
具有有限系统权限
的
Windows帐户
运行
。
如果两个
--defaults-file
和
--local-service
给出以下服务名称,他们可以在任何顺序。
对于作为Windows服务安装的MySQL服务器,以下规则确定服务器使用的服务名称和选项文件:
如果service-installation命令
MySQL
在该
--install
选项
后面
未指定服务名称或缺省服务名称(
)
,则服务器将使用服务名称
MySQL
并从
[mysqld]
标准选项文件中
的
组中
读取选项
。
如果service-installation命令指定了除
MySQL
该
--install
选项
之外的服务名称
,则服务器将使用该服务名称。
它从
[mysqld]
组和与标准选项文件中的服务同名的组中
读取选项
。
这使您可以将该
[mysqld]
组用于所有MySQL服务应使用的选项,以及具有服务名称的选项组,以供使用该服务名称安装的服务器使用。
如果service-installation命令
--defaults-file
在服务名称后
指定了一个
选项,则服务器将以与上一项中所述相同的方式读取选项,但它仅从命名文件中读取选项并忽略标准选项文件。
作为一个更复杂的示例,请考虑以下命令:
C:\>"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"
--install MySQL --defaults-file=C:\my-opts.cnf
此处,
选项
MySQL
后面会给出
默认服务名称(
)
--install
。
如果未
--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服务可能无法运行,因为临时目录的写访问权限尚未授予适当的用户。
将MySQL服务器实例作为服务安装后,Windows会在Windows启动时自动启动该服务。
该服务也可以立即从
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 START
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
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --remove
如果 mysqld 没有作为服务运行,您可以从命令行启动它。 有关说明,请参见 第2.3.5.6节“从Windows命令行启动MySQL” 。
如果在安装过程中遇到困难,请参见 第2.3.6节“Microsoft Windows MySQL服务器安装疑难解答” 。
有关停止或删除Windows服务的更多信息,请参见 第5.8.2.2节“将多个MySQL实例作为Windows服务启动” 。
您可以通过执行以下任何命令来测试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
选项,只使用
localhost
在和IP地址
Host
MySQL授权表的列。
(确保存在指定IP地址的帐户,否则您可能无法连接。)
您可以通过指定
--pipe
或
--protocol=PIPE
选项或指定
.
(句点)作为主机名
,
强制MySQL客户端使用命名管道连接而不是TCP / IP
。
--socket
如果您不想使用默认管道名称,
请使用该
选项指定管道的名称。
如果已经设置了密码的
root
帐户,删除匿名帐户,或创建新的用户帐户,然后连接到MySQL服务器,你必须使用适当的
-u
,并
-p
选择与前面显示的命令。
请参见
第4.2.3节“连接到MySQL服务器”
。
有关 mysqlshow的 更多信息 ,请参见 第4.5.7节“ mysqlshow - 显示数据库,表和列信息” 。
在第一次安装和运行MySQL时,您可能会遇到阻止MySQL服务器启动的某些错误。 本节帮助您诊断和纠正其中一些错误。
解决服务器问题时的第一个资源是
错误日志
。
MySQL服务器使用错误日志记录与阻止服务器启动的错误相关的信息。
错误日志位于
文件中
指定
的
数据目录
中
my.ini
。
默认数据目录位置是
C:\Program Files\MySQL\MySQL
Server 8.0\data
,或
C:\ProgramData\Mysql
在Windows 7和Windows Server 2008上。
C:\ProgramData
默认情况下,
该
目录是隐藏的。
您需要更改文件夹选项以查看目录和内容。
有关错误日志和了解内容的更多信息,请参见
第5.4.2节“错误日志”
。
有关可能的错误的信息,请参阅MySQL服务启动时显示的控制台消息。
在安装
mysqld
作为服务
之后,从命令行
使用
SC START
mysqld_service_name
或
NET START
mysqld_service_name
命令,
以查看有关启动MySQL服务器作为服务的任何错误消息。
请参见
第2.3.5.8节“将MySQL作为Windows服务启动”
。
以下示例显示了在安装MySQL和首次启动服务器时可能遇到的其他常见错误消息:
如果MySQL服务器找不到
mysql
权限数据库或其他关键文件,则会显示以下消息:
发生系统错误1067。 致命错误:无法打开和锁定权限表: 表'mysql.user'不存在
当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
,请确保MySQL服务器通过使用configuration(
my.ini
)文件
了解这一点
。
my.ini
通常,
将
文件放在Windows目录中
C:\WINDOWS
。
要从
WINDIR
环境变量
的值确定其确切位置,请
从命令提示符处发出以下命令:
C:\> echo %WINDIR%
您可以使用任何文本编辑器(如记事本)创建或修改选项文件。
例如,如果安装了MySQL
E:\mysql
并且数据目录是
D:\MySQLdata
,则可以创建选项文件并设置一个
[mysqld]
部分以指定
basedir
和
datadir
选项的
值
:
的[mysqld] #set basedir到您的安装路径 BASEDIR = E:/ MySQL的 #set datadir到数据目录的位置 DATADIR = d:/ MySQLdata
使用(转发)斜杠而不是反斜杠在选项文件中指定Microsoft Windows路径名。 如果你使用反斜杠,请将它们加倍:
的[mysqld] #set basedir到您的安装路径 basedir = C:\\ Program Files \\ MySQL \\ MySQL Server 8.0 #set datadir到数据目录的位置 DATADIR = d:\\ MySQLdata
第4.2.2.2节“使用选项文件” 中给出了在选项文件值中使用反斜杠的规则 。
如果更改
datadir
MySQL配置文件中
的
值,则必须在重新启动MySQL服务器之前移动现有MySQL数据目录的内容。
请参见 第2.3.5.2节“创建选项文件” 。
如果您在没有先停止并删除现有MySQL服务并使用MySQL安装程序安装MySQL的情况下重新安装或升级MySQL,您可能会看到以下错误:
错误:无法为MySql创建Windows服务。错误:0
当配置向导尝试安装服务并查找具有相同名称的现有服务时,会发生这种情况。
此问题的一个解决方案是选择除
mysql
使用配置向导
之外的服务名称
。
这样可以正确安装新服务,但保留过时的服务。
虽然这是无害的,但最好删除不再使用的旧服务。
要永久删除旧
mysql
服务,请在命令行上以具有管理权限的用户身份执行以下命令:
C:\> SC DELETE mysql
[SC] DeleteService SUCCESS
如果该
SC
实用程序不适用于您的Windows版本,请
delsrv
从
http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp
下载该
实用程序
并使用该
delsrv mysql
语法。
存在执行本节中描述的大多数任务的GUI工具,包括:
MySQL安装程序 :用于安装和升级MySQL产品。
MySQL Workbench :管理MySQL服务器并编辑SQL语句。
如有必要,初始化数据目录并创建MySQL授权表。 MySQL Installer执行的Windows安装操作会自动初始化数据目录。 要从ZIP Archive包安装,请按 第2.10.1节“初始化数据目录”中所述初始化数据目录 。
关于密码,如果您使用MySQL安装程序安装了MySQL,则可能已经为初始
root
帐户
分配了密码
。
(请参见
第2.3.3节“用于Windows的MySQL安装程序”
。)否则,请使用
第2.10.4节“保护初始MySQL帐户”中
给出的密码分配过程
。
在分配密码之前,您可能希望尝试运行某些客户端程序以确保可以连接到服务器并且它正常运行。 确保服务器正在运行(请参见 第2.3.5.5节“首次启动服务器” )。 您还可以设置在Windows启动时自动运行的MySQL服务(请参见 第2.3.5.8节“将MySQL作为Windows服务启动” )。
这些说明假定您当前的位置是MySQL安装目录,并且它有一个
bin
包含此处使用的MySQL程序
的
子目录。
如果不是这样,请相应地调整命令路径名。
如果您使用MySQL Installer安装MySQL(请参见
第2.3.3节“用于Windows的MySQL安装程序”
),则默认安装目录为
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.5.7节“自定义MySQL工具的PATH”
。
在服务器运行时,发出以下命令以验证您是否可以从服务器检索信息。 输出应类似于此处显示的输出。
使用 mysqlshow 查看存在哪些数据库:
C:\> bin\mysqlshow
+ -------------------- +
| 数据库|
+ -------------------- +
| 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 root password here)
+ -------------------- + | 数据库| + -------------------- + | information_schema | | mysql | | performance_schema | | sys | + -------------------- +
如果指定数据库名称, mysqlshow将 显示 数据库 中的表列表:
C:\> bin\mysqlshow mysql
数据库:mysql
+ --------------------------- +
| 表|
+ --------------------------- +
| columns_priv |
| 组件|
| 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 |
| 插件|
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| 服务器|
| 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 |
| 用户|
+ --------------------------- +
使用
mysql
程序从
mysql
数据库中
的表中选择信息
:
C:\> bin\mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+ ------ + ----------- + ----------------------- +
| 用户| 主持人| 插件|
+ ------ + ----------- + ----------------------- +
| 根| localhost | caching_sha2_password |
+ ------ + ----------- + ----------------------- +
有关 mysql 和 mysqlshow的 更多信息 ,请参见 第4.5.1节“ mysql - MySQL命令行客户端” 和 第4.5.7节“ mysqlshow - 显示数据库,表和列信息” 。
有关MySQL服务器支持的macOS版本列表,请参阅 https://www.mysql.com/support/supportedplatforms/database.html 。
用于macOS的MySQL有多种不同的形式:
Native Package Installer,它使用本机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的一般说明” 。
您应该记住以下问题和注意事项:
其他MySQL安装 :安装过程无法识别包管理器(如Homebrew)的MySQL安装。 安装和升级过程适用于我们提供的MySQL包。 如果存在其他安装,请考虑在执行此安装程序之前停止它们以避免端口冲突。
Homebrew :例如,如果您使用Homebrew将MySQL Server安装到其默认位置,那么MySQL安装程序将安装到其他位置,并且不会从Homebrew升级版本。 在这种情况下,您最终会遇到多个MySQL安装,默认情况下会尝试使用相同的端口。 在运行此安装程序之前停止其他MySQL Server实例,例如执行 brew services stop mysql 以停止Homebrew的MySQL服务。
Launchd :安装了一个改变MySQL配置选项的launchd守护进程。 如果需要,请考虑编辑它,有关其他信息,请参阅下面的文档。 此外,macOS 10.10删除了启动项支持,支持launchd守护进程。 macOS System Preferences 下的可选MySQL首选项窗格 使用launchd守护程序。
用户
:您可能需要(或想要)创建特定
mysql
用户以拥有MySQL目录和数据。
您可以通过
目录实用程序
执行此操作
,
mysql
用户应该已存在。
要在单用户模式下使用,
_mysql
系统
/etc/passwd
文件中
应该已存在(注意下划线前缀)
条目
。
数据
:由于MySQL软件包安装程序将MySQL内容安装到特定于版本和平台的目录中,因此您可以使用它来在版本之间升级和迁移数据库。
您需要将
data
目录从旧版本
复制
到新版本,或者指定另一个
datadir
值来设置数据目录的位置。
默认情况下,MySQL目录安装在
/usr/local/
。
别名 :您可能希望在shell的资源文件中添加别名,以便更容易 从命令行 访问常用程序,如 mysql 和 mysqladmin 。 bash 的语法 是:
别名mysql = / usr / local / mysql / bin / mysql 别名mysqladmin = / usr / local / mysql / bin / mysqladmin
对于 tcsh ,请使用:
别名mysql / usr / local / mysql / bin / mysql 别名mysqladmin / usr / local / mysql / bin / mysqladmin
更好的是,添加
/usr/local/mysql/bin
到您的
PATH
环境变量。
您可以通过修改shell的相应启动文件来完成此操作。
有关更多信息,请参见
第4.2.1节“调用MySQL程序”
。
删除
:从先前安装复制MySQL数据库文件并成功启动新服务器后,应考虑删除旧安装文件以节省磁盘空间。
此外,您还应删除旧版本的Package Receipt目录
。
/Library/Receipts/mysql-
VERSION
.pkg
遗留问题 :在OS X 10.7之前,MySQL服务器与OS X Server捆绑在一起。
该软件包位于磁盘映像(
.dmg
)文件中,您首先需要通过在Finder中双击其图标来安装该文件。
然后它应该挂载图像并显示其内容。
在继续安装之前,请确保通过 在命令行上 使用MySQL Manager应用程序(在macOS Server上),首选项窗格或 mysqladmin shutdown 来停止所有正在运行的MySQL服务器实例 。
要使用软件包安装程序安装MySQL:
下载
包含MySQL软件包安装程序
的disk image(
.dmg
)文件(
此处
提供社区版本
)。
双击该文件以装入磁盘映像并查看其内容。
双击磁盘中的MySQL安装程序包。
它根据您下载的MySQL版本命名。
例如,对于MySQL服务器8.0.18,它可能会被命名
。
mysql-8.0.18-osx-
10.13-x86_64
.pkg
初始向导介绍屏幕引用要安装的MySQL服务器版本。 单击“
开始安装。MySQL社区版显示了相关GNU通用公共许可证的副本。 单击
,然后 单击 继续。在“ 安装类型” 页面中,您可以单击“ 以使用所有默认值执行安装向导,单击“ 以更改要安装的组件(MySQL服务器,MySQL测试,首选项窗格,启动支持 - 默认情况下启用除MySQL测试之外的所有组件) 。
虽然 可以看到 “
选项,但无法更改安装位置。单击“
以安装MySQL Server。 如果升级当前的MySQL Server安装,安装过程将在此处结束,否则请按照向导的新MySQL服务器安装的其他配置步骤进行操作。成功安装新的MySQL服务器后,通过选择密码的默认加密类型,定义root密码以及启动(或禁用)MySQL服务器来完成配置步骤。
默认的MySQL 8.0密码机制是
caching_sha2_password
(强),此步骤允许您将其更改为
mysql_native_password
(Legacy)。
选择传统的密码机制改变所产生的launchd文件设置
--default_authentication_plugin=mysql_native_password
下
ProgramArguments
。
选择强密码加密未设置,
--default_authentication_plugin
因为使用了默认的MySQL Server值,即
caching_sha2_password
。
为root用户定义密码,并在配置步骤完成后切换MySQL Server是否应该启动。
摘要 是最后一步,并引用了成功且完整的MySQL Server安装。 向导。
MySQL服务器现已安装。 如果您选择不启动MySQL,则使用命令行中的launchctl或使用MySQL首选项窗格单击“开始”启动MySQL。 有关其他信息,请参见 第2.4.3节“安装和使用MySQL启动守护程序” 和 第2.4.4节“安装和使用MySQL首选项窗格” 。 使用MySQL Preference Pane或launchd将MySQL配置为在启动时自动启动。
使用软件包安装程序进行安装时,文件将安装到
/usr/local
与安装版本和平台名称相匹配的
目录中
。
例如,安装程序文件
使用符号链接
安装MySQL
。
下表显示了此MySQL安装目录的布局。
mysql-8.0.18-
osx10.13-x86_64.dmg
/usr/local/mysql-8.0.18-osx10.13-x86_64/
/usr/local/mysql
表2.6 macOS上的MySQL安装布局
目录 | 目录的内容 |
---|---|
bin |
mysqld 服务器,客户端和实用程序 |
data |
日志文件,数据库,
/usr/local/mysql/data/mysqld.local.err
默认错误日志
在哪里
|
docs |
帮助文档,如发行说明和构建信息 |
include |
包含(标题)文件 |
lib |
图书馆 |
man |
Unix手册页 |
mysql-test |
MySQL测试套件(使用安装程序包(DMG)时,在安装过程中默认禁用'MySQL Test') |
share |
其他支持文件,包括错误消息,示例配置文件,用于数据库安装的SQL |
support-files |
脚本和示例配置文件 |
/tmp/mysql.sock |
MySQL Unix套接字的位置 |
macOS使用启动守护程序自动启动,停止和管理MySQL等进程和应用程序。
默认情况下,macOS上的安装包(DMG)安装一个名为
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
contains的包含plist定义
的launchd文件
,类似于:
<?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”> <字典> <key> Label </ key> <string> com.oracle.oss.mysql.mysqld </ string> <key> ProcessType </ key> <string>交互式</ string> <key>已禁用</ 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> <键> ProgramArguments </键> <阵列> <字符串>的/ usr /本地/ MySQL的/斌/ mysqld的</字符串> <字符串> - 用户= _mysql </字符串> <字符串> - BASEDIR =的/ usr /本地/ MySQL的</字符串> <字符串> - DATADIR =的/ usr /本地/ MySQL的/数据</串> <字符串> - 插件-DIR =的/ usr /本地/ MySQL的/ LIB /插件</字符串> <字符串> - 对数误差=的/ usr /本地/ MySQL的/数据/ mysqld.local.err </字符串> <字符串> - PID文件=的/ usr /本地/ MySQL的/数据/ mysqld.local.pid </字符串> <字符串> - 密钥环-文件的数据= / USR /本地/ MySQL的/钥匙圈/密钥环</字符串> <字符串> - 早期插件负荷= keyring_file = keyring_file.so </字符串> </阵列> <key> WorkingDirectory </ key> <string> / usr / local / mysql </ string> </字典> </ plist中>
一些用户报告说,添加plist DOCTYPE声明会导致launchd操作失败,尽管它通过了lint检查。 我们怀疑这是一个copy-n-paste错误。 包含上述代码段的文件的md5校验和是 d925f05f6d1b6ee5ce5451b596d6baed 。
要启用launchd服务,您可以:
打开macOS系统首选项并选择MySQL首选项面板,然后执行
。
该
实例
页面包含一个选项,以启动或停止MySQL和
重新创建
data/
目录。
卸载MySQL Server以及可选的MySQL首选项面板和launchd信息。
或者,手动加载launchd文件。
shell> cd / Library / LaunchDaemons shell> sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
要将MySQL配置为在启动时自动启动,您可以:
shell> sudo launchctl load -w com.oracle.oss.mysql.mysqld.plist
升级MySQL服务器时,launchd安装过程将删除使用MySQL服务器5.7.7及更低版本安装的旧启动项。
此外,升级将替换您现有的名为的launchd文件
com.oracle.oss.mysql.mysqld.plist
。
其他发布相关信息:
plist条目覆盖
my.cnf
条目,因为它们作为命令行参数传入。
有关传递程序选项的其他信息,请参见
第4.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”> <字典> <key> Label </ key> <string> com.oracle.oss.mysql.mysqld </ string> <key> ProcessType </ key> <string>交互式</ string> <key>已禁用</ 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> <键> ProgramArguments </键> <阵列> <字符串>的/ usr /本地/ MySQL的/斌/ mysqld的</字符串> <字符串> - 用户= _mysql </字符串> <字符串> - BASEDIR =的/ usr /本地/ MySQL的</字符串> <字符串> - DATADIR =的/ usr /本地/ MySQL的/数据</串> <字符串> - 插件-DIR =的/ usr /本地/ MySQL的/ LIB /插件</字符串> <字符串> - 对数误差=的/ usr /本地/ MySQL的/数据/ mysqld.local.err </字符串> <字符串> - PID文件=的/ usr /本地/ MySQL的/数据/ mysqld.local.pid </字符串> <字符串> - 密钥环-文件的数据= / USR /本地/ MySQL的/钥匙圈/密钥环</字符串> <字符串> - 早期插件负荷= keyring_file = keyring_file.so </字符串> </阵列> <key> WorkingDirectory </ key> <string> / usr / local / mysql </ string> </字典> </ plist中>
在这种情况下,
basedir
,
datadir
,
plugin_dir
,
log_error
,
pid_file
,
keyring_file_data
,并
--early-plugin-load
选择从默认的plist去除
ProgramArguments
定义,你可能在定义
my.cnf
来代替。
MySQL安装包包含一个MySQL首选项窗格,使您可以在启动MySQL安装期间启动,停止和控制自动启动。
此首选项窗格默认安装,并列在系统的“ 系统偏好设置” 窗口下。
MySQL首选项窗格安装有安装MySQL Server的相同DMG文件。 通常它与MySQL Server一起安装,但它也可以自己安装。
要安装MySQL首选项窗格:
完成安装MySQL服务器的过程,如 第2.4.2节“使用本机软件包在macOS上安装MySQL” 中的文档所述 。
单击 “ 安装类型” 步骤中的“ ” 。 “Preference Pane”选项列在那里并默认启用; 确保没有取消选择。 可以选择或选择其他选项,例如MySQL Server。
完成安装过程。
MySQL首选项窗格仅启动和停止从已安装在默认位置的MySQL软件包安装中安装的MySQL安装。
安装MySQL首选项窗格后,您可以使用此首选项窗格控制MySQL服务器实例。
该
实例
页面包含一个选项,以启动和停止MySQL和
重新创建
data/
目录。
卸载MySQL Server以及可选的pain and launchd信息。
该
实例
页面包含一个选项,以启动或停止MySQL和
重新创建
data/
目录。
卸载MySQL Server以及可选的MySQL首选项面板和launchd信息。
在 配置 页面显示MySQL服务器选项,包括路径MySQL配置文件。
MySQL首选项窗格显示MySQL服务器的当前状态, 如果服务器尚未运行并且 正在运行 (绿色) ,则显示已 停止 (红色) 服务器已启动。 首选项窗格还显示MySQL服务器是否已设置为自动启动的当前设置。
Linux支持许多不同的安装MySQL的解决方案。 我们建议您使用Oracle提供的一个发行版,其中有几种安装方法可供使用:
表2.7 Linux安装方法和信息
类型 | 设置方法 | 附加信息 |
---|---|---|
易于 | 启用 MySQL Apt存储库 | 文档 |
百胜 | 启用 MySQL Yum存储库 | 文档 |
zypper的 | 启用 MySQL SLES存储库 | 文档 |
RPM | 下载 特定包 | 文档 |
DEB | 下载 特定包 | 文档 |
通用 | 下载 通用包 | 文档 |
资源 | 从 源代码 编译 | 文档 |
搬运工人 | 使用Docker Hub for MySQL Community Edition; 从 My Oracle Support 下载MySQL Enterprise Edition的Docker镜像 | 文档 |
Oracle坚不可摧的Linux网络 | 使用ULN频道 | 文档 |
作为替代方案,您可以使用系统上的软件包管理器自动从Linux发行版的本机软件存储库下载和安装带有软件包的MySQL。 这些本机包通常是当前可用版本的几个版本。 您通常也无法安装开发里程碑版本(DMR),因为这些版本通常不在本机存储库中提供。 有关使用本机程序包安装程序的更多信息,请参见 第2.5.7节“从本机软件存储库在Linux上安装MySQL” 。
对于许多Linux安装,您需要设置MySQL以在计算机启动时自动启动。
许多本机程序包安装都会为您执行此操作,但对于源代码,二进制和RPM解决方案,您可能需要单独进行此设置。
所需的脚本
mysql.server
可以
support-files
在MySQL安装目录下的目录中
找到,也可以
在MySQL源代码树中找到。
您可以像
/etc/init.d/mysql
自动MySQL启动和关闭
一样安装它
。
请参见
第4.3.3节“
mysql.server
- MySQL服务器启动脚本”
。
适用于Oracle Linux,Red Hat Enterprise Linux,CentOS和Fedora 的 MySQL Yum存储库 提供用于安装MySQL服务器,客户端,MySQL Workbench,MySQL Utilities,MySQL路由器,MySQL Shell,Connector / ODBC,Connector / Python等的RPM软件包。 (并非所有软件包都可用于所有发行版; 有关详细信息 ,请参阅 使用Yum安装其他MySQL产品和组件 )。
作为一种流行的开源软件,MySQL以其原始或重新打包的形式广泛安装在许多系统上,来自各种来源,包括不同的软件下载站点,软件存储库等。 以下说明假定您的系统上尚未使用第三方分发的RPM软件包安装MySQL; 如果不是这种情况,请按照 第2.11.7节“使用MySQL Yum存储库升级MySQL” 或 使用MySQL Yum存储库 替换 MySQL 的第三方分发中 给出的说明进行操作 。
按照以下步骤使用MySQL Yum存储库安装最新的GA版本的MySQL:
首先,将MySQL Yum存储库添加到系统的存储库列表中。 这是一次性操作,可以通过安装MySQL提供的RPM来执行。 跟着这些步骤:
转到 MySQL Developer Zone中 的下载MySQL Yum存储库页面( https://dev.mysql.com/downloads/repo/yum/ )。
选择并下载适用于您的平台的发行包。
使用以下命令安装下载的发行包,替换
platform-and-version-specific-package-name
为下载的RPM包的名称:
外壳> sudo yum localinstall platform-and-version-specific-package-name
.rpm
对于基于EL6的系统,该命令采用以下形式:
外壳> sudo yum localinstall mysql80-community-release-el6-{version-number}
.noarch.rpm
对于基于EL7的系统:
外壳> sudo yum localinstall mysql80-community-release-el7-{version-number}
.noarch.rpm
对于Fedora 30:
外壳> sudo dnf localinstall mysql80-community-release-fc30-{version-number}
.noarch.rpm
对于Fedora 29:
外壳> sudo dnf localinstall mysql80-community-release-fc29-{version-number}
.noarch.rpm
对于Fedora 28:
外壳> sudo dnf localinstall mysql80-community-release-fc28-{version-number}
.noarch.rpm
安装命令将MySQL Yum存储库添加到系统的存储库列表中,并下载GnuPG密钥以检查软件包的完整性。 有关 GnuPG密钥检查的详细信息 , 请参见 第2.1.3.2节“使用GnuPG 进行 签名检查” 。
您可以通过以下命令检查MySQL Yum存储库是否已成功添加(对于启用了dnf的系统, 使用 dnf 替换 命令中的 yum ):
外壳> yum repolist enabled | grep "mysql.*-community.*"
一旦在您的系统上启用了MySQL Yum存储库, yum update 命令的 任何系统范围更新 (或 启用dnf的系统的 dnf升级 )都将升级系统上的MySQL软件包,并替换任何本机第三方软件包,如果Yum在MySQL Yum存储库中找到它们的替换; 请参见 第2.11.7节“使用MySQL Yum存储库升级MySQL” ,有关对系统可能产生的影响的讨论,请参阅 升级共享客户端库 。
使用MySQL Yum存储库时,默认选择安装最新的GA系列(当前为MySQL 8.0)。 如果这是您想要的,您可以跳到下一步, 安装MySQL 。
在MySQL Yum存储库中,MySQL社区服务器的不同发行版系列托管在不同的子存储库中。 默认情况下启用最新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系列的子存储库:
shell>sudo yum-config-manager --disable mysql57-community
shell>sudo yum-config-manager --enable mysql80-community
对于支持dnf的平台:
shell>sudo dnf config-manager --disable mysql57-community
shell>sudo dnf config-manager --enable mysql80-community
除了使用
yum-config-manager
或
dnf config-manager
命令外,您还可以通过手动编辑
/etc/yum.repos.d/mysql-community.repo
文件
来选择发布系列
。
这是文件中发布系列的子存储库的典型条目:
[mysql57社区] name = MySQL 5.7社区服务器 baseURL时= HTTP://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ 启用= 1 gpgcheck = 1 gpgkey =文件:///等/ PKI / RPM-GPG / RPM-GPG-KEY-MySQL的
找到要配置的子存储库的条目,然后编辑该
enabled
选项。
指定
enabled=0
禁用子存储库,或
enabled=1
启用子存储库。
例如,要安装MySQL 8.0,请确保您具有
enabled=0
MySQL 5.7的上述子存储库条目,并且具有
enabled=1
8.0系列的条目:
#启用MySQL 8.0 [mysql80社区] name = MySQL 8.0社区服务器 baseURL时= HTTP://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ 启用= 1 gpgcheck = 1 gpgkey =文件:///等/ PKI / RPM-GPG / RPM-GPG-KEY-MySQL的
您应该只在任何时候为一个发布系列启用子存储库。 当启用多个版本系列的子存储库时,Yum将使用最新的系列。
通过运行以下命令并检查其输出来验证是否已启用和禁用了正确的子存储库(对于启用dnf的系统,请 使用 dnf 替换 命令中的 yum ):
外壳> yum repolist enabled | grep mysql
通过以下命令安装MySQL(对于支持dnf的系统, 使用 dnf 替换 命令中的 yum ):
外壳> sudo yum install mysql-community-server
这将安装MySQL server(
mysql-community-server
)的包以及运行服务器所需组件的包,包括client(
mysql-community-client
)的
包,客户
端和服务器的常见错误消息和字符集(
mysql-community-common
)以及共享客户端库(
mysql-community-libs
) 。
使用以下命令启动MySQL服务器:
外壳> sudo service mysqld start
启动mysqld:[确定]
您可以使用以下命令检查MySQL服务器的状态:
外壳> sudo service mysqld status
mysqld(pid 3066)正在运行。
在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:
服务器已初始化。
SSL证书和密钥文件在数据目录中生成。
validate_password
已安装并已启用。
将
'root'@'localhost
创建
一个超级用户帐户
。
设置超级用户的密码并将其存储在错误日志文件中。
要显示它,请使用以下命令:
外壳> sudo grep 'temporary password' /var/log/mysqld.log
通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改root密码:
外壳> mysql -uroot -p
MySQL的> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
validate_password
默认安装。
实现的默认密码策略
validate_password
要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且总密码长度至少为8个字符。
有关安装后过程的更多信息,请参见 第2.10节“安装后设置和测试” 。
基于EL7的平台的兼容性信息: 来自平台的本机软件存储库的以下RPM软件包与安装MySQL服务器的MySQL Yum存储库中的软件包不兼容。 使用MySQL Yum存储库安装MySQL后,您将无法安装这些软件包(反之亦然)。
Akonadi的MySQL的
您可以使用Yum来安装和管理MySQL的各个组件。 其中一些组件托管在MySQL Yum存储库的子存储库中:例如,MySQL连接器可以在MySQL Connectors社区子存储库中找到,而MySQL Workbench可以在MySQL工具社区中找到。 您可以使用以下命令从MySQL Yum存储库列出适用于您的平台的所有MySQL组件的软件包(对于支持dnf的系统, 使用 dnf 替换 命令中的 yum ):
外壳> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available
使用以下命令安装您选择的任何软件包,替换
package-name
为软件包的名称(对于支持dnf的系统,请
使用
dnf
替换
命令中的
yum
):
外壳> sudo yum install package-name
例如,要在Fedora上安装MySQL Workbench:
外壳> sudo dnf install mysql-workbench-community
要安装共享客户端库(对于支持dnf的系统,请 使用 dnf 替换 命令中的 yum ):
外壳> sudo yum install mysql-community-libs
ARM支持
Oracle Linux 7支持ARM 64位(aarch64),需要Oracle Linux 7软件集合存储库(ol7_software_collections)。 例如,要安装服务器:
shell> yum-config-manager --enable ol7_software_collections shell> yum install mysql-community-server
从MySQL 8.0.12开始,Oracle Linux 7支持ARM 64位(aarch64)。
8.0.12版本要求您
在执行
步骤
后执行
调整
libstdc ++ 7
路径
。
ln -s
/opt/oracle/oracle-armtoolset-1/root/usr/lib64
/usr/lib64/gcc7
yum
install
除了安装,您还可以使用MySQL Yum存储库对MySQL产品和组件执行更新。 有关详细 信息, 请参见 第2.11.7节“使用MySQL Yum存储库升级MySQL” 。
MySQL APT存储库提供
deb
用于在以下Linux平台上安装和管理MySQL服务器,客户端和其他组件的软件包:
Debian 9
Ubuntu 16.04,17.10和18.04
有关使用MySQL APT存储库的说明,请参阅“使用MySQL APT存储库 快速指南” 。
MySQL SLES存储库提供RPM软件包,用于在SUSE Enterprise Linux Server上安装和管理MySQL服务器,客户端和其他组件。
有关使用MySQL SLES存储库的说明,请参阅使用MySQL SLES存储库 的快速指南 。
在基于RPM的Linux发行版上安装MySQL的推荐方法是使用Oracle提供的RPM包。 对于社区版MySQL,有两个获取它们的来源:
来自MySQL软件存储库:
MySQL Yum存储库( 有关详细信息 , 请参见 第2.5.1节“使用MySQL Yum存储库在Linux上安装MySQL” )。
MySQL SLES存储库( 有关详细信息 , 请参见 第2.5.3节“使用MySQL SLES存储库在Linux上安装MySQL” )。
从 MySQL Developer Zone中 的 下载MySQL社区服务器 页面 。
MySQL的RPM分布也由其他供应商提供。 请注意,它们可能与Oracle在功能,功能和约定(包括通信设置)中构建的不同,并且本手册中的安装说明不一定适用于它们。 应该咨询供应商的说明。
表2.8 MySQL Community Edition的RPM包
包裹名字 | 摘要 |
---|---|
mysql-community-client |
MySQL客户端应用程序和工具 |
mysql-community-common |
服务器和客户端库的公共文件 |
mysql-community-devel |
用于MySQL数据库客户端应用程序的开发头文件和库 |
mysql-community-embedded-compat |
MySQL服务器作为嵌入式库,兼容使用库18的应用程序 |
mysql-community-libs |
MySQL数据库客户端应用程序的共享库 |
mysql-community-libs-compat |
以前的MySQL安装的共享兼容库 |
mysql-community-server |
数据库服务器和相关工具 |
mysql-community-test |
MySQL服务器的测试套件 |
mysql-community |
源代码RPM看起来类似于mysql-community-8.0.18-1.el7.src.rpm,具体取决于所选的操作系统 |
表2.9 MySQL企业版的RPM包
包裹名字 | 摘要 |
---|---|
mysql-commercial-backup |
MySQL企业备份(在8.0.11中添加) |
mysql-commercial-client |
MySQL客户端应用程序和工具 |
mysql-commercial-common |
服务器和客户端库的公共文件 |
mysql-commercial-devel |
用于MySQL数据库客户端应用程序的开发头文件和库 |
mysql-commercial-embedded-compat |
MySQL服务器作为嵌入式库,兼容使用库18的应用程序 |
mysql-commercial-libs |
MySQL数据库客户端应用程序的共享库 |
mysql-commercial-libs-compat |
以前MySQL安装的共享兼容库; 库的版本与您正在使用的分发默认安装的库的版本匹配 |
mysql-commercial-server |
数据库服务器和相关工具 |
mysql-commercial-test |
MySQL服务器的测试套件 |
RPM的全名具有以下语法:
packagename
-version
-distribution
-arch
.rpm
的
distribution
和
arch
值表示Linux分发和的量,包建处理器类型。
有关分发标识符的列表,请参阅下表:
表2.10 MySQL Linux RPM包分发标识符
分配价值 | 有可能的使用 |
---|---|
el6
,
el7
|
红帽企业Linux / Oracle Linux / CentOS 6或7 |
fc28
,
fc29
,
fc30
|
Fedora 28,29和30 |
sles12 |
SUSE Linux Enterprise Server 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-libs
,
mysql-community-common
,和
mysql-community-libs-compat
包获得的功能,标准的MySQL安装。
要执行此类标准的基本安装,请转到包含所有这些软件包的文件夹(最好不要包含其他具有相似名称的RPM软件包),然后发出以下命令:
外壳> sudo yum install mysql-community-{server,client,common,libs}-*
用 zypper 替换 yum 用于SLES,用 dnf 替换 Fedora。
虽然这是很最好使用像一个高层次的包管理工具 百胜 安装的软件包,谁喜欢直接用户 转 命令可以更换 百胜安装 使用命令 RPM -Uvh 命令; 但是,使用 rpm -Uvh 会使安装过程更容易出错,因为安装过程可能会遇到潜在的依赖性问题。
要仅安装客户端程序,可以跳过
mysql-community-server
要安装的软件包列表;
发出以下命令:
外壳> sudo yum install mysql-community-{client,common,libs}-*
用 zypper 替换 yum 用于SLES,用 dnf 替换 Fedora。
使用RPM软件包的MySQL标准安装会导致在系统目录下创建的文件和资源,如下表所示。
表2.11来自MySQL Developer Zone的Linux RPM软件包的MySQL安装布局
文件或资源 | 地点 |
---|---|
客户端程序和脚本 | /usr/bin |
mysqld 服务器 | /usr/sbin |
配置文件 | /etc/my.cnf |
数据目录 | /var/lib/mysql |
错误日志文件 |
对于RHEL,Oracle Linux,CentOS或Fedora平台:
对于SLES:
|
的价值
secure_file_priv
|
/var/lib/mysql-files |
System V init脚本 |
对于RHEL,Oracle Linux,CentOS或Fedora平台:
对于SLES:
|
系统服务 |
对于RHEL,Oracle Linux,CentOS或Fedora平台:
对于SLES:
|
Pid文件 | /var/run/mysql/mysqld.pid |
插座 | /var/lib/mysql/mysql.sock |
密钥环目录 | /var/lib/mysql-keyring |
Unix手册页 | /usr/share/man |
包含(标题)文件 | /usr/include/mysql |
图书馆 | /usr/lib/mysql |
其他支持文件(例如,错误消息和字符集文件) | /usr/share/mysql |
安装还会创建一个名为的用户
mysql
和一个
mysql
在系统上
命名
的组
。
使用较旧的软件包安装以前版本的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
(或者
具有反转参数的
服务
)命令(如
停止
,
启动
,
状态
和
重新启动)
来管理MySQL服务器服务。
mysqld
默认情况下启用
该
服务,并在系统重新启动时启动。
请注意,某些事情在systemd平台上可能会有所不同:例如,更改数据目录的位置可能会导致问题。
有关
其他信息
,
请参见
第2.5.9节“使用systemd管理MySQL服务器”
。
在使用RPM软件包进行升级安装期间,如果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 可用的文件描述符数量限制 。 请参见 第B.4.2.17节“找不到文件和类似错误”
从多个MySQL版本安装客户端库。
可以安装多个客户端库版本,例如,您希望保持与以前库链接的旧应用程序的兼容性。
要安装较旧的客户端库,请使用
rpm
--oldpackage
选项
。
例如,要
在
MySQL 8.0
的EL6系统
上安装
,请使用如下命令:
mysql-community-libs-5.5
libmysqlclient.21
外壳> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm
调试包。
使用
调试包
编译的MySQL Server的特殊变体
已包含在服务器RPM包中。
它执行调试和内存分配检查,并在服务器运行时生成跟踪文件。
要使用该调试版本,请启动MySQL
/usr/sbin/mysqld-debug
,而不是将其作为服务启动或使用
/usr/sbin/mysqld
。
有关
可以使用的调试选项
,
请参见
第29.5.4节“DBUG包”
。
调试版本的默认插件目录从
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 。
Oracle提供Debian软件包,用于在Debian或类似Debian的Linux系统上安装MySQL。 这些包可通过两个不同渠道获得:
在 MySQL的APT库 。 这是在类似Debian的系统上安装MySQL的首选方法,因为它提供了一种安装和更新MySQL产品的简单方便的方法。 有关详细信息,请参见 第2.5.2节“使用MySQL APT存储库在Linux上安装MySQL” 。
在 MySQL的开发人员专区的下载区 。 有关详细信息,请参见 第2.1.2节“如何获取MySQL” 。 以下是有关Debian软件包的一些信息以及安装它们的说明:
MySQL Developer Zone提供了各种Debian软件包,用于在不同的Debian或Ubuntu平台上安装MySQL的不同组件(目前支持Debian 9和Ubuntu 16,17和18)。
首选方法是使用tarball包,其中包含MySQL基本设置所需的包。
tarball包的格式为
。
是MySQL版本,
是Linux发行版。
该
值指示构建程序包的处理器类型或系列,如下表所示:
mysql-server_
MVER
-DVER
_CPU
.deb-bundle.tarMVER
DVER
CPU
下载tarball后,使用以下命令将其解压缩:
外壳> tar -xvf mysql-server_MVER
-DVER
_CPU
.deb-bundle.tar
libaio
如果您的系统上尚不存在
该
库,则
可能需要安装该
库:
外壳> sudo apt-get install libaio1
使用以下命令预配置MySQL服务器包:
外壳> sudo dpkg-preconfigure mysql-community-server_*.deb
系统将要求您为MySQL安装的root用户提供密码。 您可能还会被问到有关安装的其他问题。
确保记住您设置的root密码。 想要稍后设置密码的用户可以 在对话框 中将 密码 字段留空,只需按 ; 在这种情况下,使用 MySQL Socket Peer-Credential Authentication Plugin 对使用Unix套接字文件的连接 验证对 服务器的root访问权限 。 您可以稍后使用 mysql_secure_installation 设置root密码 。
对于MySQL服务器的基本安装,请安装数据库公共文件包,客户端包,客户端元数据包,服务器包和服务器元数据包(按此顺序); 你可以用一个命令来做到这一点:
外壳> sudo dpkg -i mysql-{common,community-client,client,community-server,server}_*.deb
包名
server-core
和
包中也有
client-core
包。
它们仅包含二进制文件,并由标准软件包自动安装。
自行安装它们不会导致MySQL设置正常运行。
如果您被 dpkg 警告未满足的依赖项 ,您可以使用 apt-get 修复它们 :
sudo apt-get -f install
以下是系统上安装文件的位置:
所有配置文件(如
my.cnf
)都在
/etc/mysql
所有二进制文件,库,标题等都在
/usr/bin
和
/usr/sbin
数据目录位于
/var/lib/mysql
MySQL的Debian发行版也由其他供应商提供。 请注意,它们可能与Oracle在功能,功能和约定(包括通信设置)中构建的不同,并且本手册中的说明不一定适用于安装它们。 应该咨询供应商的说明。
Docker部署框架支持轻松安装和配置MySQL Server。 本节介绍如何使用MySQL Server Docker镜像。
在使用MySQL Server Docker映像之前,需要在系统上安装Docker。 有关 说明, 请参阅 安装Docker 。
您需要运行
docker
命令
sudo
或创建
docker
用户组,然后向任何想要运行
docker
命令的
用户添加
。
详情请见
此处
。
由于Docker容器始终以root权限运行,因此您应该了解
Docker守护程序攻击面
并正确缓解相关风险。
MySQL团队维护的MySQL Docker映像专为Linux平台构建。 其他平台不受支持,使用这些MySQL Docker镜像的用户自行承担风险。 有关 在非Linux操作系统上运行这些容器的一些已知限制, 请参阅 此处的讨论 。
不必在单独的步骤中下载服务器映像; 但是,在创建Docker容器之前执行此步骤可确保您的本地映像是最新的。 要下载MySQL Community Edition映像,请运行以下命令:
docker pull mysql/mysql-server:tag
该
tag
是你想拉的图像版本的标签(例如
5.5
,
5.6
,
5.7
,
8.0
,或
latest
)。
如果
省略,
则使用标签,并下载最新GA版本的MySQL社区服务器的图像。
请参阅
Docker Hub中mysql / mysql-server页面
上可用版本的标签列表
。
:
tag
latest
您可以使用以下命令列出下载的Docker镜像:
外壳> docker images
存储标签图像ID创建大小
mysql / mysql-server最新3157d7f55f8d 4周前241MB
如果要下载由MySQL企业版图像
的My Oracle Support
网站,请登录到您的Oracle帐户,从下载
的
tar.zip
文件泊坞窗图像(
),将它解压缩,以获得内(压缩包
),然后加载图像通过运行此命令:
mysql-commercial-
version
_linux_x86_64_docker_tar.zipmysql-enterprise-server-
version
.tar
docker load -i mysql-enterprise-server-version
.tar
要为MySQL服务器启动新的Docker容器,请使用以下命令:
docker run --name=container_name
-d image_name
:tag
可以使用
docker images
命令
获取映像名称
,如
下载MySQL服务器Docker映像中所述
。
--name
用于为服务器容器提供自定义名称
的
选项是可选的;
如果没有提供容器名称,则生成随机的名称。
例如,要为MySQL社区服务器启动新的Docker容器,请使用以下命令:
docker run --name=mysql1 -d mysql/mysql-server:8.0
要使用从My Oracle Support下载的Docker镜像为MySQL Enterprise Server启动新的Docker容器,请使用以下命令:
docker run --name=mysql1 -d mysql/enterprise-server:8.0
如果先前的 docker pull 或 docker run 命令 未下载指定名称和标记的Docker镜像, 则现在下载该图像。 容器的初始化开始,当您运行 docker ps 命令 时,容器将显示在正在运行的容器列表中 。 例如:
外壳> docker ps
集装箱ID图像命令创建状态端口名称
a24888f0d6f4 mysql / mysql-server“/entrypoint.sh my ...”14秒前上升13秒(生命值:开始)3306 / tcp,33060 / tcp mysql1
容器初始化可能需要一些时间。
当服务器准备好使用时,
docker ps
命令
STATUS
输出中的容器
将更
改为
。
(health: starting)
(healthy)
上面
-d
的
docker run
命令中
使用
的
选项
使容器在后台运行。
使用此命令监视容器的输出:
docker logs mysql1
初始化完成后,命令的输出将包含为root用户生成的随机密码; 例如,使用以下命令检查密码:
shell> docker logs mysql1 2>&1 | grep GENERATED
GENERATED ROOT PASSWORD:Axegh3kAJyDLaRuBemecis&EShOs
服务器准备就绪后,您可以 在刚刚启动的MySQL Server容器中 运行 mysql 客户端,并将其连接到MySQL服务器。 使用 docker exec -it 命令在已启动 的Docker容器中 启动 mysql 客户端,如下所示:
docker exec -it mysql1 mysql -uroot -p
询问时,输入生成的root密码(请参阅
上面的
启动MySQL服务器实例
的最后一步,
了解如何查找密码)。
因为
MYSQL_ONETIME_PASSWORD
默认情况下
该
选项为true,所以在将
mysql
客户端
连接
到服务器之后,必须通过发出以下语句来重置服务器root密码:
MySQL的> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password
';
password
用您选择的密码
替换
。
重置密码后,服务器即可使用。
要使用shell访问MySQL Server容器,请使用 docker exec -it 命令在容器内启动bash shell:
shell> docker exec -it mysql1 bash
bash-4.2#
然后,您可以在容器内运行Linux命令。 例如,要查看容器内服务器数据目录中的内容,请使用以下命令:
庆典-4.2# ls /var/lib/mysql
auto.cnf ca.pem client-key.pem ib_logfile0 ibdata1 mysql mysql.sock.lock private_key.pem server-cert.pem sys
ca-key.pem client-cert.pem ib_buffer_pool ib_logfile1 ibtmp1 mysql.sock performance_schema public_key.pem server-key.pem
要停止我们创建的MySQL Server容器,请使用以下命令:
docker stop mysql1
docker stop 向 mysqld 进程 发送SIGTERM信号 ,以便正常关闭服务器。
另请注意,当容器的主进程( MySQL服务器容器中的 mysqld )停止时,Docker容器会自动停止。
要再次启动MySQL Server容器:
docker start mysql1
使用单个命令停止并重新启动MySQL Server容器:
docker restart mysql1
要删除MySQL容器,请先将其停止,然后使用 docker rm 命令:
docker stop mysql1
docker rm mysql1
如果希望
同时删除
服务器数据目录
的
Docker卷
,请将该
-v
选项
添加
到
docker rm
命令。
在执行任何升级到MySQL之前,请仔细遵循 第2.11节“升级MySQL”中的说明 。 在那里讨论的其他说明中,在升级之前备份数据库尤为重要。
本节中的说明要求服务器的数据和配置已保留在主机上。 有关 详细信息, 请参阅 持久数据和配置更改
按照以下步骤将MySQL 5.7的Docker安装升级到8.0:
停止MySQL 5.7服务器(
mysql57
在此示例中
为容器名称
):
docker stop mysql57
下载MySQL 8.0 Server Docker镜像。 请参阅 下载MySQL服务器Docker镜像中的说明 ; 确保为MySQL 8.0使用正确的标记。
启动一个新的MySQL 8.0 Docker容器(
mysql80
在此示例中
命名
),其中包含旧的服务器数据和配置(如果需要,可以进行适当的修改 - 参见
第2.11节“升级MySQL”
),这些
容器
已经保留在主机上(通过
绑定安装
在此例)。
对于MySQL社区服务器,请运行以下命令:
docker run --name=mysql80 \
--mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
-d mysql/mysql-server:8.0
如果需要,请调整
mysql/mysql-server
到正确的存储库名称 - 例如,将其替换
mysql/enterprise-server
为从
My Oracle Support
下载的MySQL Enterprise Edition映像
。
等待服务器完成启动。 您可以使用 docker ps 命令 检查服务器的状态 (请参阅 启动MySQL服务器实例 以了解如何执行此操作)。
对于MySQL 8.0.15及更早版本: 在MySQL 8.0 Server容器中 运行 mysql_upgrade 实用程序(MySQL 8.0.16及更高版本不需要):
docker exec -it mysql80 mysql_upgrade -uroot -p
出现提示时,输入旧MySQL 5.7 Server的root密码。
通过重新启动MySQL 8.0 Server容器完成升级:
docker restart mysql80
有关使用Docker部署MySQL Server的更多主题,如服务器配置,持久化数据和配置,服务器错误日志和容器环境变量,请参见 第2.5.6.2节“使用Docker部署MySQL服务器的更多主题” 。
下面的大多数示例命令都
mysql/mysql-server
必须指定Docker镜像存储库(如
docker pull
和
docker run
命令);
如果您的映像来自另一个存储库,请更改它 - 例如,将其替换
mysql/enterprise-server
为从
My Oracle Support
下载的MySQL Enterprise Edition映像
。
MySQL的Docker镜像针对代码大小进行了优化,这意味着它们只包含预期与在Docker容器中运行MySQL实例的大多数用户相关的关键组件。 在以下方面,MySQL Docker安装与常见的非Docker安装不同:
包含的二进制文件仅限于:
/usr/bin/my_print_defaults
/usr/bin/mysql
/usr/bin/mysql_config
/usr/bin/mysql_install_db
/usr/bin/mysql_tzinfo_to_sql
/usr/bin/mysql_upgrade
/usr/bin/mysqladmin
/usr/bin/mysqlcheck
/usr/bin/mysqldump
/usr/bin/mysqlpump
/usr/bin/mysqlbackup
(仅适用于MySQL Enterprise Edition 8.0)
/usr/sbin/mysqld
所有二进制文件都被删除; 它们不包含调试信息。
启动MySQL Docker容器时,可以通过 docker run 命令 将配置选项传递给服务器 。 例如:
docker run --name mysql1 -d mysql/mysql-server:tag
--character-set-server=utf8mb4 --collation-server=utf8mb4_col
该命令启动MySQL服务器
utf8mb4
作为默认字符集和
utf8mb4_col
数据库的默认排序规则。
配置MySQL服务器的另一种方法是准备配置文件并将其安装在容器内的服务器配置文件的位置。 有关 详细信息, 请参阅 持久数据和配置更改
Docker容器原则上是短暂的,如果容器被删除或损坏,预计会丢失任何数据或配置(请参阅
此处的
讨论
)。
但是,
Docker卷
提供了一种机制来保存在Docker容器中创建的数据。
在初始化时,MySQL Server容器为服务器数据目录创建一个Docker卷。
用于
在容器上
运行
docker inspect
命令
的JSON输出
有一个
Mount
键,其值提供有关数据目录卷的信息:
外壳> docker inspect mysql1
...
“坐骑”:[
{
“类型”:“音量”,
“名称”:“4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652”,
“来源”:“/ var / lib / docker / volumes / 4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652 / _data”,
“目的地”:“/ var / lib / mysql”,
“司机”:“本地”,
“模式”:“”,
“RW”:是的,
“传播”:“”
}
]
...
输出显示
/var/lib/docker/volumes/4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652/_data
主机
文件夹
(主机上持有数据)已安装在
/var/lib/mysql
容器内的服务器数据目录中。
保留数据的另一种方法是
在创建容器时
使用该
选项
绑定安装
主机目录
--mount
。
可以使用相同的技术来持久保存服务器的配置。
以下命令创建MySQL Server容器并绑定安装数据目录和服务器配置文件:
docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf
,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir
,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
命令安装
在
path-on-host-machine/my.cnf
(容器内部的服务器配置文件),并且
/etc/my.cnf
在
path-on-host-machine/datadir
(数据容器内的目录)。
必须满足以下条件才能使绑定安装正常工作:
/var/lib/mysql
配置文件
必须已存在,并且必须包含使用用户启动服务器的规范
path-on-host-machine/my.cnf
mysql
:
的[mysqld] 用户= MySQL的
您还可以在文件中包含其他服务器配置选项。
数据目录
必须已存在。
要进行服务器初始化,目录必须为空。
您还可以安装预先填充数据的目录并使用它启动服务器;
但是,您必须确保使用与创建数据的服务器相同的配置启动Docker容器,并在启动容器时装入所需的任何主机文件或目录。
path-on-host-machine/datadir
如果
在创建数据库后立即要在数据库上运行
任何
.sh
或
.sql
脚本,则可以将它们放入主机目录,然后将目录
/docker-entrypoint-initdb.d/
安装在容器内部。
例如:
docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/scripts/
,dst=/docker-entrypoint-initdb.d/ \
-d mysql/mysql-server:tag
通过设置Docker网络,您可以允许多个Docker容器相互通信,以便另一个Docker容器中的客户端应用程序可以访问服务器容器中的MySQL Server。 首先,创建一个Docker网络:
docker network create my-custom-net
然后,在创建和启动服务器和客户端容器时,使用该
--network
选项将它们放在您创建的网络上。
例如:
docker run --name=mysql1 --network=my-custom-net
-d mysql/mysql-server
docker run --name=myapp1 --network=my-custom-net
-d myapp
然后,
myapp1
容器可以
mysql1
使用
mysql1
主机名
连接到
容器,
反之亦然,因为Docker会自动为给定的容器名称设置DNS。
在以下示例中,我们
从
容器
内部
运行
mysq
l
客户端
myapp1
以连接到
mysql1
其自己的容器中的
主机
:
docker exec -it myapp1 mysql --host=mysql1 --user=myuser --password
有关容器的其他网络技术,请参阅 Docker文档中 的 Docker容器网络 部分。
首次使用服务器容器启动MySQL服务器时, 如果满足以下任一条件,则不会生成 服务器错误日志 :
已装入主机的服务器配置文件,但该文件不包含系统变量
log_error
(请参阅
绑定装载服务器配置文件时的
保留数据和配置更改
)。
尚未安装主机的服务器配置文件,但Docker环境变量
MYSQL_LOG_CONSOLE
是
true
(这是MySQL 8.0服务器容器的变量的默认状态)。
然后将MySQL服务器的错误日志重定向到
stderr
,以便错误日志进入Docker容器的日志,并使用
docker logs
mysqld-container
命令
查看
。
要使MySQL服务器在两个条件之一为真时生成错误日志,请使用该
--log-error
选项
配置服务器
以在容器内的特定位置生成错误日志。
要保留错误日志,请将主机文件装载到容器内错误日志的位置,如“保持
数据和配置更改”中所述
。
但是,您必须确保其容器内的MySQL Server具有对装入的主机文件的写访问权。
MySQL Enterprise Backup 是MySQL服务器的商业许可备份实用程序,可与 MySQL企业版一起使用 。 MySQL Enterprise Backup包含在MySQL企业版的Docker安装中。
在下面的示例中,我们假设您已经在Docker容器中运行了MySQL服务器( 有关如何 使用Docker 启动MySQL服务器实例, 请参见 第2.5.6.1节“使用Docker部署MySQL服务器的基本步骤” )。 要使MySQL Enterprise Backup备份MySQL服务器,它必须能够访问服务器的数据目录。 例如,这可以通过 在启动 服务器 时 将主机目录绑定到MySQL服务器的数据目录来实现 :
docker run --name=mysqlserver \
--mount type=bind,src=/path-on-host-machine/datadir/
,dst=/var/lib/mysql \
-d mysql/enterprise-server:8.0
使用此命令,MySQL Server以MySQL Enterprise Edition的Docker映像启动,主机目录
/path-on-host-machine/datadir/
已安装到
/var/lib/mysql
服务器容器内的服务器
数据目录(
)上。
我们还假设,在服务器启动后,还已为MySQL Enterprise Backup设置了访问服务器所需的权限(
有关详细信息,
请参阅
将MySQL权限授予备份管理员
)。
然后使用以下步骤备份和还原MySQL Server实例。
使用带有Docker的MySQL Enterprise Backup备份在Docker容器中运行的MySQL Server实例 :
在运行MySQL Server容器的同一主机上,启动另一个带有MySQL Enterprise Edition映像的容器,以使用MySQL Enterprise Backup命令执行备份
backup-to-image
。
使用我们在上一步中创建的绑定装载提供对服务器数据目录的访问。
此外,将主机目录(
/path-on-host-machine/backups/
在此示例中)安装到存储文件夹中以备份容器(
/data/backups
在示例中)以保留我们正在创建的备份。
以下是此步骤的示例命令,其中MySQL Enterprise Backup以从
My Oracle Support
下载的Docker映像启动
:
外壳> docker run \
--mount type=bind,src=/path-on-host-machine/datadir/
,dst=/var/lib/mysql \
--mount type=bind,src=/path-on-host-machine/backups/
,dst=/data/backups \
--rm mysql/enterprise-server:8.0 \
mysqlbackup -umysqlbackup
-ppassword
--backup-dir=/tmp/backup-tmp --with-timestamp \
--backup-image=/data/backups/db.mbi backup-to-image
[Entrypoint] MySQL Docker Image 8.0.11-1.1.5
MySQL企业备份版本8.0.11 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018-04-08 07:06:45]
版权所有(c)2003,2018,Oracle和/或其附属公司。版权所有。
180921 17:27:25主要信息:使用Id'140594390935680'创建的主题
180921 17:27:25主要信息:从以下命令行开始......
...
-------------------------------------------------- -----------
参数摘要
-------------------------------------------------- -----------
启动LSN:29615616
结束LSN:29651854
-------------------------------------------------- -----------
mysqlbackup完成OK!
通过 mysqlbackup 检查输出的结尾非常重要, 以确保备份已成功完成。
备份作业完成后,容器将退出,并且
--rm
使用用于启动它
的
选项,它将在退出后被删除。
已创建映像备份,可在最后一步中安装的主机目录中找到用于存储备份的映像:
shell> ls / tmp / backups db.mbi
使用带有Docker的MySQL Enterprise Backup恢复Docker容器中的MySQL Server实例 :
停止MySQL服务器容器,这也会阻止MySQL服务器在里面运行:
docker stop mysqlserver
在主机上,删除MySQL Server数据目录的bind挂载中的所有内容:
rm -rf /path-on-host-machine/datadir
/ *
使用MySQL Enterprise Edition映像启动容器,以使用MySQL Enterprise Backup命令执行还原
copy-back-and-apply-log
。
绑定服务器的数据目录和备份的存储文件夹,就像我们备份服务器时所做的那样:
外壳> docker run \
--mount type=bind,src=/path-on-host-machine/datadir/
,dst=/var/lib/mysql \
--mount type=bind,src=/path-on-host-machine/backups/
,dst=/data/backups \
--rm mysql/enterprise-server:8.0 \
mysqlbackup --backup-dir=/tmp/backup-tmp --with-timestamp \
--datadir=/var/lib/mysql --backup-image=/data/backups/db.mbi copy-back-and-apply-log
[Entrypoint] MySQL Docker Image 8.0.11-1.1.5
MySQL企业备份版本8.0.11 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018-04-08 07:06:45]
版权所有(c)2003,2018,Oracle和/或其附属公司。版权所有。
180921 22:06:52主要信息:使用Id'139768047519872'创建的主题
180921 22:06:52主要信息:从以下命令行开始......
...
180921 22:06:52 PCR1 INFO:我们能够解析ibbackup_logfile到
lsn 29680612。
180921 22:06:52 PCR1 INFO:上一个MySQL binlog文件位置0 155,文件名binlog.000003
180921 22:06:52 PCR1 INFO:第一个数据文件是'/ var / lib / mysql / ibdata1'
并且新创建的日志文件位于'/ var / lib / mysql'
180921 22:06:52主要信息:没有要处理的密钥环文件。
180921 22:06:52主要信息:应用日志操作成功完成。
180921 22:06:52主要信息:已成功恢复完全备份。
mysqlbackup完成OK!有3个警告
备份作业完成后,容器将退出,并且
--rm
在启动时
使用该
选项,它将在退出后被删除。
重新启动服务器容器,它还会重新启动已还原的服务器:
docker restart mysqlserver
或者,在还原的数据目录上启动新的MySQL服务器:
docker run --name=mysqlserver2 \
--mount type=bind,src=/path-on-host-machine/datadir/
,dst=/var/lib/mysql \
-d mysql/enterprise-server:8.0
登录到服务器以检查服务器是否正在运行还原的数据。
创建MySQL Server容器时,可以使用
--env
选项(
-e
简而言之)
配置MySQL实例,
并指定以下一个或多个环境变量。
如果您挂载的数据目录不为空,则以下变量都不会产生任何影响,因为之后不会尝试进行服务器初始化( 有关详细信息, 请参阅 保留 数据和配置更改 )。 在容器启动期间,不会修改文件夹中任何预先存在的内容,包括任何旧服务器设置。
布尔变量包括
MYSQL_RANDOM_ROOT_PASSWORD
,,
MYSQL_ONETIME_PASSWORD
和
MYSQL_ALLOW_EMPTY_PASSWORD
,
MYSQL_LOG_CONSOLE
通过使用任何非零长度的字符串设置它们来实现。
因此,将它们设置为例如
“
0
”
,
“
假
”
或
“
否
”
不会使它们成为假,但实际上使它们成立。
这是MySQL Server容器的已知问题。
MYSQL_RANDOM_ROOT_PASSWORD
:当此变量为true(这是默认状态,除非
MYSQL_ROOT_PASSWORD
已设置或
MYSQL_ALLOW_EMPTY_PASSWORD
设置为true)时,将在启动Docker容器时生成服务器root用户的随机密码。
密码打印到
stdout
容器中,可以通过查看容器的日志找到(请参阅
启动MySQL服务器实例
)。
MYSQL_ONETIME_PASSWORD
:当变量为true(这是默认状态,除非
MYSQL_ROOT_PASSWORD
已设置或
MYSQL_ALLOW_EMPTY_PASSWORD
设置为true)时,root用户的密码设置为expired,必须先更改才能正常使用MySQL。
MYSQL_DATABASE
:此变量允许您指定要在映像启动时创建的数据库的名称。
如果用户名和密码均配备有
MYSQL_USER
和
MYSQL_PASSWORD
,创建用户并授予该数据库(对应于超级用户权限
GRANT ALL
)。
指定的数据库由
CREATE DATABASE IF NOT EXIST
语句创建,因此如果数据库已存在,则该变量无效。
MYSQL_USER
,
MYSQL_PASSWORD
:这些变量结合使用来创建用户并设置该用户的密码,并为该用户授予该
MYSQL_DATABASE
变量
指定的数据库的超级用户权限
。
这两个
MYSQL_USER
和
MYSQL_PASSWORD
所需要的用户可以创建,如果有两个变量没有设置,其他被忽略。
如果两个变量都已设置但未设置
MYSQL_DATABASE
,则创建用户时没有任何权限。
有没有必要使用这种机制创建根超级用户,这是默认与在描述所讨论的机制的任何一个设置密码创建
MYSQL_ROOT_PASSWORD
和
MYSQL_RANDOM_ROOT_PASSWORD
,除非
MYSQL_ALLOW_EMPTY_PASSWORD
是真的。
MYSQL_ROOT_HOST
:默认情况下,MySQL会创建
'root'@'localhost'
帐户。
此帐户只能从容器内部连接,如
Container
中的
连接到MySQL服务器中所述
。
要允许来自其他主机的根连接,请设置此环境变量。
例如,该值
172.17.0.1
(默认的Docker网关IP)允许来自运行容器的主机的连接。
该选项仅接受一个条目,但允许使用通配符(例如,
MYSQL_ROOT_HOST=172.*.*.*
或
MYSQL_ROOT_HOST=%
)。
MYSQL_LOG_CONSOLE
:当变量为true(这是MySQL 8.0服务器容器的默认状态)时,MySQL服务器的错误日志被重定向到
stderr
,以便错误日志进入Docker容器的日志,并且可以使用
docker logs
mysqld-container
命令
查看
。
如果已装入主机的服务器配置文件,则该变量无效(请参阅 绑定装配配置文件时的 保留数据和配置更改 )。
MYSQL_ROOT_PASSWORD
:此变量指定为MySQL root帐户设置的密码。
在命令行上设置MySQL root用户密码是不安全的。
作为显式指定密码的替代方法,您可以使用容器文件路径为密码文件设置变量,然后从主机中装入包含容器文件路径密码的文件。
这仍然不是很安全,因为密码文件的位置仍然暴露。
最好使用默认设置,
MYSQL_RANDOM_ROOT_PASSWORD
并且
MYSQL_ONETIME_PASSWORD
两者都为真。
MYSQL_ALLOW_EMPTY_PASSWORD
。
将其设置为true以允许使用root用户的空密码启动容器。
将此变量设置为true是不安全的,因为它会使您的MySQL实例完全不受保护,从而允许任何人获得完整的超级用户访问权限。
最好使用默认设置,
MYSQL_RANDOM_ROOT_PASSWORD
并且
MYSQL_ONETIME_PASSWORD
两者都为真。
许多Linux发行版在其本机软件存储库中包含MySQL服务器版本,客户端工具和开发组件,并且可以与平台的标准包管理系统一起安装。 本节提供使用这些程序包管理系统安装MySQL的基本说明。
原生包通常是当前可用版本的几个版本。 您通常也无法安装开发里程碑版本(DMR),因为这些版本通常不在本机存储库中提供。 在继续之前,我们建议您查看 第2.5节“在Linux上安装MySQL”中 描述的其他安装选项 。
分发特定说明如下所示:
Red Hat Linux,Fedora,CentOS
对于许多Linux发行版,您可以使用MySQL Yum存储库而不是平台的本机软件存储库来安装MySQL。 有关详细信息 , 请参见 第2.5.1节“使用MySQL Yum存储库在Linux上安装MySQL” 。
对于Red Hat和类似的发行版,MySQL发行版分为许多单独的包,
mysql
用于客户端工具,
mysql-server
服务器和相关工具以及
mysql-libs
库。
如果要提供来自不同语言和环境(如Perl,Python等)的连接,则需要这些库。
要安装,请使用 yum 命令指定 要安装 的软件包。 例如:
root-shell> yum install mysql mysql-server mysql-libs mysql-server 加载的插件:presto,refresh-packagekit 设置安装过程 解决依赖关系 - >运行事务检查 --->包mysql.x86_64 0:5.1.48-2.fc13设置为更新 --->包mysql-libs.x86_64 0:5.1.48-2.fc13设置为更新 --->包mysql-server.x86_64 0:5.1.48-2.fc13设置为要更新 - > Processing Dependency:perl-DBD-MySQL for package:mysql-server-5.1.48-2.fc13.x86_64 - >运行事务检查 --->包perl-DBD-MySQL.x86_64 0:4.017-1.fc13设置为更新 - >完成的依赖性解决方案 已解决的依赖关系 ================================================== ============================== 包Arch版本存储库大小 ================================================== ============================== 安装: mysql x86_64 5.1.48-2.fc13更新889 k mysql-libs x86_64 5.1.48-2.fc13更新1.2 M mysql-server x86_64 5.1.48-2.fc13更新8.1 M. 安装依赖项: perl-DBD-MySQL x86_64 4.017-1.fc13更新136 k 交易摘要 ================================================== ============================== 安装4个包裹 升级0套餐 总下载大小:10 M 安装尺寸:30米 这没关系[y / N]:y 下载包: 设置和读取Presto delta元数据 处理增量元数据 程序包数据仍有待下载:10 M (1/4):mysql-5.1.48-2.fc13.x86_64.rpm | 889 kB 00:04 (2/4):mysql-libs-5.1.48-2.fc13.x86_64.rpm | 1.2 MB 00:06 (3/4):mysql-server-5.1.48-2.fc13.x86_64.rpm | 8.1 MB 00:40 (4/4):perl-DBD-MySQL-4.017-1.fc13.x86_64.rpm | 136 kB 00:00 -------------------------------------------------- ------------------------------ 总计201 kB / s | 10 MB 00:52 运行rpm_check_debug 运行事务测试 交易测试成功 运行交易 安装:mysql-libs-5.1.48-2.fc13.x86_64 1/4 安装:mysql-5.1.48-2.fc13.x86_64 2/4 安装:perl-DBD-MySQL-4.017-1.fc13.x86_64 3/4 安装:mysql-server-5.1.48-2.fc13.x86_64 4/4 安装: mysql.x86_64 0:5.1.48-2.fc13 mysql-libs.x86_64 0:5.1.48-2.fc13 mysql-server.x86_64 0:5.1.48-2.fc13 安装依赖项: perl-DBD-MySQL.x86_64 0:4.017-1.fc13 完成!
现在应该安装MySQL和MySQL服务器。
安装了一个示例配置文件
/etc/my.cnf
。
将安装一个用于启动和停止服务器的init脚本
/etc/init.d/mysqld
。
要启动MySQL服务器使用
服务
:
root-shell> service mysqld start
要在启动期间自动启动和停止服务器,请使用 chkconfig :
root-shell> chkconfig --levels 235 mysqld on
这使MySQL服务器能够在指定的运行级别自动启动(和停止)。
如果数据库表尚不存在,则会自动为您创建数据库表。 但是,您应该运行 mysql_secure_installation 来设置服务器上的root密码。
Debian,Ubuntu,Kubuntu
对于受支持的Debian和Ubuntu版本,可以使用 MySQL APT存储库 而不是平台的本机软件存储库 来安装 MySQL 。 有关详细信息 , 请参见 第2.5.2节“使用MySQL APT存储库在Linux上安装MySQL” 。
在Debian和相关发行,有两个包为MySQL在他们的软件库,
mysql-client
和
mysql-server
,分别为客户端和服务器组件。
例如
mysql-client-5.1
,
您应指定显式版本,
以确保安装所需的MySQL版本。
要下载和安装(包括任何依赖项),请使用 apt-get 命令,指定要安装的软件包。
在安装之前,请确保更新
apt-get
索引文件以确保下载最新的可用版本。
MySQL软件包的示例安装可能如下所示(为清晰起见,修剪了一些部分):
root-shell> apt-get install mysql-client-5.1 mysql-server-5.1 阅读包裹清单......完成 构建依赖树 阅读国家信息......完成 以下软件包已自动安装,不再需要: linux-headers-2.6.28-11 linux-headers-2.6.28-11-generic 使用'apt-get autoremove'删除它们。 将安装以下额外包: bsd-mailx libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient15off libmysqlclient16 libnet-daemon-perl libplrpc-perl mailx mysql-common postfix 推荐套餐: dbishell libipc-sharedcache-perl tinyca procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin resolvconf postfix-cdb 将安装以下新软件包 bsd-mailx libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient15off libmysqlclient16 libnet-daemon-perl libplrpc-perl mailx mysql-client-5.1 mysql-common mysql-server-5.1 postfix 0升级,13新安装,0删除和182未升级。 需要获得1907kB / 25.3MB的档案。 完成此操作后,将使用59.5MB的额外磁盘空间。 你想继续[Y / n]吗?ÿ 获取:1 http://gb.archive.ubuntu.com jaunty-updates / main mysql-common 5.1.30really5.0.75-0ubuntu10.5 [63.6kB] 获取:2 http://gb.archive.ubuntu.com jaunty-updates / main libmysqlclient15off 5.1.30really5.0.75-0ubuntu10.5 [1843kB] 获得1907kB 9s(205kB / s) 预配置包... 选择以前取消选择的包mysql-common。 (读取数据库...当前安装的121260个文件和目录。) ... 处理1添加了doc-base文件... 使用scrollkeeper注册文档... 设置libnet-daemon-perl(0.43-1)...... 设置libplrpc-perl(0.2020-1)...... 设置libdbi-perl(1.607-1)...... 设置libmysqlclient15off(5.1.30really5.0.75-0ubuntu10.5)... 设置libdbd-mysql-perl(4.008-1)...... 设置libmysqlclient16(5.1.31-1ubuntu2)... 设置mysql-client-5.1(5.1.31-1ubuntu2)...... 设置mysql-server-5.1(5.1.31-1ubuntu2)...... *停止MySQL数据库服务器mysqld ...完成。 2013-09-24T13:03:09.048353Z 0 [注意] InnoDB:8.0.18开始; 日志序列号1566036 2013-09-24T13:03:10.057269Z 0 [注意] InnoDB:开始关机... 2013-09-24T13:03:10.857032Z 0 [注意] InnoDB:关机完成; 日志序列号1566036 *启动MySQL数据库服务器mysqld ...完成。 *检查是否已损坏,未完全关闭并需要升级表。 ... 处理libc6的触发器...... ldconfig延迟处理现在正在进行中
该 apt-get的 命令会安装一些软件包,包括MySQL服务器,以提供典型的工具和应用环境。 这可能意味着除了主MySQL包之外还要安装大量的包。
在安装过程中,将创建初始数据库,并将提示您输入MySQL root密码(和确认)。
将在中创建配置文件
/etc/mysql/my.cnf
。
将创建一个init脚本
/etc/init.d/mysql
。
服务器已经启动。 您可以使用以下方法手动启动和停止服务器:
root-shell> service mysql [start | stop]
该服务将自动添加到2,3和4运行级别,并在单个,关闭和重新启动级别中使用停止脚本。
Juju部署框架支持轻松安装和配置MySQL服务器。 有关说明,请参阅 https://jujucharms.com/mysql/ 。
如果在以下Linux平台上使用RPM或Debian软件包安装MySQL,则服务器启动和关闭由systemd管理:
RPM包平台:
红帽企业Linux 7; Oracle Linux 7; CentOS 7
SUSE Linux Enterprise Server 12
Fedora 28,29和30
Debian软件包平台:
Debian 8或更高版本
Ubuntu 16或更高版本
如果在使用systemd的平台上从通用二进制发行版安装MySQL,则可以按照 MySQL 8.0安全部署指南 的安装后设置部分中提供的说明手动配置MySQL的systemd支持 。
如果从使用systemd的平台上的源代码发行版安装MySQL,请通过使用
CMake
选项
配置分发来获取MySQL的systemd支持
。
请参见
第2.9.4节“MySQL源配置选项”
。
-DWITH_SYSTEMD=1
以下讨论涵盖以下主题:
在安装 了系统 支持MySQL的平台上, 不需要 安装诸如 mysqld_safe 和System V初始化脚本之类的脚本。 例如, mysqld_safe 可以处理服务器重启,但systemd提供相同的功能,并且以与其他服务的管理一致的方式提供,而不是使用特定于应用程序的程序。
因为systemd能够在安装了系统支持MySQL的平台上管理多个MySQL实例, 所以mysqld_multi 和 mysqld_multi.server 是不必要的,并且没有安装。
systemd提供自动MySQL服务器启动和关闭。 它还支持使用 systemctl 命令 进行手动服务器管理 。 例如:
systemctl {start | stop | restart | status} mysqld
或者,使用 与System V系统兼容 的 service 命令(反转参数):
service mysqld {start | stop | restart | status}
对于
systemctl
或
service
命令,如果不是MySQL服务名称
mysqld
,请使用适当的名称。
例如,使用
mysql
而不是
mysqld
基于Debian和SLES系统。
对systemd的支持包括以下文件:
mysqld.service
(RPM平台),
mysql.service
(Debian平台):systemd服务单元配置文件,包含有关MySQL服务的详细信息。
mysqld@.service
(RPM平台),
mysql@.service
(Debian平台):喜欢
mysqld.service
或者
mysql.service
,但用于管理多个MySQL实例。
mysqld.tmpfiles.d
:包含支持该
tmpfiles
功能的
信息的文件
。
此文件以名称安装
mysql.conf
。
mysqld_pre_systemd
(RPM平台),
mysql-system-start
(Debian平台):单元文件的支持脚本。
仅当日志位置与模式匹配时(
/var/log/mysql*.log
对于RPM平台,
/var/log/mysql/*.log
对于Debian平台)
,
此脚本才有助于创建错误日志文件
。
在其他情况下,错误日志目录必须是可写的,或者错误日志必须存在且可写入运行
mysqld
进程
的用户
。
要添加或更改MySQL的systemd选项,可以使用以下方法:
使用本地化的systemd配置文件。
安排systemd为MySQL服务器进程设置环境变量。
设置
MYSQLD_OPTS
systemd变量。
要使用本地化的systemd配置文件,请创建
/etc/systemd/system/mysqld.service.d
目录(如果
该
目录不存在)。
在该目录中,创建一个文件,其中包含
[Service]
列出所需设置
的
部分。
例如:
[服务] LimitNOFILE =max_open_files
PIDFile =/path/to/pid/file
Nice =nice_level
LimitCore =core_file_limit
Environment =“LD_PRELOAD =/path/to/malloc/library
” 环境=“TZ =time_zone_setting
”
此处的讨论
override.conf
用作此文件的名称。
较新版本的systemd支持以下命令,该命令打开编辑器并允许您编辑文件:
systemctl编辑mysqld#RPM平台 systemctl编辑mysql#Debian平台
无论何时创建或更改
override.conf
,重新加载systemd配置,然后告诉systemd重新启动MySQL服务:
systemctl daemon-reload systemctl重启mysqld #RPM平台 systemctl重启mysql#Debian平台
对于systemd,
override.conf
配置方法必须用于某些参数,而不是
MySQL选项文件
中的一个
[mysqld]
或
[mysqld_safe]
组中的
设置
:
对于某些参数,
override.conf
必须使用,因为systemd本身必须知道它们的值,并且它无法读取MySQL选项文件来获取它们。
指定仅使用 mysqld_safe 已知选项可设置的值的参数 必须使用systemd指定,因为没有相应的 mysqld 参数。
有关使用systemd而不是 mysqld_safe的 其他信息 ,请参阅 从mysqld_safe迁移到systemd 。
您可以在以下位置设置以下参数
override.conf
:
要指定进程ID文件,请使用
override.conf
和更改它们
PIDFile
并
ExecStart
命名PID文件路径名。
将忽略MySQL选项文件中进程标识文件的任何设置。
要进行修改
ExecStart
,必须先将其清除。
例如:
[服务] PIDFILE =在/ var /运行/ mysqld的/ mysqld-custom.pid ExecStart = ExecStart = / usr / sbin / mysqld --pid-file = / var / run / mysqld / mysqld-custom.pid $ MYSQLD_OPTS
要设置提供给MySQL服务器的文件描述符的数量,使用
LimitNOFILE
的
override.conf
而不是
open_files_limit
用于系统变量
的mysqld
或
--open-files-limit
选项
mysqld_safe的
。
要设置最大核心文件大小,请使用
LimitCore
in
override.conf
而不是
mysqld_safe
--core-file-size
选项
。
要设置MySQL服务器的调度优先级,请使用
Nice
in
override.conf
而不是
mysqld_safe
--nice
选项
。
一些MySQL参数使用环境变量配置:
有多种方法可以指定由systemd管理的MySQL服务器进程使用的环境变量值:
使用
Environment
线的
override.conf
文件。
有关语法,请参阅前面讨论中描述如何使用此文件的示例。
指定
/etc/sysconfig/mysql
文件中
的值
(如果文件不存在,则创建该文件)。
使用以下语法分配值:
LD_PRELOAD =/path/to/malloc/library
TZ =time_zone_setting
修改后
/etc/sysconfig/mysql
,重新启动服务器以使更改生效:
systemctl重启mysqld #RPM平台 systemctl重启mysql#Debian平台
要在
不直接修改systemd配置文件的情况下
指定
mysqld的
选项
,请设置或取消设置
MYSQLD_OPTS
systemd变量。
例如:
systemctl set-environment MYSQLD_OPTS =“ - general_log = 1” systemctl unset-environment MYSQLD_OPTS
MYSQLD_OPTS
也可以在
/etc/sysconfig/mysql
文件中
设置
。
修改systemd环境后,重新启动服务器以使更改生效:
systemctl重启mysqld #RPM平台 systemctl重启mysql#Debian平台
对于使用systemd的平台,如果在服务器启动时为空,则初始化数据目录。
如果数据目录是暂时消失的远程挂载,则可能会出现问题:挂载点似乎是一个空数据目录,然后将其初始化为新数据目录。
要禁止此自动初始化行为,请在
/etc/sysconfig/mysql
文件中
指定以下行
(如果文件不存在,则创建该文件):
NO_INIT =真
本节介绍如何为多个MySQL实例配置systemd。
因为systemd能够在安装了systemd支持的平台上管理多个MySQL实例, 所以mysqld_multi 和 mysqld_multi.server 是不必要的,并且没有安装。
要使用多实例功能,请修改
my.cnf
选项文件以包括每个实例的关键选项配置。
这些文件位置是典型的:
/etc/my.cnf
或
/etc/mysql/my.cnf
(RPM平台)
/etc/mysql/mysql.conf.d/mysqld.cnf
(Debian平台)
例如,要管理两个名为实例
replica01
和
replica02
,加上像这样的选项文件:
RPM平台:
的[mysqld @ replica01] DATADIR =的/ var / lib中/ MySQL的-replica01 插座=的/ var / lib中/ MySQL的-replica01 /的mysql.sock 端口= 3307 对数误差=的/ var /数/的mysqld-replica01.log 的[mysqld @ replica02] DATADIR =的/ var / lib中/ MySQL的-replica02 插座=的/ var / lib中/ MySQL的-replica02 /的mysql.sock 端口= 3308 对数误差=的/ var /数/的mysqld-replica02.log
Debian平台:
的[mysqld @ replica01] DATADIR =的/ var / lib中/ MySQL的-replica01 插座=的/ var / lib中/ MySQL的-replica01 /的mysql.sock 端口= 3307 对数误差=的/ var /日志/ MySQL的/ replica01.log 的[mysqld @ replica02] DATADIR =的/ var / lib中/ MySQL的-replica02 插座=的/ var / lib中/ MySQL的-replica02 /的mysql.sock 端口= 3308 对数误差=的/ var /日志/ MySQL的/ replica02.log
此处显示的副本名称
@
用作分隔符,因为这是systemd支持的唯一分隔符。
然后,实例由常规systemd命令管理,例如:
systemctl启动mysqld @ replica01 systemctl启动mysqld @ replica02
要使实例能够在引导时运行,请执行以下操作:
systemctl启用mysqld @ replica01 systemctl启用mysqld @ replica02
还支持使用通配符。 例如,此命令显示所有副本实例的状态:
systemctl status'mysqld @ replica *'
为了管理同一台机器上的多个MySQL实例,systemd自动使用不同的单元文件:
mysqld@.service
而不是
mysqld.service
(RPM平台)
mysql@.service
而不是
mysql.service
(Debian平台)
在单元文件,
%I
和
%i
引用之后经过在参数
@
标记,并用于管理该特定的实例。
对于这样的命令:
systemctl启动mysqld @ replica01
systemd使用如下命令启动服务器:
mysqld --defaults-group-suffix = @%我......
其结果是,
[server]
,
[mysqld]
,和
[mysqld@replica01]
选项组被读取并用于服务的该实例。
在Debian平台上,AppArmor可以防止服务器读取或写入
/var/lib/mysql-replica*
,或者
阻止
默认位置以外的任何其他内容。
要解决此问题,您必须自定义或禁用配置文件
/etc/apparmor.d/usr.sbin.mysqld
。
在Debian平台上,MySQL卸载的打包脚本当前无法处理
mysqld@
实例。
在删除或升级软件包之前,必须先手动停止任何额外的实例。
由于
mysqld_safe
未安装在使用systemd管理MySQL的平台上,因此
[mysqld_safe]
必须以另一种方式指定
先前为该程序指定的选项(例如,在
选项组中):
有些
mysqld_safe的
选项也被理解
mysqld的
,可以从移动
[mysqld_safe]
选项组到
[mysqld]
组。
这并
没有
包括
--pid-file
,
--open-files-limit
或
--nice
。
要指定这些选项,请使用
override.conf
前面描述
的
systemd文件。
对于某些
mysqld_safe
选项,还有其他
mysqld
过程。
例如,
用于启用
日志记录
的
mysqld_safe
选项
是不推荐使用的。
要将错误日志输出写入系统日志,请使用
第5.4.2.7节“错误记录到系统日志”中的说明
。
syslog
--syslog
mysqld_safe的
不被理解的选项
的mysqld
可以在指定
override.conf
或环境变量。
例如,对于
mysqld_safe
,如果服务器应使用特定的内存分配库,则使用该
--malloc-lib
选项
指定
。
对于使用systemd管理服务器的安装,请安排设置
LD_PRELOAD
环境变量,如前所述。
Linux支持许多不同的安装MySQL的解决方案,如 第2.5节“在Linux上安装MySQL”所述 。 本节介绍的方法之一是从Oracle的Unbreakable Linux Network(ULN)安装。 您可以在 http://linux.oracle.com/ 下找到有关Oracle Linux和ULN的信息 。
要使用ULN,您需要获得ULN登录并使用ULN注册用于安装的机器。 这在 ULN FAQ 中有详细描述 。 该页面还介绍了如何安装和更新软件包。 MySQL软件包 位于ULN上的系统架构 的 “ MySQL for Oracle Linux 6 ” 和 “ MySQL for Oracle Linux 7 ” 通道中。
在撰写本文时,ULN为Oracle Linux 6和Oracle Linux 7提供了MySQL 8.0。
使用ULN安装MySQL后,您可以在 本节中 找到有关启动和停止服务器的信息 ,尤其是 第2.5.4节“使用Oracle的RPM软件包在Linux上安装MySQL” 。
如果您使用ULN将现有MySQL安装更新为安装,建议的过程是使用 mysqldump 导出数据 ,删除现有安装,从ULN安装MySQL,并将导出的数据加载到新安装的MySQL中。
如果您要升级的现有MySQL安装来自之前的发行版系列(在MySQL 8.0之前),请务必阅读有关升级MySQL, 第2.11节“升级MySQL”的部分 。
MySQL 8.0支持Solaris 11.4及更高版本
Solaris上的MySQL有多种不同的格式。
有关使用本机Solaris PKG格式进行安装的信息,请参见 第2.7.1节“使用Solaris PKG在Solaris上安装MySQL” 。
要使用标准
tar
二进制安装,请使用
第2.2节“在Unix / Linux上使用通用二进制文件安装MySQL”中
提供的注释
。
有关在安装之前或之后可能需要的Solaris特定说明,请查看本节末尾的说明和提示。
安装包依赖于Oracle Developer Studio 12.6运行时库,必须在运行MySQL安装包之前安装它们。 请在 此处 查看Oracle Developer Studio的下载选项 。 安装包使您只能安装运行时库而不是完整的Oracle Developer Studio; 请参阅 在Oracle Solaris 11上仅安装运行时库中的说明 。
要以tarball或PKG格式获取Solaris的二进制MySQL发行版, 请访问https://dev.mysql.com/downloads/mysql/8.0.html 。
在Solaris上安装和使用MySQL时需要注意的其他注意事项:
如果要将MySQL与
mysql
用户和组一起使用,请使用
groupadd
和
useradd
命令:
groupadd mysql useradd -g mysql -s / bin / false mysql
如果在Solaris上使用二进制tarball发行版安装MySQL,因为Solaris tar 无法处理长文件名,请使用GNU tar ( gtar )来解压缩发行版。 如果您 的系统上 没有GNU tar ,请使用以下命令安装它:
pkg install archiver / gnu-tar
您应该
InnoDB
使用该
forcedirectio
选项
挂载要在其上存储
文件的
任何文件系统
。
(默认情况下,安装是在没有此选项的情况下完成的。)如果不这样做,将导致
InnoDB
在此平台上
使用
存储引擎
时性能显着下降
。
如果你想让MySQL自动启动,可以复制
support-files/mysql.server
到
/etc/init.d
和创建符号链接给它命名
/etc/rc3.d/S99mysql.server
。
如果有太多进程尝试非常快速地连接到 mysqld ,您应该在MySQL日志中看到此错误:
接受错误:协议错误
您可以尝试使用该
--back_log=50
选项
启动服务器
作为此解决方法。
要在Solaris上配置核心文件的生成,您应该使用
coreadm
命令。
由于在
setuid()
应用程序
上生成核心的安全性问题
,默认情况下,Solaris不支持
setuid()
程序
上的核心文件
。
但是,您可以使用
coreadm
修改此行为
。
如果
setuid()
为当前用户
启用
核心文件,则将使用模式600生成核心文件并由超级用户拥有。
您可以使用本机Solaris PKG格式的二进制包而不是二进制tarball分发在Solaris上安装MySQL。
安装包依赖于Oracle Developer Studio 12.6运行时库,必须在运行MySQL安装包之前安装该库。 请在 此处 查看Oracle Developer Studio的下载选项 。 安装包使您只能安装运行时库而不是完整的Oracle Developer Studio; 请参阅 在Oracle Solaris 11上仅安装运行时库中的说明 。
要使用此程序包,请下载相应的
mysql-VERSION-solaris11-PLATFORM.pkg.gz
文件,然后将其解压缩。
例如:
外壳> gunzip mysql-8.0.18
-solaris11-x86_64.pkg.gz
要安装新软件包,请使用 pkgadd 并按照屏幕上的提示进行操作。 您必须具有root权限才能执行此操作:
外壳> pkgadd -d mysql-8.0.18
-solaris11-x86_64.pkg
可以使用以下包:
1 mysql MySQL社区服务器(GPL)
(i86pc)8.0.18
选择您要处理的包(或“全部”处理
所有包裹)。(默认:全部)[?,??,q]:
PKG安装程序会安装所需的所有文件和工具,然后在不存在的情况下初始化数据库。 要完成安装,您应该按照安装结束时的说明设置MySQL的root密码。 或者,您可以运行 安装附带 的 mysql_secure_installation 脚本。
默认情况下,PKG包在根路径下安装MySQL
/opt/mysql
。
使用
pkgadd时
,
只能更改安装根路径,
pkgadd
可用于在其他Solaris区域中安装MySQL。
如果需要在特定目录中安装,请使用二进制
tar
文件分发。
该
pkg
安装程序将适当的启动脚本为MySQL成
/etc/init.d/mysql
。
要使MySQL能够自动启动和关闭,您应该在此文件和init脚本目录之间创建一个链接。
例如,要确保安全启动和关闭MySQL,您可以使用以下命令添加正确的链接:
shell>ln /etc/init.d/mysql /etc/rc3.d/S91mysql
shell>ln /etc/init.d/mysql /etc/rc0.d/K02mysql
要删除MySQL,安装的软件包名称是
mysql
。
您可以将此
命令
与
pkgrm
命令
结合使用
以删除安装。
要在使用Solaris软件包文件格式时进行升级,必须在安装更新的软件包之前删除现有安装。 删除包不会删除现有的数据库信息,只删除服务器,二进制文件和支持文件。 因此,典型的升级顺序是:
shell>mysqladmin shutdown
shell>pkgrm mysql
shell> shell> shell> #仅限MySQL 8.0.16pkgadd -d mysql-
8.0.18
-solaris11-x86_64.pkgmysqld_safe &
mysql_upgrade
在执行任何升级之前 , 您应该查看 第2.11节“升级MySQL”中 的注释 。
本节提供有关在FreeBSD Unix的变种上安装MySQL的信息。
您可以使用Oracle提供的二进制分发在FreeBSD上安装MySQL。 有关更多信息,请参见 第2.2节“使用通用二进制文件在Unix / Linux上安装MySQL” 。
安装MySQL的最简单(也是首选)方法是使用
http://www.freebsd.org/上
提供
的
mysql-server
和
mysql-client
ports
。
使用这些端口可带来以下好处:
一个工作的MySQL,启用了所有优化,已知可以在您的FreeBSD版本上运行。
自动配置和构建。
安装的启动脚本
/usr/local/etc/rc.d
。
能够用于
pkg_info -L
查看已安装的文件。
pkg_delete
如果您不再需要在计算机上
使用
MySQL,则可以
使用它
来删除它。
MySQL构建过程需要GNU make( gmake )才能工作。 如果GNU make 不可用,则必须在编译MySQL之前先安装它。
要使用ports系统进行安装:
#cd / usr / ports / databases / mysql80-server #make ... #cd / usr / ports / databases / mysql80-client #make ...
标准端口安装将服务器放入
/usr/local/libexec/mysqld
,放置MySQL服务器的启动脚本
/usr/local/etc/rc.d/mysql-server
。
关于BSD实施的一些补充说明:
使用ports系统安装后删除MySQL:
#cd / usr / ports / databases / mysql80-server #make deinstall ... #cd / usr / ports / databases / mysql80-client #make deinstall ...
如果您在MySQL中遇到当前日期的问题,设置
TZ
变量应该有所帮助。
请参见
第4.9节“MySQL程序环境变量”
。
从源代码构建MySQL使您可以自定义构建参数,编译器优化和安装位置。 有关运行MySQL的系统列表,请参阅 https://www.mysql.com/support/supportedplatforms/database.html 。
在从源代码继续安装之前,请检查Oracle是否为您的平台生成预编译的二进制分发版以及它是否适合您。 我们付出了大量努力来确保我们的二进制文件具有最佳性能的最佳选项。 有关安装二进制发行版的说明,请参见 第2.2节“使用通用二进制文件在Unix / Linux上安装MySQL” 。
使用非标准选项构建MySQL可能会导致功能,性能或安全性降低。
MySQL源代码包含使用Doxygen编写的内部文档。 生成的Doxygen内容可从 https://dev.mysql.com/doc/index-other.html获得 。 也可以使用 第2.9.7节“生成MySQL Doxygen文档内容”中 的说明从MySQL源代码分发本地生成此内容 。
从源代码安装MySQL有两种方法:
使用标准的MySQL源代码分发。 要获得标准分发,请参见 第2.1.2节“如何获取MySQL” 。 有关从标准分发构建的说明,请参见 第2.9.2节“使用标准源分发安装MySQL” 。
标准发行版可用作压缩
tar
文件,Zip
压缩
文件或RPM包。
分发文件有名字的形式
,
或者
,在那里
是一个数字一样
。
源分发的文件名可以与预编译的二进制分发的文件名区别开来,因为源分发名称是通用的并且不包括平台名称,而二进制分发名称包括指示分发所针对的系统类型的平台名称(例如,
或
)。
mysql-
VERSION
.tar.gzmysql-
VERSION
.zipmysql-
VERSION
.rpmVERSION
8.0.18
pc-linux-i686
winx64
使用MySQL开发树。 有关从其中一个开发树构建的信息,请参见 第2.9.3节“使用开发源树安装MySQL” 。
从源代码安装MySQL需要几个开发工具。 无论您使用标准源代码分发还是开发源代码树,都需要其中一些工具。 其他工具要求取决于您使用的安装方法。
要从源安装MySQL,无论安装方法如何,都必须满足以下系统要求:
CMake ,用作所有平台上的构建框架。 CMake 可以从 http://www.cmake.org 下载 。
一个很好的 制作 程序。 虽然有些平台有自己的 make 实现,但强烈建议您使用GNU make 3.75或更高版本。 它可能已作为 gmake 在您的系统上提供 。 GNU make 可从 http://www.gnu.org/software/make/获得 。
MySQL 8.0源代码允许使用C ++ 14特性。 要在所有支持的平台上提供良好的C ++ 14支持,以下最低编译器版本适用:
GCC 5.3(Linux)
Clang 4.0(FreeBSD)
XCode 9(MacOS)
Developer Studio 12.6(Solaris)
Visual Studio 2017(Windows)
MySQL C API需要C ++或C99编译器才能编译。
构建MySQL需要Boost C ++库(但不能使用它)。
MySQL编译需要特定的Boost版本。
通常,这是当前的Boost版本,但如果特定的MySQL源代码分发需要不同的版本,配置过程将停止,并显示一条消息,指示它需要的Boost版本。
要获取Boost及其安装说明,请访问
官方网站
。
安装Boost后,通过
WITH_BOOST
在调用
CMake
时
定义
选项
,告诉构建系统Boost文件所在的位置
。
例如:
cmake。-DWITH_BOOST =的/ usr /本地/ BOOST_version_number
根据需要调整路径以匹配您的安装。
该 ncurses的 图书馆。
足够的空闲记忆。 如果 在编译大型源文件时 遇到诸如 “ 内部编译器错误 ”之类的 问题 ,则可能是内存太少。 如果在虚拟机上进行编译,请尝试增加内存分配。
如果您打算运行测试脚本,则需要Perl。 大多数类Unix系统都包含Perl。 在Windows上,您可以使用ActiveState Perl等版本。
要从标准源代码分发安装MySQL,需要使用以下工具之一来解压缩分发文件:
对于
.tar.gz
压缩的
tar
文件:GNU
gunzip
来解压缩分发版和合理的
tar
来解压缩它。
如果您的
tar
程序支持该
z
选项,它可以解压缩和解压缩文件。
已知
GNU
tar
可以工作。
某些操作系统提供
的标准
tar
无法解析MySQL发行版中的长文件名。
您应该下载并安装GNU
tar
,或者如果可用,请使用预安装的GNU tar版本。
通常这可以作为
gnutar
,
gtar
或
GNU或自由软件目录中的
tar
使用,例如
/usr/sfw/bin
或
/usr/local/bin
。
GNU
tar
可从
http://www.gnu.org/software/tar/获得
。
对于
.zip
Zip存档:
WinZip
或其他可以读取
.zip
文件的
工具
。
对于
.rpm
RPM包:
用于构建分发
的
rpmbuild
程序将其解包。
要从开发源代码树安装MySQL,需要以下附加工具:
需要Git版本控制系统来获取开发源代码。 在 GitHub的帮助 提供了下载和在不同的平台上安装Git的指令。 MySQL于2014年9月正式加入GitHub。有关MySQL迁移到GitHub的更多信息,请参阅MySQL Release Engineering博客上的公告: GitHub 上的MySQL
bison 2.1或更高版本,可从 http://www.gnu.org/software/bison/获得 。 (不再支持版本1.) 尽可能 使用最新版本的 bison ; 如果遇到问题,请升级到更高版本,而不是恢复到更早版本。
bison
可从
http://www.gnu.org/software/bison/获得
。
bison
for Windows可以从
http://gnuwin32.sourceforge.net/packages/bison.htm
下载
。
下载标有
“
完整包,不包括来源
”的
包裹
。
在Windows上,
bison
的默认位置
是
C:\Program
Files\GnuWin32
目录。
由于目录名称中的空间,
某些实用程序可能无法找到
bison
。
此外,如果路径中有空格,Visual Studio可能会挂起。
您可以通过安装到不包含空格的目录(例如
C:\GnuWin32
)
来解决这些问题
。
在Solaris Express上, 除了 bison 之外,还必须安装 m4 。 m4 可从 http://www.gnu.org/software/m4/获得 。
如果必须安装任何程序,请修改
PATH
环境变量以包括程序所在的任何目录。
请参见
第4.2.6节“设置环境变量”
。
如果您遇到问题并需要提交错误报告,请使用 第1.7节“如何报告错误或问题”中的说明 。
默认情况下,在从源代码编译MySQL后安装MySQL时,安装步骤将安装文件
/usr/local/mysql
。
安装目录下的组件位置与二进制分发相同。
请参阅
表2.3“通用Unix / Linux二进制包的
MySQL安装布局
”
和
第2.3.1节“Microsoft Windows上的MySQL安装布局”
。
要配置与默认值不同的安装位置,请使用
第2.9.4节“MySQL源配置选项”中所述的选项
。
要从标准源代码分发安装MySQL:
验证您的系统是否满足 第2.9节“从源安装MySQL”中 列出的工具要求 。
使用 第2.1.2节“如何获取MySQL”中 的说明获取分发文件 。
使用本节中的说明配置,构建和安装分发。
使用 第2.10节“安装后设置和测试”中 的说明执行安装后过程 。
在MySQL 8.0中, CMake 用作所有平台上的构建框架。 此处给出的说明可以使您生成有效的安装。 有关使用 CMake 构建MySQL的 其他信息 ,请参阅 如何 使用 CMake 构建MySQL服务器 。
如果从源RPM启动,请使用以下命令创建可以安装的二进制RPM。 如果您没有 rpmbuild ,请改用 rpm 。
外壳> rpmbuild --rebuild --clean MySQL-VERSION
.src.rpm
结果是您安装的一个或多个二进制RPM软件包,如 第2.5.4节“使用Oracle中的RPM软件包在Linux上安装MySQL”中所述 。
从压缩的 tar 文件或Zip归档源代码分发 安装的顺序 类似于从通用二进制分发版安装的过程(参见 第2.2节“在Unix / Linux上使用通用二进制文件安装MySQL” ),除了它用于所有平台,包括配置和编译分发的步骤。 例如, 在Unix上 使用压缩的 tar 文件源分发,基本安装命令序列如下所示:
#预配置设置 shell>groupadd mysql
shell>useradd -r -g mysql -s /bin/false mysql
#开始源代码构建特定指令 shell> shell> shell> shell> shell> shell> shell>tar zxvf mysql-
VERSION
.tar.gzcd mysql-
VERSION
mkdir bld
cd bld
cmake ..
make
make install
#源代码构建特定指令的结束 #安装后设置 shell>cd /usr/local/mysql
shell>mkdir mysql-files
shell>chown mysql:mysql mysql-files
shell>chmod 750 mysql-files
shell>bin/mysqld --initialize --user=mysql
shell>bin/mysql_ssl_rsa_setup
shell>bin/mysqld_safe --user=mysql &
#Next命令是可选的 外壳>cp support-files/mysql.server /etc/init.d/mysql.server
下面显示了源代码构建特定指令的更详细版本。
此处显示的过程不会为MySQL帐户设置任何密码。 执行此过程后,请继续执行 第2.10节“安装后设置和测试” ,以进行安装后设置和测试。
在Unix上,设置
mysql
将用于运行和执行MySQL服务器并拥有数据库目录
的
用户和组。
有关详细信息,请参阅
创建mysql用户和组
。
然后以
mysql
用户
身份执行以下步骤
,除非另有说明。
选择要在其下解压缩分发的目录并将位置更改为该目录。
使用 第2.1.2节“如何获取MySQL”中 的说明获取分发文件 。
将分发包解压缩到当前目录:
要解压缩压缩的
tar
文件,
tar
可以解压缩并解压缩分发包,如果它有
z
选项支持:
外壳> tar zxvf mysql-VERSION
.tar.gz
如果您的
tar
没有
z
选项支持,请使用
gunzip
解压缩发行版和
tar
解压缩它:
外壳> gunzip < mysql-VERSION
.tar.gz | tar xvf -
或者, CMake 可以解压缩并解压缩发行版:
外壳> cmake -E tar zxvf mysql-VERSION
.tar.gz
要解压缩ZIP存档,请使用
WinZip
或其他可以读取
.zip
文件的
工具
。
解压缩分发文件会创建一个名为的目录
。
mysql-
VERSION
将位置更改为解压缩分发的顶级目录:
外壳> cd mysql-VERSION
在源树之外构建以保持树清洁。
如果在
mysql-src
当前工作目录下
命名顶级源目录,则
可以在
bld
同一级别
的目录中构建
。
创建目录并去那里:
shell>mkdir bld
shell>cd bld
配置构建目录。 最小配置命令不包括覆盖配置默认值的选项:
外壳> cmake ../mysql-src
构建目录不需要在源树之外。
例如,您可以构建在
bld
顶级源树下
命名的目录中
。
为此,从
mysql-src
当前工作目录开始,创建目录
bld
然后去那里:
shell>mkdir bld
shell>cd bld
配置构建目录。 最小配置命令不包括覆盖配置默认值的选项:
外壳> cmake ..
如果您在同一级别有多个源树(例如,构建多个版本的MySQL),则第二种策略可能是有利的。 第一个策略将所有构建目录放在同一级别,这要求您为每个目录选择唯一的名称。 使用第二个策略,您可以在每个源树中使用相同的名称作为构建目录。 以下说明假定采用第二种策略。
在Windows上,指定开发环境。 例如,以下命令分别为32位或64位版本配置MySQL:
shell>cmake .. -G "Visual Studio 12 2013"
shell>cmake .. -G "Visual Studio 12 2013 Win64"
在macOS上,要使用Xcode IDE:
外壳> cmake .. -G Xcode
运行 cmake时 ,您可能希望向命令行添加选项。 这里有些例子:
-DBUILD_CONFIG=mysql_release
:使用Oracle使用的相同构建选项配置源,以生成官方MySQL版本的二进制分发版。
-DCMAKE_INSTALL_PREFIX=
:配置特定位置下的安装分发。
dir_name
-DCPACK_MONOLITHIC_INSTALL=1
:导致
make package
生成单个安装文件而不是多个文件。
-DWITH_DEBUG=1
:使用调试支持构建分发。
有关更多选项的列表,请参见 第2.9.4节“MySQL源配置选项” 。
要列出配置选项,请使用以下命令之一:
外壳>cmake .. -L
#overview 外壳>cmake .. -LH
#overview with help text 外壳>cmake .. -LAH
#all params with help text shell>ccmake ..
#interactive display
如果 CMake 失败,您可能需要通过使用不同选项再次运行来重新配置。 如果您进行了重新配置,请注意以下事项:
如果
CMake
在之前运行之后运行,它可能会使用在上一次调用期间收集的信息。
此信息存储在
CMakeCache.txt
。
当
CMake
启动时,它会查找该文件并在其存在的情况下读取其内容,前提是信息仍然正确。
重新配置时,该假设无效。
每次运行 CMake时 ,都必须 再次 运行 make 才能重新编译。 但是,您可能希望首先从先前的构建中删除旧的目标文件,因为它们是使用不同的配置选项编译的。
要防止使用旧的目标文件或配置信息,请在重新运行 CMake 之前在Unix上的build direcotry中运行以下命令 :
shell>make clean
shell>rm CMakeCache.txt
或者,在Windows上:
shell>devenv MySQL.sln /clean
shell>del CMakeCache.txt
如果要将邮件发送到MySQL邮件列表以请求配置帮助,请首先检查
CMakeFiles
目录中
的文件以
获取有关失败的有用信息。
要提交错误报告,请使用
第1.7节“如何报告错误或问题”中的说明
。
在Unix上:
shell>make
shell>make VERBOSE=1
第二个命令设置
VERBOSE
为显示每个已编译源的命令。
在您使用GNU make的 系统上 使用 gmake ,它已作为 gmake 安装 。
在Windows上:
外壳> devenv MySQL.sln /build RelWithDebInfo
如果您已进入编译阶段,但分发版本未构建,请参见
第2.9.5节“处理编译MySQL的问题”
,以获取帮助。
如果这不能解决问题,请使用
第1.7节“如何报告错误或问题”中
给出的说明将其输入我们的错误数据库
。
如果您已安装所需工具的最新版本,并且他们在尝试处理我们的配置文件时崩溃,请同时报告。
但是,如果您遇到
command not
found
所需工具
的
错误或类似问题,请不要报告。
相反,请确保已安装所有必需的工具,并且您的
PATH
变量已正确设置,以便您的shell可以找到它们。
在Unix上:
外壳> make install
这将在已配置的安装目录下安装文件(默认情况下
/usr/local/mysql
)。
您可能需要以命令运行该命令
root
。
要在特定目录中安装,请在
DESTDIR
命令行中
添加
参数:
外壳> make install DESTDIR="/opt/mysql"
或者,生成可以在任意位置安装的安装包文件:
外壳> make package
此操作生成一个或多个
.tar.gz
可以像通用二进制分发包一样安装的文件。
请参见
第2.2节“使用通用二进制文件在Unix / Linux上安装MySQL”
。
如果您运行
的CMake
用
-DCPACK_MONOLITHIC_INSTALL=1
,操作产生的单个文件。
否则,它会生成多个文件。
在Windows上,生成数据目录,然后创建
.zip
存档安装包:
shell>devenv MySQL.sln /build RelWithDebInfo /project initial_database
shell>devenv MySQL.sln /build RelWithDebInfo /project package
您可以根据需要安装生成的
.zip
存档。
请参见
第2.3.5节“使用
noinstall
ZIP存档
在Microsoft Windows上安装MySQL
”
。
安装过程的其余部分涉及设置配置文件,创建核心数据库以及启动MySQL服务器。 有关说明,请参见 第2.10节“安装后设置和测试” 。
MySQL授权表中列出的帐户最初没有密码。 启动服务器后,应使用 第2.10节“安装后设置和测试”中 的说明为它们设置密码 。
本节介绍如何从最新的开发源代码安装MySQL,该代码托管在 GitHub上 。 要从此存储库托管服务获取MySQL Server源代码,您可以设置本地MySQL Git存储库。
在 GitHub上 ,可以在 MySQL 页面 上找到MySQL Server和其他MySQL项目 。 MySQL Server项目是一个包含多个MySQL系列分支的单一存储库。
MySQL于2014年9月正式加入GitHub。有关MySQL迁移到GitHub的更多信息,请参阅MySQL Release Engineering博客上的公告: GitHub 上的MySQL
要从开发源代码树安装MySQL,您的系统必须满足 第2.9节“从源安装MySQL”中 概述的工具要求 。
要在您的计算机上设置MySQL Git存储库,请使用以下过程:
将MySQL Git存储库克隆到您的计算机。
以下命令将MySQL Git存储库克隆到名为的目录
mysql-server
。
初始下载需要一些时间才能完成,具体取决于连接速度。
〜$ git clone https://github.com/mysql/mysql-server.git 克隆到'mysql-server'...... remote:计数对象:1198513,完成。 remote:总计1198513(delta 0),重用0(delta 0),pack-reused 1198513 接收对象:100%(1198513/1198513),1.01 GiB | 7.44 MiB / s,完成。 解决增量:100%(993200/993200),完成。 检查连接...完成。 签出文件:100%(25510/25510),完成。
克隆操作完成后,本地MySQL Git存储库的内容将类似于以下内容:
〜$ cd mysql-server 〜/ mysql-server $ ls 构建cmd-line-utils libservices sql CMakeLists.txt config.h.cmake man sql-common COPYING configure.cmake mysql-test存储 Docs dbug mysys字符串 Doxyfile-perfschema额外的mysys_ssl支持文件 安装包括包装测试客户 README libbinlogevents插件unittest VERSION libbinlogstandalone快速违规 客户端解放正则表达胜利 cmake libmysql脚本zlib
使用 git branch -r 命令查看MySQL存储库的远程跟踪分支。
〜/ mysql-server $ git branch -r 产地/ 5.5 产地/ 5.6 产地/ 5.7 产地/ 8.0 origin / HEAD - > origin / 5.7 起源/群集7.2 产地/集群7.3 起源/群集7.4 起源/群集7.5
要查看在本地存储库中签出的分支,请发出 git branch 命令。 当您克隆MySQL Git存储库时,MySQL 5.7分支自动被检出。 星号将5.7分支标识为活动分支。
〜/ mysql-server $ git branch * 5.7
要检出不同的MySQL分支,请运行 git checkout 命令,指定分支名称。 例如,要检查MySQL 8.0分支:
〜/ mysql-server $ git checkout 8.0 签出文件:100%(9600/9600),完成。 分支8.0设置为从源跟踪远程分支8.0。 切换到新的分支'8.0'
运行
git branch
以验证MySQL 8.0分支是否存在。
MySQL 8.0是你签出的最后一个分支,用星号标记,表明它是活动分支。
〜/ mysql-server $ git branch 5.7 * 8.0
使用 git checkout 命令在分支之间切换。 例如:
〜/ mysql-server $ git checkout 5.7
要获取初始设置MySQL Git存储库后所做的更改,请切换到要更新的分支并发出
git pull
命令:
〜/ mysql-server $ git checkout 8.0 〜/ mysql-server $ git pull
要检查提交历史记录,请使用以下
git
log
选项:
〜/ mysql-server $ git log
您还可以在GitHub MySQL 站点 上浏览提交历史记录和源代码 。
如果您看到有任何疑问的更改或代码,请发送电子邮件至MySQL
internals
邮件列表。
请参见
第1.6.2节“MySQL邮件列表”
。
有关提供补丁的信息,请参阅
贡献MySQL服务器
。
克隆MySQL Git存储库并检出要构建的分支后,可以从源代码构建MySQL Server。 第2.9.2节“使用标准源分发安装MySQL” 中提供了相关说明 ,但您跳过了有关获取和解压缩分发的部分。
从生产计算机上的分发源树安装构建时要小心。
安装命令可能会覆盖您的实时发布安装。
如果你已经安装了MySQL和不想覆盖它,运行
CMake的
与价值观
CMAKE_INSTALL_PREFIX
,
MYSQL_TCP_PORT
以及
MYSQL_UNIX_ADDR
那些通过生产服务器使用不同的选项。
有关防止多个服务器相互干扰的其他信息,请参见
第5.8节“在一台计算机上运行多个MySQL实例”
。
使用新安装进行努力。 例如,尝试使新功能崩溃。 首先运行 make test 。 请参见 第29.1.2节“MySQL测试套件” 。
该 CMake的 程序提供的控制权如何配置MySQL源码分发很大。 通常,您可以使用 CMake 命令行 上的选项执行此操作 。 有关 CMake 支持的选项的信息 ,请在顶级源目录中运行以下任一命令:
cmake。-LH ccmake。
您还可以 使用某些环境变量 影响 CMake 。 请参见 第4.9节“MySQL程序环境变量” 。
对于布尔选项,可以将值指定为1或
ON
启用该选项,或者
将其指定
为0或
OFF
禁用该选项。
许多选项配置可在服务器启动时覆盖的编译时默认值。
例如,
CMAKE_INSTALL_PREFIX
,
MYSQL_TCP_PORT
,和
MYSQL_UNIX_ADDR
该配置缺省安装基本目录的位置,TCP / IP端口号和Unix套接字文件选项可以在与服务器启动而改变
--basedir
,
--port
和
--socket
选项
的mysqld
。
在适用的情况下,配置选项说明指示相应的
mysqld
启动选项。
以下部分提供有关 CMake 选项的 更多信息 。
下表显示了可用的
CMake
选项。
在
Default
列中,
PREFIX
代表
CMAKE_INSTALL_PREFIX
选项
的值,该值
指定安装基目录。
此值用作多个安装子目录的父位置。
表2.13 MySQL源配置选项参考(CMake)
格式 | 描述 | 默认 | 介绍 | 删除 |
---|---|---|---|---|
BUILD_CONFIG |
使用与官方发行版相同的构建选项 | |||
BUNDLE_RUNTIME_LIBRARIES |
使用Windows的服务器MSI和Zip包捆绑运行时库 | OFF |
8.0.11 | |
CMAKE_BUILD_TYPE |
要生产的构建类型 | RelWithDebInfo |
||
CMAKE_CXX_FLAGS |
C ++编译器的标志 | |||
CMAKE_C_FLAGS |
C编译器的标志 | |||
CMAKE_INSTALL_PREFIX |
安装基目录 | /usr/local/mysql |
||
COMPILATION_COMMENT |
关于编译环境的评论 | |||
COMPILATION_COMMENT_SERVER |
关于mysqld使用的编译环境的注释 | 8.0.14 | ||
CPACK_MONOLITHIC_INSTALL |
包构建是否生成单个文件 | OFF |
||
DEFAULT_CHARSET |
默认服务器字符集 | utf8mb4 |
||
DEFAULT_COLLATION |
默认服务器排序规则 | utf8mb4_0900_ai_ci |
||
DISABLE_DATA_LOCK |
排除性能架构数据锁定检测 | OFF |
||
DISABLE_PSI_COND |
排除性能架构条件检测 | OFF |
||
DISABLE_PSI_ERROR |
排除性能架构服务器错误检测 | OFF |
||
DISABLE_PSI_FILE |
排除性能架构文件检测 | OFF |
||
DISABLE_PSI_IDLE |
排除性能架构空闲检测 | OFF |
||
DISABLE_PSI_MEMORY |
排除性能架构内存检测 | OFF |
||
DISABLE_PSI_METADATA |
排除性能架构元数据检测 | OFF |
||
DISABLE_PSI_MUTEX |
排除性能架构互斥锁检测 | OFF |
||
DISABLE_PSI_PS |
排除性能模式准备语句 | OFF |
||
DISABLE_PSI_RWLOCK |
排除性能架构rwlock检测 | OFF |
||
DISABLE_PSI_SOCKET |
排除性能架构套接字检测 | OFF |
||
DISABLE_PSI_SP |
排除性能架构存储的程序检测 | OFF |
||
DISABLE_PSI_STAGE |
排除性能架构阶段检测 | OFF |
||
DISABLE_PSI_STATEMENT |
排除性能架构语句检测 | OFF |
||
DISABLE_PSI_STATEMENT_DIGEST |
排除性能架构statements_digest检测 | OFF |
||
DISABLE_PSI_TABLE |
排除性能架构表检测 | OFF |
||
DISABLE_PSI_THREAD |
排除性能架构线程检测 | OFF |
||
DISABLE_PSI_TRANSACTION |
排除性能架构事务检测 | OFF |
||
DISABLE_SHARED |
不要构建共享库,编译与位置相关的代码 | OFF |
||
DOWNLOAD_BOOST |
是否下载Boost库 | OFF |
||
DOWNLOAD_BOOST_TIMEOUT |
下载Boost库的超时时间(秒) | 600 |
||
ENABLED_LOCAL_INFILE |
是否为LOAD DATA启用LOCAL | OFF |
||
ENABLED_PROFILING |
是否启用查询分析代码 | ON |
||
ENABLE_DEBUG_SYNC |
是否启用Debug Sync支持 | ON |
8.0.1 | |
ENABLE_DOWNLOADS |
是否下载可选文件 | OFF |
||
ENABLE_DTRACE |
是否包含DTrace支持 | 8.0.1 | ||
ENABLE_EXPERIMENTAL_SYSVARS |
是否启用实验性InnoDB系统变量 | OFF |
8.0.11 | |
ENABLE_GCOV |
是否包括gcov支持 | |||
ENABLE_GPROF |
启用gprof(仅限优化的Linux版本) | OFF |
||
FORCE_INSOURCE_BUILD |
是否强制进行源内构建 | OFF |
8.0.14 | |
FORCE_UNSUPPORTED_COMPILER |
是否允许不支持的编译器 | OFF |
||
IGNORE_AIO_CHECK |
使用-DBUILD_CONFIG = mysql_release,忽略libaio检查 | OFF |
||
INSTALL_BINDIR |
用户可执行文件目录 | PREFIX/bin |
||
INSTALL_DOCDIR |
文档目录 | PREFIX/docs |
||
INSTALL_DOCREADMEDIR |
README文件目录 | PREFIX |
||
INSTALL_INCLUDEDIR |
头文件目录 | PREFIX/include |
||
INSTALL_INFODIR |
信息文件目录 | PREFIX/docs |
||
INSTALL_LAYOUT |
选择预定义安装布局 | STANDALONE |
||
INSTALL_LIBDIR |
库文件目录 | PREFIX/lib |
||
INSTALL_MANDIR |
手册页目录 | PREFIX/man |
||
INSTALL_MYSQLKEYRINGDIR |
keyring_file插件数据文件的目录 | platform specific |
||
INSTALL_MYSQLSHAREDIR |
共享数据目录 | PREFIX/share |
||
INSTALL_MYSQLTESTDIR |
mysql-test目录 | PREFIX/mysql-test |
||
INSTALL_PKGCONFIGDIR |
mysqlclient.pc pkg-config文件的目录 | INSTALL_LIBDIR/pkgconfig |
||
INSTALL_PLUGINDIR |
插件目录 | PREFIX/lib/plugin |
||
INSTALL_SBINDIR |
服务器可执行文件 | PREFIX/bin |
||
INSTALL_SECURE_FILE_PRIVDIR |
secure_file_priv默认值 | platform specific |
||
INSTALL_SHAREDIR |
aclocal / mysql.m4安装目录 | PREFIX/share |
||
INSTALL_STATIC_LIBRARIES |
是否安装静态库 | ON |
||
INSTALL_SUPPORTFILESDIR |
额外的支持文件目录 | PREFIX/support-files |
||
LINK_RANDOMIZE |
是否在mysqld二进制中随机化符号的顺序 | OFF |
8.0.1 | |
LINK_RANDOMIZE_SEED |
LINK_RANDOMIZE选项的种子值 | mysql |
8.0.1 | |
MAX_INDEXES |
每个表的最大索引 | 64 |
||
MUTEX_TYPE |
InnoDB互斥类型 | event |
||
MYSQLX_TCP_PORT |
X插件使用的TCP / IP端口号 | 33060 |
||
MYSQLX_UNIX_ADDR |
X Plugin使用的Unix套接字文件 | /tmp/mysqlx.sock |
||
MYSQL_DATADIR |
数据目录 | |||
MYSQL_MAINTAINER_MODE |
是否启用MySQL维护者特定的开发环境 | OFF |
||
MYSQL_PROJECT_NAME |
Windows / OS X项目名称 | MySQL |
||
MYSQL_TCP_PORT |
TCP / IP端口号 | 3306 |
||
MYSQL_UNIX_ADDR |
Unix套接字文件 | /tmp/mysql.sock |
||
ODBC_INCLUDES |
ODBC包含目录 | |||
ODBC_LIB_DIR |
ODBC库目录 | |||
OPTIMIZER_TRACE |
是否支持优化器跟踪 | |||
REPRODUCIBLE_BUILD |
请特别注意创建独立于构建位置和时间的构建结果 | 8.0.11 | ||
SYSCONFDIR |
选项文件目录 | |||
SYSTEMD_PID_DIR |
systemd下PID文件的目录 | /var/run/mysqld |
||
SYSTEMD_SERVICE_NAME |
systemd下MySQL服务的名称 | mysqld |
||
TMPDIR |
tmpdir默认值 | |||
USE_LD_GOLD |
是否使用GNU金链接器 | ON |
8.0.0 | |
USE_LD_LLD |
是否使用llvm lld链接器 | ON |
8.0.16 | |
WIN_DEBUG_NO_INLINE |
是否禁用函数内联 | OFF |
||
WITHOUT_xxx_STORAGE_ENGINE |
从构建中排除存储引擎xxx | |||
WITH_ANT |
Ant的路径,用于构建GCS Java包装器 | 8.0.11 | ||
WITH_ASAN |
启用AddressSanitizer | OFF |
||
WITH_ASAN_SCOPE |
启用AddressSanitizer -fsanitize-address-use-after-scope Clang标志 | OFF |
8.0.4 | |
WITH_AUTHENTICATION_LDAP |
如果无法构建LDAP身份验证插件,是否报告错误 | OFF |
8.0.2 | |
WITH_AUTHENTICATION_PAM |
构建PAM身份验证插件 | OFF |
||
WITH_AWS_SDK |
Amazon Web Services软件开发工具包的位置 | 8.0.2 | ||
WITH_BOOST |
Boost库源的位置 | |||
WITH_CLIENT_PROTOCOL_TRACING |
构建客户端协议跟踪框架 | ON |
||
WITH_CURL |
卷曲图书馆的位置 | 8.0.2 | ||
WITH_DEBUG |
是否包含调试支持 | OFF |
||
WITH_DEFAULT_COMPILER_OPTIONS |
是否使用默认编译器选项 | ON |
||
WITH_DEFAULT_FEATURE_SET |
是否使用默认功能集 | ON |
||
WITH_EDITLINE |
使用哪个libedit / editline库 | bundled |
||
WITH_GMOCK |
googlemock发布的途径 | |||
WITH_ICU |
ICU支持的类型 | bundled |
8.0.4 | |
WITH_INNODB_EXTRA_DEBUG |
是否包含对InnoDB的额外调试支持。 | OFF |
||
WITH_INNODB_MEMCACHED |
是否生成memcached共享库。 | OFF |
||
WITH_JEMALLOC |
是否与-ljemalloc链接 | OFF |
8.0.16 | |
WITH_KEYRING_TEST |
构建密钥环测试程序 | OFF |
||
WITH_LIBEVENT |
哪个libevent库使用 | bundled |
||
WITH_LIBWRAP |
是否包含libwrap(TCP包装器)支持 | OFF |
||
WITH_LOCK_ORDER |
是否启用LOCK_ORDER工具 | OFF |
8.0.17 | |
WITH_LSAN |
是否运行LeakSanitizer,没有AddressSanitizer | OFF |
8.0.16 | |
WITH_LTO |
启用链接时优化程序 | OFF |
8.0.13 | |
WITH_LZ4 |
LZ4库支持的类型 | bundled |
||
WITH_LZMA |
LZMA库支持的类型 | bundled |
8.0.4 | 8.0.16 |
WITH_MECAB |
编译MeCab | |||
WITH_MSAN |
启用MemorySanitizer | OFF |
||
WITH_MSCRT_DEBUG |
启用Visual Studio CRT内存泄漏跟踪 | OFF |
||
WITH_MYSQLX |
是否禁用X协议 | ON |
8.0.11 | |
WITH_NUMA |
设置NUMA内存分配策略 | |||
WITH_PROTOBUF |
使用哪种协议缓冲区包 | bundled |
||
WITH_RAPID |
是否构建快速开发周期插件 | ON |
||
WITH_RAPIDJSON |
RapidJSON支持的类型 | bundled |
8.0.13 | |
WITH_RE2 |
RE2库支持的类型 | bundled |
8.0.4 | |
WITH_ROUTER |
是否构建MySQL路由器 | ON |
8.0.16 | |
WITH_SSL |
SSL支持的类型 | system |
||
WITH_SYSTEMD |
启用systemd支持文件的安装 | OFF |
||
WITH_SYSTEM_LIBS |
设置未明确设置的库选项的系统值 | OFF |
8.0.11 | |
WITH_TEST_TRACE_PLUGIN |
构建测试协议跟踪插件 | OFF |
||
WITH_TSAN |
启用ThreadSanitizer | OFF |
||
WITH_UBSAN |
启用未定义的行为清理程序 | OFF |
||
WITH_UNIT_TESTS |
使用单元测试编译MySQL | ON |
||
WITH_UNIXODBC |
启用unixODBC支持 | OFF |
||
WITH_VALGRIND |
是否在Valgrind头文件中编译 | OFF |
||
WITH_ZLIB |
zlib支持的类型 | bundled |
||
WITH_xxx_STORAGE_ENGINE |
将存储引擎xxx静态编译到服务器中 |
此选项使用Oracle使用的相同构建选项配置源分发,以生成官方MySQL版本的二进制分发版。
-DBUNDLE_RUNTIME_LIBRARIES=
bool
是否将运行时库与Windows的服务器MSI和Zip包捆绑在一起。
要生成的构建类型:
RelWithDebInfo
:启用优化并生成调试信息。
这是默认的MySQL构建类型。
Release
:启用优化但省略调试信息以减少构建大小。
在MySQL 8.0.13中添加了此构建类型。
Debug
:禁用优化并生成调试信息。
如果
WITH_DEBUG
启用
该
选项,
也会使用此构建类型
。
也就是说,
-DWITH_DEBUG=1
具有相同的效果
-DCMAKE_BUILD_TYPE=Debug
。
-DCPACK_MONOLITHIC_INSTALL=
bool
此选项会影响 make包 操作是生成多个安装包文件还是单个文件。 如果禁用,该操作将生成多个安装包文件,如果您只想安装完整MySQL安装的子集,这可能很有用。 如果启用,它会生成一个用于安装所有内容的文件。
定义是否强制进行源内构建。
建议使用源外构建,因为它们允许来自同一源的多个构建,并且可以通过删除构建目录来快速执行清理。
要强制在代码构建,调用
CMake的
使用
-DFORCE_INSOURCE_BUILD=ON
。
该
CMAKE_INSTALL_PREFIX
选项表示基本安装目录。
具有
指示组件位置
的表单名称的其他选项
相对于前缀进行解释,其值是相对路径名。
它们的值不应包含前缀。
INSTALL_
xxx
-DCMAKE_INSTALL_PREFIX=
dir_name
安装基目录。
可以使用该
--basedir
选项
在服务器启动时设置此值
。
在哪里安装用户程序。
在哪里安装文档。
-DINSTALL_DOCREADMEDIR=
dir_name
在哪里安装
README
文件。
在哪里安装头文件。
在哪里安装Info文件。
选择预定义的安装布局:
STANDALONE
:与用于
.tar.gz
和
.zip
包的
布局相同
。
这是默认值。
RPM
:布局类似于RPM包。
SVR4
:Solaris包布局。
DEB
:DEB包布局(实验)。
您可以选择预定义布局,但可以通过指定其他选项来修改单个组件安装位置。 例如:
cmake。-DINSTALL_LAYOUT = SVR4 -DMYSQL_DATADIR = / var / mysql / data
的
INSTALL_LAYOUT
值确定的默认值
secure_file_priv
,
keyring_encrypted_file_data
和
keyring_file_data
系统变量。
请参见
第5.1.8节“服务器系统变量”
和
第6.4.4.11节“密钥环系统变量”中
对这些变量的描述
。
在哪里安装库文件。
在哪里安装手册页。
-DINSTALL_MYSQLKEYRINGDIR=
dir_path
用作
keyring_file
插件数据文件
位置的默认目录
。
默认值是特定于平台的,取决于
CMake
选项
的值
;
请参见
第5.1.8节“服务器系统变量”
中的
系统变量
描述
。
INSTALL_LAYOUT
keyring_file_data
-DINSTALL_MYSQLSHAREDIR=
dir_name
在哪里安装共享数据文件。
-DINSTALL_MYSQLTESTDIR=
dir_name
在哪里安装
mysql-test
目录。
要禁止安装此目录,请将该选项显式设置为空值(
-DINSTALL_MYSQLTESTDIR=
)。
-DINSTALL_PKGCONFIGDIR=
dir_name
安装
mysqlclient.pc
文件以供
pkg-config
使用
的目录
。
默认值为
INSTALL_LIBDIR/pkgconfig
,除非
INSTALL_LIBDIR
结束
/mysql
,在这种情况下首先删除。
插件目录的位置。
可以使用该
--plugin_dir
选项
在服务器启动时设置此值
。
在哪里安装 mysqld 服务器。
-DINSTALL_SECURE_FILE_PRIVDIR=
dir_name
secure_file_priv
系统变量
的默认值
。
默认值是特定于平台的,取决于
CMake
选项
的值
;
请参见
第5.1.8节“服务器系统变量”
中的
系统变量
描述
。
INSTALL_LAYOUT
secure_file_priv
在哪里安装
aclocal/mysql.m4
。
-DINSTALL_STATIC_LIBRARIES=
bool
是否安装静态库。
默认是
ON
。
如果设置为
OFF
,则不安装这些库:
libmysqlclient.a
,
libmysqlservices.a
。
-DINSTALL_SUPPORTFILESDIR=
dir_name
在哪里安装额外的支持文件。
是否随机化
mysqld
二进制中
的符号顺序
。
默认是
OFF
。
应仅为调试目的启用此选项。
LINK_RANDOMIZE
选项的
种子值
。
该值是一个字符串。
默认是
mysql
,任意选择。
MySQL数据目录的位置。
可以使用该
--datadir
选项
在服务器启动时设置此值
。
ODBC的位置包括目录,可以在配置Connector / ODBC时使用。
ODBC库目录的位置,可在配置Connector / ODBC时使用。
默认
my.cnf
选项文件目录。
此位置无法在服务器启动时设置,但您可以使用
选项
启动具有给定选项文件的服务器
,其中
是文件的完整路径名。
--defaults-file=
file_name
file_name
当MySQL由systemd管理时,在其中创建PID文件的目录的名称。
默认是
/var/run/mysqld
;
这可能会根据
INSTALL_LAYOUT
值
隐式更改
。
除非
WITH_SYSTEMD
启用,
否则
将
忽略此选项
。
MySQL由systemd管理时使用的MySQL服务的名称。
默认是
mysqld
;
这可能会根据
INSTALL_LAYOUT
值
隐式更改
。
除非
WITH_SYSTEMD
启用,
否则
将
忽略此选项
。
用于
tmpdir
系统变量
的默认位置
。
如果未指定,则值默认为
P_tmpdir
in
<stdio.h>
。
存储引擎构建为插件。
您可以将插件构建为静态模块(编译到服务器中)或动态模块(构建为动态库,必须在使用
之前
使用
INSTALL
PLUGIN
语句或
--plugin-load
选项
安装到服务器中
)。
某些插件可能不支持静态或动态构建。
的
InnoDB
,
MyISAM
,
MERGE
,
MEMORY
,和
CSV
发动机是强制性的(总是编译到服务器)和无需显式安装。
要将存储引擎静态编译到服务器中,请使用
。
一些可允许的
值
,
,
,
,和
或
(
支持)。
例子:
-DWITH_
engine
_STORAGE_ENGINE=1engine
ARCHIVE
BLACKHOLE
EXAMPLE
FEDERATED
NDB
NDBCLUSTER
NDB
-DWITH_ARCHIVE_STORAGE_ENGINE = 1 -DWITH_BLACKHOLE_STORAGE_ENGINE = 1
如果没有Performance Schema支持,则无法进行编译。 如果希望在没有特定类型的检测的情况下进行编译,可以使用以下 CMake 选项完成:
DISABLE_PSI_COND DISABLE_PSI_DATA_LOCK DISABLE_PSI_ERROR DISABLE_PSI_FILE DISABLE_PSI_IDLE DISABLE_PSI_MEMORY DISABLE_PSI_METADATA DISABLE_PSI_MUTEX DISABLE_PSI_PS DISABLE_PSI_RWLOCK DISABLE_PSI_SOCKET DISABLE_PSI_SP DISABLE_PSI_STAGE DISABLE_PSI_STATEMENT DISABLE_PSI_STATEMENT_DIGEST DISABLE_PSI_TABLE DISABLE_PSI_THREAD DISABLE_PSI_TRANSACTION
例如,要在没有互斥锁检测的情况下进行编译,请使用该
-DDISABLE_PSI_MUTEX=1
选项
配置MySQL
。
要从构建中排除存储引擎,请使用
。
例子:
-DWITH_
engine
_STORAGE_ENGINE=0
-DWITH_ARCHIVE_STORAGE_ENGINE = 0 -DWITH_EXAMPLE_STORAGE_ENGINE = 0 -DWITH_FEDERATED_STORAGE_ENGINE = 0
也可以使用
(但
优选)
从构建中排除存储引擎
。
例子:
-DWITHOUT_
engine
_STORAGE_ENGINE=1-DWITH_
engine
_STORAGE_ENGINE=0
-DWITHOUT_ARCHIVE_STORAGE_ENGINE = 1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE = 1 -DWITHOUT_FEDERATED_STORAGE_ENGINE = 1
如果既
没有
为给定的存储引擎指定
也
没有
指定,则引擎构建为共享模块,如果无法构建为共享模块,则将其排除。
-DWITH_
engine
_STORAGE_ENGINE-DWITHOUT_
engine
_STORAGE_ENGINE
关于编译环境的描述性评论。
从MySQL 8.0.14开始,
mysqld
使用
COMPILATION_COMMENT_SERVER
。
其他程序继续使用
COMPILATION_COMMENT
。
-DCOMPILATION_COMMENT_SERVER=
string
关于
mysqld
使用的编译环境的描述性注释
(例如,设置
version_comment
系统变量)。
MySQL 8.0.14中添加了此选项。
在8.0.14之前,服务器使用
COMPILATION_COMMENT
。
-DDEFAULT_CHARSET=
charset_name
服务器字符集。
默认情况下,MySQL使用
utf8mb4
字符集。
charset_name
可以是一种
binary
,
armscii8
,
ascii
,
big5
,
cp1250
,
cp1251
,
cp1256
,
cp1257
,
cp850
,
cp852
,
cp866
,
cp932
,
dec8
,
eucjpms
,
euckr
,
gb2312
,
gbk
,
geostd8
,
greek
,
hebrew
,
hp8
,
keybcs2
,
koi8r
,
koi8u
,
latin1
,
latin2
,
latin5
,
latin7
,
macce
,
macroman
,
sjis
,
swe7
,
tis620
,
ucs2
,
ujis
,
utf8
,
utf8mb4
,
utf16
,
utf16le
,
utf32
。
允许的字符集在
cmake/character_sets.cmake
文件中列为值
CHARSETS_AVAILABLE
。
可以使用该
--character_set_server
选项
在服务器启动时设置此值
。
-DDEFAULT_COLLATION=
collation_name
服务器整理。
默认情况下,MySQL使用
utf8mb4_0900_ai_ci
。
使用该
SHOW
COLLATION
语句确定每个字符集可用的排序规则。
可以使用该
--collation_server
选项
在服务器启动时设置此值
。
是否排除Performance Schema条件检测。
默认值为
OFF
(include)。
是否排除Performance Schema文件检测。
默认值为
OFF
(include)。
是否排除Performance Schema空闲检测。
默认值为
OFF
(include)。
是否排除Performance Schema内存检测。
默认值为
OFF
(include)。
是否排除Performance Schema元数据检测。
默认值为
OFF
(include)。
是否排除Performance Schema互斥锁检测。
默认值为
OFF
(include)。
是否排除性能模式rwlock检测。
默认值为
OFF
(include)。
是否排除Performance Schema套接字检测。
默认值为
OFF
(include)。
是否排除Performance Schema存储的程序检测。
默认值为
OFF
(include)。
是否排除Performance Schema阶段检测。
默认值为
OFF
(include)。
是否排除Performance Schema语句检测。
默认值为
OFF
(include)。
-DDISABLE_PSI_STATEMENT_DIGEST=
bool
是否排除Performance Schema statement_digest检测。
默认值为
OFF
(include)。
是否排除Performance Schema表检测。
默认值为
OFF
(include)。
是否禁用构建构建共享库并编译与位置相关的代码。
默认值是
OFF
(编译位置无关代码)。
启用此选项会禁用
-fPIC
,结果是不构建共享库,包括插件和组件。
调用
CMake
产生此警告:
Dynamic plugins are disabled.
排除性能模式准备好的语句实例检测。
默认值为
OFF
(include)。
排除性能架构线程检测。
默认值为
OFF
(include)。
仅在构建时禁用线程而不使用任何检测,因为其他工具依赖于线程。
-DDISABLE_PSI_TRANSACTION=
bool
排除性能架构事务检测。
默认值为
OFF
(include)。
排除性能架构数据锁定检测。
默认值为
OFF
(include)。
排除性能架构服务器错误检测。
默认值为
OFF
(include)。
是否下载Boost库。
默认是
OFF
。
WITH_BOOST
有关使用Boost的其他讨论,
请参阅该
选项。
-DDOWNLOAD_BOOST_TIMEOUT=
seconds
下载Boost库的超时(以秒为单位)。 默认值为600秒。
WITH_BOOST
有关使用Boost的其他讨论,
请参阅该
选项。
从MySQL 8.0.1开始,
ENABLE_DEBUG_SYNC
删除并启用
WITH_DEBUG
Debug Sync。
是否下载可选文件。 例如,启用此选项后, CMake会 下载测试套件用于运行单元测试的Google Test分发版,或者构建GCS Java包装器所需的Ant和JUnit。
是否包括对DTrace探针的支持。
在MySQL 8.0.1中删除了此选项。
-DENABLE_EXPERIMENTAL_SYSVARS=
bool
是否启用实验
InnoDB
系统变量。
实验系统变量适用于从事MySQL开发的人员,仅应在开发或测试环境中使用,并且可能在未来的MySQL版本中被删除,恕不另行通知。
有关实验系统变量的信息,请参阅
/storage/innobase/handler/ha_innodb.cc
MySQL源代码树。
可以通过搜索
“
PLUGIN_VAR_EXPERIMENTAL
”
来识别实验系统变量
。
是否包含gcov支持(仅限Linux)。
是否启用
gprof
(仅限优化的Linux版本)。
此选项控制
LOCAL
MySQL客户端库
的已编译默认
功能。
因此,没有明确安排的客户端会
LOCAL
根据
ENABLED_LOCAL_INFILE
MySQL构建时指定
的
设置
禁用或启用功能
。
默认情况下,MySQL二进制发行版中的客户端库是使用
ENABLED_LOCAL_INFILE
disabled
编译的
。
如果从源代码编译MySQL,则
ENABLED_LOCAL_INFILE
根据未进行显式排列的客户端是否应
LOCAL
分别禁用或启用功能,将其配置为禁用或启用。
ENABLED_LOCAL_INFILE
控制客户端
LOCAL
功能
的默认值
。
对于服务器,
local_infile
系统变量控制服务器端
LOCAL
功能。
要显式地使服务器拒绝或允许
LOAD
DATA LOCAL
语句(无论在构建时或运行时如何配置客户端程序和库)
,分别启用
具有
禁用或启用的
mysqld
local_infile
。
local_infile
也可以在运行时设置。
请参见
第6.1.6节“LOAD DATA LOCAL的安全问题”
。
是否启用查询分析代码(用于
SHOW
PROFILE
和
SHOW
PROFILES
语句)。
-DFORCE_UNSUPPORTED_COMPILER=
bool
默认情况下,
CMake会
检查受支持的编译器的最低版本:Visual Studio 2015(Windows);
GCC 4.8或Clang 3.4(Linux);
Developer Studio 12.5(Solaris服务器);
Developer Studio 12.4或GCC 4.8(Solaris客户端库);
Clang 3.6(macOS),Clang 3.4(FreeBSD)。
要禁用此检查,请使用
-DFORCE_UNSUPPORTED_COMPILER=ON
。
如果
-DBUILD_CONFIG=mysql_release
在Linux上提供
该
选项,则
libaio
默认情况下必须链接库。
如果您没有
libaio
或不想安装它,可以通过指定来禁止检查它
-DIGNORE_AIO_CHECK=1
。
每个表的最大索引数。 默认值为64.最大值为255.忽略小于64的值,并使用默认值64。
是否启用MySQL维护者特定的开发环境。 如果启用,此选项会导致编译器警告变为错误。
使用的互斥锁类型
InnoDB
。
选项包括:
event
:使用事件互斥。
这是默认值和原始
InnoDB
互斥锁实现。
sys
:在UNIX系统上使用POSIX互斥锁。
CRITICAL_SECTION
如果可用,
请
在Windows上
使用
onjects。
futex
:使用Linux futexes而不是条件变量来安排等待的线程。
X Plugin侦听TCP / IP连接的端口号。 默认值为33060。
可以在服务器启动时使用
mysqlx_port
系统变量
设置此值
。
服务器侦听X插件套接字连接的Unix套接字文件路径。
这必须是绝对路径名。
默认是
/tmp/mysqlx.sock
。
可以在服务器启动时使用
mysqlx_port
系统变量
设置此值
。
对于Windows或macOS,项目名称将合并到项目文件名中。
服务器侦听TCP / IP连接的端口号。 默认值为3306。
可以使用该
--port
选项
在服务器启动时设置此值
。
服务器侦听套接字连接的Unix套接字文件路径。
这必须是绝对路径名。
默认是
/tmp/mysql.sock
。
可以使用该
--socket
选项
在服务器启动时设置此值
。
是否支持优化器跟踪。 请参阅 MySQL内部:跟踪优化程序 。
对于Linux系统上的构建,此选项控制是否要特别注意创建独立于构建位置和时间的构建结果。
MySQL 8.0.11中添加了此选项。
从MySQL 8.0.12开始,它默认
ON
为
RelWithDebInfo
构建版本。
如果可用且未明确禁用,则
CMake
会使构建过程与GNU
gold
链接器链接。
要禁用此链接器的使用,请指定该
-DUSE_LD_GOLD=OFF
选项。
如果可用且未明确禁用,则
CMake
会使构建过程与
Clang
的
llvm
lld
链接器链接。
要禁用此链接器的使用,请指定该
-DUSE_LD_LLD=OFF
选项。
MySQL 8.0.16中添加了此选项。
是否在Windows上禁用函数内联。 默认为关闭(启用内联)。
设置构建GCS Java包装器时所需的Ant路径。
以与现有
WITH_BOOST
CMake选项
类似的方式工作
。
设置
WITH_ANT
为保存Ant tarball或已解压缩的归档的目录的路径。
如果
WITH_ANT
未设置,或者使用特殊值设置
system
,则构建假定
存在
二进制
ant
$PATH
。
是否为支持它的编译器启用AddressSanitizer。 默认为关闭。
是否为
-fsanitize-address-use-after-scope
范围外检测
启用AddressSanitizer
Clang标志。
默认为关闭。
要使用此选项,
-DWITH_ASAN
还必须启用。
-DWITH_AUTHENTICATION_LDAP=
bool
如果无法构建LDAP身份验证插件,是否报告错误:
如果禁用此选项(默认设置),则会在找到所需的头文件和库时构建LDAP插件。 如果不是, CMake 会显示相关说明。
如果启用此选项,则无法找到所需的头文件和库会导致 CMake 产生错误,从而阻止构建服务器。
-DWITH_AUTHENTICATION_PAM=
bool
是否为包含此插件的源树构建PAM身份验证插件。 (请参见 第6.4.1.5节“PAM可插入身份验证” 。)如果指定了此选项且无法编译插件,则构建将失败。
Amazon Web Services软件开发工具包的位置。
构建MySQL需要Boost库。 这些 CMake 选项可以控制库源位置,以及是否自动下载它:
-DWITH_BOOST=
指定Boost库目录位置。
也可以通过设置
path_name
BOOST_ROOT
或
WITH_BOOST
环境变量
来指定Boost位置
。
-DWITH_BOOST=system
也是允许的,表示在标准位置的编译主机上安装了正确版本的Boost。
在这种情况下,使用已安装的Boost版本,而不是MySQL源代码分发中包含的任何版本。
-DDOWNLOAD_BOOST=
指定是否下载Boost源(如果它不在指定位置)。
默认是
bool
OFF
。
-DDOWNLOAD_BOOST_TIMEOUT=
下载Boost库的超时时间(秒)。
默认值为600秒。
seconds
例如,如果你通常构建MySQL将对象输出放在
bld
MySQL源代码树
的
子目录中,你可以像这样使用Boost构建:
mkdir bld cd bld cmake .. -DDOWNLOAD_BOOST = ON -DWITH_BOOST = $ HOME / my_boost
这会导致Boost下载到
my_boost
您的主目录下的目录中。
如果已经存在所需的Boost版本,则不进行下载。
如果所需的Boost版本发生更改,则会下载较新版本。
如果已在本地安装Boost并且您的编译器自己找到Boost头文件,则可能没有必要指定前面的 CMake 选项。 但是,如果MySQL所需的Boost版本发生更改且本地安装的版本尚未升级,则可能会出现构建问题。 使用 CMake 选项可以为您提供成功的构建。
使用允许Boost下载到指定位置的上述设置,当所需的Boost版本发生更改时,您需要删除该
bld
文件夹,重新创建它,然后
再次
执行
cmake
步骤。
否则,可能无法下载新的Boost版本,并且编译可能会失败。
-DWITH_CLIENT_PROTOCOL_TRACING=
bool
是否将客户端协议跟踪框架构建到客户端库中。 默认情况下,启用此选项。
有关编写协议跟踪客户端插件的信息,请参见 第29.2.4.11节“编写协议跟踪插件” 。
另请参见
WITH_TEST_TRACE_PLUGIN
选项。
卷曲
库
的位置
。
curl_type
可以是
system
(使用系统
卷曲
库)或路径名
卷曲
库。
是否包含调试支持。
通过调试支持配置MySQL,可以
--debug="d,parser_debug"
在启动服务器时
使用该
选项。
这会导致用于处理SQL语句的Bison解析器将解析器跟踪转储到服务器的标准错误输出。
通常,此输出将写入错误日志。
InnoDB
存储引擎的
同步调试检查
定义
UNIV_DEBUG
在使用该
WITH_DEBUG
选项
编译调试支持时可用
。
编译调试支持时,
innodb_sync_debug
配置选项可用于启用或禁用
InnoDB
同步调试检查。
启用
WITH_DEBUG
还会启用Debug Sync。
该工具用于测试和调试。
编译时,默认情况下在运行时禁用调试同步。
要启用它,请
使用
选项
启动
mysqld
,其中
超时值大于0.(默认值为0,禁用调试同步。)
成为各个同步点的默认超时。
--debug-sync-timeout=
N
N
N
InnoDB
使用该
WITH_DEBUG
选项
编译调试支持时,可以使用存储引擎的
同步调试检查
。
有关Debug Sync工具以及如何使用同步点的说明,请参阅 MySQL Internals:Test Synchronization 。
-DWITH_DEFAULT_FEATURE_SET=
bool
是否使用来自的标志
cmake/build_configurations/feature_set.cmake
。
使用哪个
libedit
/
editline
库。
允许的值是
bundled
(默认值)和
system
。
-DWITH_ICU={
icu_type
|path_name
}
MySQL使用Unicode的国际组件(ICU)来支持正则表达式操作。
该
WITH_ICU
选项指示要包括的ICU支持的类型或要使用的ICU安装的路径名。
icu_type
可以是以下值之一:
bundled
:使用与分发捆绑在一起的ICU库。
这是默认设置,是Windows唯一支持的选项。
system
:使用系统ICU库。
path_name
是要使用的ICU安装的路径名。
这可能比使用
icu_type
值
更可取
,
system
因为它可以防止CMake检测并使用系统上安装的较旧或不正确的ICU版本。
(另一种允许做同样事情的方法是设置
WITH_ICU
为
system
并将
CMAKE_PREFIX_PATH
选项
设置
为
path_name
。)
-DWITH_INNODB_EXTRA_DEBUG=
bool
是否包含额外的InnoDB调试支持。
启用
WITH_INNODB_EXTRA_DEBUG
额外的InnoDB调试检查。
只有在启用时才能启用此选项
WITH_DEBUG
。
googlemock发行版的路径,用于基于Google Test的单元测试。
选项值是分发Zip文件的路径。
或者,将
WITH_GMOCK
环境变量设置为路径名。
它也可以使用
-DENABLE_DOWNLOADS=1
,
CMake
将从GitHub下载发行版。
如果您在没有基于Google Test的单元测试的情况下构建MySQL(通过配置wihout
WITH_GMOCK
),
CMake
会显示一条消息,指示如何下载它。
是否生成memcached共享库(
libmemcached.so
和
innodb_engine.so
)。
是否链接
-ljemalloc
。
如果启用,内置
malloc()
,
calloc()
,
realloc()
,和
free()
程序将被禁用。
默认是
OFF
。
MySQL 8.0.16中添加了此选项。
是否构建随
keyring_file
插件
附带的测试程序
。
默认是
OFF
。
测试文件源代码位于
plugin/keyring/keyring-test
目录中。
libevent
使用
哪个
库。
允许的值是
bundled
(默认)
system
,和
yes
。
如果指定
system
或
yes
,
libevent
则使用
系统
库(如果存在)。
如果未找到系统库,
libevent
则使用
捆绑的
库。
memcached
libevent
需要
该
库
InnoDB
。
是否包含
libwrap
(TCP包装器)支持。
是否启用LOCK_ORDER工具。 默认情况下,此选项已禁用,服务器构建不包含任何工具。 如果启用了工具,则LOCK_ORDER工具可用,可以按照 第29.5.3节“LOCK_ORDER工具”中的说明使用 。
WITH_LOCK_ORDER
启用
该
选项后,MySQL构建需要
flex
程序。
MySQL 8.0.17中添加了此选项。
是否运行LeakSanitizer,没有AddressSanitizer。
默认是
OFF
。
MySQL 8.0.16中添加了此选项。
是否启用链接时优化器,如果编译器支持它。
默认是
OFF
。
MySQL 8.0.13中添加了此选项。
该
WITH_LZ4
指示的源
zlib
支持:
bundled
:使用
lz4
与分发捆绑在一起
的
库。
这是默认值。
system
:使用系统
lz4
库。
如果
WITH_LZ4
设置为此值,
则不会构建
lz4_decompress
实用程序。
在这种情况下,
可以使用
系统
lz4
命令。
是否为支持它的编译器启用MemorySanitizer。 默认为关闭。
要使此选项在启用时生效,所有链接到MySQL的库也必须在启用选项的情况下编译。
-DWITH_MECAB={disabled|system|
path_name
}
使用此选项可编译MeCab解析器。
如果已将MeCab安装到其默认安装目录,请进行设置
-DWITH_MECAB=system
。
该
system
选项适用于使用本机程序包管理实用程序从源或二进制文件执行的MeCab安装。
如果将MeCab安装到自定义安装目录,请指定MeCab安装的路径。
例如,
-DWITH_MECAB=/opt/mecab
。
如果该
system
选项不起作用,则指定MeCab安装路径应该适用于所有情况。
有关相关信息,请参见 第12.9.9节“MeCab全文分析器插件” 。
是否启用Visual Studio CRT内存泄漏跟踪。
默认是
OFF
。
是否构建支持X插件。
默认
ON
。
请参见
第20章,
将MySQL用作文档存储
。
明确设置NUMA内存分配策略。
CMake
WITH_NUMA
根据当前平台是否
NUMA
支持来
设置默认
值
。
对于没有NUMA支持的平台,
CMake的
行为如下:
如果没有NUMA选项(正常情况), CMake会 继续正常运行,仅产生此警告:NUMA库缺失或所需版本不可用
使用
-DWITH_NUMA=ON
,
CMake
中止此错误:NUMA库缺失或所需版本不可用
使用哪种协议缓冲区包。
protobuf_type
可以是以下值之一:
bundled
:使用与分发捆绑在一起的软件包。
这是默认值。
system
:使用系统上安装的软件包。
其他值将被忽略,并回退到
bundled
。
是否构建快速开发周期插件。
启用后,将
rapid
在包含这些插件的构建树中创建目录。
禁用时,
rapid
构建树中
不会
创建
任何
目录。
默认值是
ON
,除非
rapid
从源树中删除目录
,否则
默认值为
OFF
。
-DWITH_RAPIDJSON=
rapidjson_type
RapidJSON库支持的类型包括。
rapidjson_type
可以是以下值之一:
bundled
:使用与发行版捆绑在一起的RapidJSON库。
这是默认值。
system
:使用系统RapidJSON库。
需要1.1.0或更高版本。
MySQL 8.0.13中添加了此选项。
LZMA库支持的类型包括。
lzma_type
可以是以下值之一:
bundled
:使用与发行版捆绑在一起的LZMA库。
这是默认值。
system
:使用系统LZMA库。
在MySQL 8.0.16中删除了此选项。
要包含的RE2库类型支持。
re2_type
可以是以下值之一:
bundled
:使用与分发捆绑在一起的RE2库。
这是默认值。
system
:使用系统RE2库。
是否构建MySQL路由器。
默认是
ON
。
MySQL 8.0.16中添加了此选项。
-DWITH_SSL={
|
ssl_type
path_name
}
要包含的SSL支持的类型或要使用的OpenSSL安装的路径名。
ssl_type
可以是以下值之一:
system
:使用系统OpenSSL库。
这是默认值。
在macOS和Windows上,使用
system
构建,就像调用CMake一样,
path_name
并指向已安装的OpenSSL库。
这是因为它们没有系统SSL库。
在Mac OS,
BREW将OpenSSL安装
将安装到
/usr/local/opt/openssl
,并
system
会发现它。
在Windows上,它检查
%ProgramFiles%/ OpenSSL
,
%ProgramFiles%/ OpenSSL-Win32
,
%ProgramFiles%/ OpenSSL-Win64
,
C:/ OpenSSL
,
C:/ OpenSSL-Win32
和
C:/ OpenSSL-Win64
。
yes
:这是一个同义词
system
。
wolfssl
:使用wolfSSL库。
要使用此选项值,您必须按照
extra/README-wolfssl.txt
文件中
的说明进行
操作。
path_name
是要使用的OpenSSL安装的路径名。
这可能比使用
ssl_type
值
更可取
,
system
因为它可以防止CMake检测并使用系统上安装的较旧或不正确的OpenSSL版本。
(另一种允许做同样事情的方法是设置
WITH_SSL
为
system
并将
CMAKE_PREFIX_PATH
选项
设置
为
path_name
。)
有关使用SSL支持的信息,请参见 第6.3节“使用加密连接” 。
是否启用systemd支持文件的安装。
默认情况下,禁用此选项。
启用后,将安装systemd支持文件,并且
不会安装
mysqld_safe
和System V初始化脚本等脚本。
在systemd不可用的平台上,启用会
WITH_SYSTEMD
导致
CMake
出错
。
有关使用systemd的更多信息,请参见
第2.5.9节“
使用systemd
管理MySQL服务器”
。
该部分还包括有关指定先前在
[mysqld_safe]
选项组中
指定的
选项的信息。
由于
在使用systemd时未安装
mysqld_safe
,因此必须以其他方式指定此类选项。
此选项充当
“
保护伞
”
选项来设置
system
的以下任一值
的CMake
未明确设置的选项:
WITH_CURL
,
WITH_EDITLINE
,
WITH_ICU
,
WITH_LIBEVENT
,
WITH_LZ4
,
WITH_LZMA
,
WITH_PROTOBUF
,
WITH_RE2
,
WITH_SSL
,
WITH_ZLIB
。
是否构建测试协议跟踪客户端插件(请参见
第29.2.4.11.1节“使用测试协议跟踪插件”
)。
默认情况下,禁用此选项。
除非启用该选项,否则启用此选项无效
WITH_CLIENT_PROTOCOL_TRACING
。
如果MySQL配置为启用了两个选项,则
libmysqlclient
客户端库是使用内置的测试协议跟踪插件构建的,并且所有标准MySQL客户端都会加载插件。
但是,即使启用了测试插件,默认情况下也没有效果。
使用环境变量提供对插件的控制;
请参见
第29.2.4.11.1节“使用测试协议跟踪插件”
。
不要
不
启用
WITH_TEST_TRACE_PLUGIN
,如果你想使用自己的协议跟踪的插件,因为只有一个这样的插件可以在同一时间被加载并出现错误尝试加载第二个选项。
如果您已经在启用了测试协议跟踪插件的情况下构建了MySQL以查看它是如何工作的,那么必须在没有它的情况下重建MySQL,然后才能使用自己的插件。
有关编写跟踪插件的信息,请参见 第29.2.4.11节“编写协议跟踪插件” 。
是否为支持它的编译器启用ThreadSanitizer。 默认为关闭。
是否为支持它的编译器启用Undefined Behavior Sanitizer。 默认为关闭。
如果启用,请使用单元测试编译MySQL。 除非未编译服务器,否则默认值为ON。
为Connector / ODBC启用unixODBC支持。
是否在Valgrind头文件中编译,这将Valgrind API暴露给MySQL代码。
默认是
OFF
。
要生成Valgrind感知的调试版本,
-DWITH_VALGRIND=1
通常会与之结合使用
-DWITH_DEBUG=1
。
请参阅
构建调试配置
。
某些功能要求使用压缩库支持构建服务器,例如
COMPRESS()
和
UNCOMPRESS()
函数,以及客户端/服务器协议的压缩。
该
WITH_ZLIB
指示的源
zlib
支持:
bundled
:使用
zlib
与分发捆绑在一起
的
库。
这是默认值。
system
:使用系统
zlib
库。
如果
WITH_ZLIB
设置为此值,
则不会构建
zlib_decompress
实用程序。
在这种情况下,
可以使用
系统
openssl zlib
命令。
要指定自己的C和C ++编译器标志,对于不影响优化的标志,请使用
CMAKE_C_FLAGS
和
CMAKE_CXX_FLAGS
CMake选项。
提供自己的编译器标志时,您可能也想要指定
CMAKE_BUILD_TYPE
。
例如,要在64位Linux计算机上创建32位版本,请执行以下操作:
mkdir bld cd bld cmake .. -DCMAKE_C_FLAGS = -m32 \ -DCMAKE_CXX_FLAGS = -m32 \ -DCMAKE_BUILD_TYPE = RelWithDebInfo
如果设置了影响optimization(
)的
标志,则
必须设置
和/或
选项,其中
对应于
值。
要为默认构建类型(
)
指定不同的优化,请
设置
和
选项。
例如,要使用
和使用调试符号
在Linux上进行编译
,请执行以下操作:
-O
number
CMAKE_C_FLAGS_
build_type
CMAKE_CXX_FLAGS_
build_type
build_type
CMAKE_BUILD_TYPE
RelWithDebInfo
CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO
-O3
cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO =“ - O3 -g”\ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO =“ - O3 -g”
在构建具有NDB Cluster支持的MySQL 8.0源时,可以使用以下选项。
使用安装在系统目录中的memcached(版本1.6或更高版本)执行构建
dir_name
。
构建中使用的此安装中的文件包括memcached二进制文件,头文件和库,以及
memcached_utilities
库和头文件
engine_testapp.h
。
ndbmemcache
使用捆绑的memcached源(
WITH_BUNDLED_MEMCACHED
选项)
构建时,必须取消设置此选项
;
换句话说,默认情况下使用捆绑的源)。
虽然在
从外部源
编译
memcached
时可以使用
其他
CMake
选项(例如SASL授权和提供
dtrace
支持)
,但是当前未对
与NDB Cluster捆绑
的
memcached
源
启用这些选项
。
-DWITH_BUNDLED_LIBEVENT={ON|OFF}
libevent
在构建具有
ndbmemcached
支持
的NDB群集时,
请使用
NDB群集源中包含的内容
。
默认情况下启用。
OFF
导致系统
libevent
被使用。
-DWITH_BUNDLED_MEMCACHED={ON|OFF}
构建NDB Cluster源树中包含的memcached源,然后在构建
ndbmemcache
引擎
时使用生成的memcached服务器
。
在这种情况下,
make install
将
memcached
二进制文件放在安装
bin
目录中,并将
ndbmemcache
引擎共享库文件
ndb_engine.so
放在安装
lib
目录中。
默认情况下,此选项为ON。
设置用于构建NDB Cluster Connector for Java的类路径。
默认为空。
如果
-DWITH_NDB_JAVA=OFF
使用,
则忽略此选项
。
在
NDB
内核中
启用错误注入
。
仅用于测试;
不打算用于构建生产二进制文件。
默认是
OFF
。
-DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}
这是别名
WITH_NDBCLUSTER
。
构建和链接以支持
mysqld中
的
NDB
(
NDBCLUSTER
)存储引擎
。
默认是
。
ON
构建多线程数据节点可执行文件
ndbmtd
。
默认是
ON
。
默认情况下,在 使用此选项构建 的 mysqld中 启用二进制日志记录 。 默认为ON。
启用构建NDB Cluster二进制文件的调试版本。 默认为OFF。
支持使用Java支持构建NDB集群
ClusterJ
。
默认情况下,此选项为ON。
如果您不希望编译具有Java支持的NDB Cluster,则必须通过指定
-DWITH_NDB_JAVA=OFF
运行
CMake
时
显式禁用它
。
否则,如果找不到Java,则构建配置将失败。
导致
构建
的NDB群集管理服务器(
ndb_mgmd
)
port
默认
使用此
服务器
。
如果未设置此选项,则生成的管理服务器默认尝试使用端口1186。
如果启用,请包含一组NDB API测试程序。 默认为OFF。
-DWITH_PLUGIN_NDBCLUSTER={ON|OFF}
别名
WITH_NDBCLUSTER
。
许多问题的解决方案涉及重新配置。 如果您进行了重新配置,请注意以下事项:
如果
CMake
在之前运行之后运行,它可能会使用在上一次调用期间收集的信息。
此信息存储在
CMakeCache.txt
。
当
CMake
启动时,它会查找该文件并在其存在的情况下读取其内容,前提是信息仍然正确。
重新配置时,该假设无效。
每次运行 CMake时 ,都必须 再次 运行 make 才能重新编译。 但是,您可能希望首先从先前的构建中删除旧的目标文件,因为它们是使用不同的配置选项编译的。
要防止使用旧的目标文件或配置信息,请在重新运行 CMake 之前运行以下命令 :
在Unix上:
shell>make clean
shell>rm CMakeCache.txt
在Windows上:
shell>devenv MySQL.sln /clean
shell>del CMakeCache.txt
如果在源树之外构建,请在重新运行 CMake 之前删除并重新创建构建目录 。 有关在源树之外构建的说明,请参阅 如何使用CMake构建MySQL服务器 。
在某些系统上,由于系统包含文件的不同,可能会出现警告。 以下列表描述了在编译MySQL时最常出现的其他问题:
要定义要使用的C和C ++编译器,可以定义
环境变量
CC
和
CXX
环境变量。
例如:
shell>CC=gcc
shell>CXX=g++
shell>export CC CXX
要指定自己的C和C ++编译器标志,请使用
CMAKE_C_FLAGS
和
CMAKE_CXX_FLAGS
CMake选项。
请参阅
编译器标志
。
要查看可能需要指定的标志,请
使用
和
选项
调用
mysql_config
。
--cflags
--cxxflags
要查看在编译阶段执行的命令,在使用 CMake 配置MySQL之后,运行 make VERBOSE = 1 而不是 make 。
如果编译失败,请检查该
MYSQL_MAINTAINER_MODE
选项
是否
已启用。
此模式会导致编译器警告成为错误,因此禁用它可能会使编译继续进行。
如果编译失败并出现以下任何错误,则必须将 make 版本升级 为GNU make :
make:阅读器中的致命错误:Makefile,第18行: 形成错误的宏分配
要么:
make:file`Makefile'第18行:必须是分隔符(:
要么:
pthread.h:没有这样的文件或目录
众所周知,Solaris和FreeBSD都有麻烦的 make 程序。
已知 GNU make 3.75可以工作。
该
sql_yacc.cc
文件是从
sql_yacc.yy
。
生成的
。
通常,构建过程不需要创建,
sql_yacc.cc
因为MySQL带有预生成的副本。
但是,如果您确实需要重新创建它,则可能会遇到此错误:
“sql_yacc.yy”,行xxx
致命:默认行为导致潜在的......
这表明您的 yacc 版本存在 缺陷。 您可能需要安装最新版本的 bison ( yacc 的GNU版本 )并使用它。
早于1.75 的 野牛 版本 可能会报告此错误:
sql_yacc.yy:#####:致命错误:超出最大表大小(32767)
实际上并未超出最大表大小; 该错误是由旧版本的 野牛中 的错误引起的 。
有关获取或更新工具的信息,请参见 第2.9节“从源安装MySQL”中 的系统要求 。
需要从MySQL源确定MySQL版本的第三方工具可以读取
VERSION
顶级源目录中的文件。
该文件分别列出了版本的各个部分。
例如,如果版本是MySQL 8.0.4-rc,则文件如下所示:
MYSQL_VERSION_MAJOR = 8 MYSQL_VERSION_MINOR = 0 MYSQL_VERSION_PATCH = 4 MYSQL_VERSION_EXTRA = -RC
如果源不是通用可用性(GA)版本,则该
MYSQL_VERSION_EXTRA
值将
为非
空。
例如,该值对应于Release Candidate。
要从版本组件构造五位数字,请使用以下公式:
MYSQL_VERSION_MAJOR * 10000 + MYSQL_VERSION_MINOR * 100 + MYSQL_VERSION_PATCH
MySQL源代码包含使用Doxygen编写的内部文档。 生成的Doxygen内容可从 https://dev.mysql.com/doc/index-other.html获得 。 也可以使用以下过程从MySQL源代码分发本地生成此内容:
安装 doxygen 1.8.11或更高版本。 分发可在此处获得:
http://www.stack.nl/~dimitri/doxygen/download.html
安装 doxygen后 ,验证版本号:
外壳> doxygen --version
1.8.11
安装PlantUML。 分发可在此处获得:
http://plantuml.com/download.html
在Windows上安装PlantUML(在Windows 10上测试)时,必须至少以管理员身份运行一次,以便创建注册表项。 打开管理员控制台并运行以下命令:
java -jar path-to-plantuml.jar
该命令应打开GUI窗口并在控制台上不返回任何错误。
安装Graphviz dot 命令。 分发可在此处获得:
http://www.graphviz.org/
安装Graphviz后,验证
dot
可用性。
例如:
外壳>which dot
在/ usr / bin中/点 外壳>dot -V
dot - graphviz version 2.28.0(20130928.0220)
将
PLANTUML_JAR_PATH
环境
设置为
PlantUML的安装位置。
例如:
export PLANTUML_JAR_PATH =path-to-plantuml.jar
要调用 doxygen ,请将位置更改为MySQL源代码分发的顶级目录并执行以下命令:
mkdir -p generated / doxygen doxygen的
检查错误日志。
它
doxyerror.log
位于顶级目录
的
文件中。
假设构建成功执行,请使用浏览器查看生成的输出。
例如:
firefox生成/ doxygen / html / index.html
您可以使用其他浏览器,甚至为页面添加书签。
本节讨论安装MySQL后应执行的任务:
如有必要,初始化数据目录并创建MySQL授权表。 对于某些MySQL安装方法,可以自动为您完成数据目录初始化:
MySQL安装程序执行的Windows安装操作。
使用Oracle的服务器RPM或Debian发行版在Linux上安装。
在许多平台上使用本机打包系统进行安装,包括Debian Linux,Ubuntu Linux,Gentoo Linux等。
使用DMG分发在macOS上安装。
对于其他平台和安装类型,您必须手动初始化数据目录。 这些包括在Unix和类Unix系统上从通用二进制和源代码发行版安装,以及从Windows上的ZIP Archive包安装。 有关说明,请参见 第2.10.1节“初始化数据目录” 。
启动服务器并确保可以访问它。 有关说明,请参见 第2.10.2节“启动服务器” 和 第2.10.3节“测试服务器” 。
root
如果在数据目录初始化期间尚未完成
密码,则
在授权表中
为初始
帐户
分配密码
。
密码可防止未经授权访问MySQL服务器。
有关说明,请参见
第2.10.4节“保护初始MySQL帐户”
。
(可选)安排服务器在系统启动和停止时自动启动和停止。 有关说明,请参见 第2.10.5节“自动启动和停止MySQL” 。
(可选)填充时区表以启用对指定时区的识别。 有关说明,请参见 第5.1.13节“MySQL服务器时区支持” 。
当您准备创建其他用户帐户时,可以在 第6.2节“访问控制和帐户管理”中 找到有关MySQL访问控制系统和帐户管理的信息 。
安装MySQL后,必须初始化数据目录,包括
mysql
系统模式中
的表
:
对于某些MySQL安装方法,数据目录初始化是自动的,如 第2.10节“安装后设置和测试”中所述 。
对于其他安装方法,您必须手动初始化数据目录。 这些包括在Unix和类Unix系统上从通用二进制文件和源代码发行版安装,以及从Windows上的ZIP Archive包安装。
本节介绍如何为MySQL安装方法手动初始化数据目录,其中数据目录初始化不是自动的。 对于某些建议的命令,可以测试服务器是否可访问且工作正常,请参见 第2.10.3节“测试服务器” 。
在MySQL 8.0中,默认的身份验证插件已更改
mysql_native_password
为
caching_sha2_password
,并且
'root'@'localhost'
管理帐户
caching_sha2_password
默认
使用
。
如果您希望该
root
帐户使用以前的默认身份验证插件(
mysql_native_password
),请参阅
caching_sha2_password和根管理帐户
。
在此处显示的示例中,服务器旨在在
mysql
登录帐户
的用户标识下运行
。
如果帐户不存在,请
创建
帐户(请参阅
创建mysql用户和组
),或者替换您计划用于运行服务器的其他现有登录帐户的名称。
将位置更改为MySQL安装的顶级目录,这通常是
/usr/local/mysql
(根据需要调整系统的路径名):
cd / usr / local / mysql
在目录中,您将找到多个文件和子目录,包括
bin
包含服务器
的
子目录以及客户端和实用程序。
该
secure_file_priv
系统变量限制进口和出口业务到指定目录。
创建一个目录,其位置可以指定为该变量的值:
mkdir mysql-files
将目录用户和组所有权授予
mysql
用户和
mysql
组,并相应地设置目录权限:
chown mysql:mysql mysql-files chmod 750 mysql-files
使用服务器初始化数据目录,包括
mysql
包含初始MySQL授权表
的
模式,该表确定如何允许用户连接到服务器。
例如:
bin / mysqld --initialize --user = mysql
有关该命令的重要信息,尤其是有关可能使用的命令选项的信息,请参阅 数据目录初始化过程 。 有关服务器执行初始化的详细信息,请参阅 数据目录初始化期间的服务器操作 。
通常,只有在首次安装MySQL后才需要进行数据目录初始化。
(对于现有安装的升级,请执行升级过程;请参见
第2.11节“升级MySQL”
。)但是,初始化数据目录的命令不会覆盖任何现有的
mysql
模式表,因此在任何情况下都可以安全运行。
如果要部署具有安全连接自动支持的服务器,请使用 mysql_ssl_rsa_setup 实用程序创建默认SSL和RSA文件:
斌/ mysql_ssl_rsa_setup
有关更多信息,请参见 第4.4.3节“ mysql_ssl_rsa_setup - 创建SSL / RSA文件” 。
如果没有任何选项文件,服务器将以其默认设置启动。
(请参见
第5.1.2节“服务器配置默认值”
。)要显式指定MySQL服务器在启动时应使用的选项,请将它们放在选项文件中,例如
/etc/my.cnf
或
/etc/mysql/my.cnf
。
(请参见
第4.2.2.2节“使用选项文件”
。)例如,您可以使用选项文件来设置
secure_file_priv
系统变量。
要在系统启动时安排MySQL无需手动干预,请参见 第2.10.5节“自动启动和停止MySQL” 。
数据目录初始化在
mysql
架构中
创建时区表,
但不填充它们。
为此,请使用
第5.1.13节“MySQL服务器时区支持”中的说明
。
将位置更改为MySQL安装的顶级目录,这通常是
/usr/local/mysql
(根据需要调整系统的路径名):
cd / usr / local / mysql
要初始化数据目录,请
使用
或
选项
调用
mysqld
,具体取决于您是希望服务器为该
帐户
生成随机初始密码
,还是创建没有密码的帐户:
--initialize
--initialize-insecure
'root'@'localhost'
使用
--initialize
了
“
默认安全
”
安装(即包括生成随机初始的
root
密码)。
在这种情况下,密码标记为已过期,您需要选择一个新密码。
使用时
--initialize-insecure
,不会
root
生成密码。
这是不安全的;
假设您在将服务器投入生产使用之前及时为帐户分配密码。
有关分配新
'root'@'localhost'
密码的说明,请参阅
初始化后根密码分配
。
服务器将任何消息(包括任何初始密码)写入其标准错误输出。 这可能会重定向到错误日志,因此,如果您没有在屏幕上看到消息,请查看此处。 有关错误日志的信息,包括错误日志的位置,请参见 第5.4.2节“错误日志” 。
在Windows上,使用该
--console
选项将消息定向到控制台。
在Unix和类Unix系统上,重要的是数据库目录和文件归
mysql
登录帐户
所有,
以便服务器在以后运行时对它们具有读写权限。
要确保这一点,请
从系统
帐户
启动
mysqld
root
并包含
--user
如下所示
的
选项:
bin / mysqld --initialize --user = mysql bin / mysqld --initialize-insecure --user = mysql
或者,
在登录时
执行
mysqld
mysql
,在这种情况下,您可以省略
--user
命令中
的
选项。
在Windows上,使用以下命令之一:
bin \ mysqld --initialize --console bin \ mysqld --initialize-insecure --console
如果缺少必需的系统库,数据目录初始化可能会失败。 例如,您可能会看到如下错误:
bin / mysqld:加载共享库时出错: libnuma.so.1:无法打开共享对象文件: 没有相应的文件和目录
如果发生这种情况,您必须手动或使用系统的软件包管理器安装缺少的库。 然后重试数据目录初始化命令。
这可能需要指定其他选项,如
--basedir
或
--datadir
如果
mysqld的
不能识别的安装目录或数据目录中的正确位置。
例如(在一行中输入命令):
bin / mysqld --initialize --user = mysql --basedir = /选择/ MySQL的/ MySQL的 --datadir = /选择/ MySQL的/ MySQL的/数据
或者,将相关选项设置放在选项文件中,并将该文件的名称传递给
mysqld
。
对于Unix和类Unix系统,假设选项文件名是
/opt/mysql/mysql/etc/my.cnf
。
将这些行放在文件中:
的[mysqld] BASEDIR = /选择/ MySQL的/ MySQL的 DATADIR = /选择/ MySQL的/ MySQL的/数据
然后
按如下方式
调用
mysqld
(
--defaults-file
首先
使用
选项
在单行上输入命令
):
bin / mysqld --defaults-file = / opt / mysql / mysql / etc / my.cnf --initialize --user = mysql
在Windows上,假设
C:\my.ini
包含以下行:
的[mysqld] basedir = C:\\ Program Files \\ MySQL \\ MySQL Server 8.0 DATADIR = d:\\ MySQLdata
然后
按如下方式
调用
mysqld
(
--defaults-file
首先
使用
选项
在单行上输入命令
):
bin \ mysqld --defaults-file = C:\ my.ini --initialize --console
服务器执行的数据目录初始化序列不能替代 mysql_secure_installation 和 mysql_ssl_rsa_setup 执行的操作 。 请参见 第4.4.2节“ mysql_secure_installation - 改进MySQL安装安全性” 和 第4.4.3节“ mysql_ssl_rsa_setup - 创建SSL / RSA文件” 。
当使用
--initialize
or
--initialize-insecure
选项
调用时
,
mysqld
在数据目录初始化序列期间执行以下操作:
服务器检查数据目录是否存在,如下所示:
如果不存在数据目录,则服务器会创建它。
如果数据目录存在但不为空(即,它包含文件或子目录),则在生成错误消息后服务器退出:
[错误] - 指定了初始化但数据目录存在。中止。
在这种情况下,请删除或重命名数据目录,然后重试。
如果每个条目的名称都以句点(
.
)
开头,则允许现有数据目录为非空
。
在数据目录中,服务器创建
mysql
系统模式及其表,包括数据字典表,授权表,时区表和服务器端帮助表。
请参见
第5.3节“mysql系统架构”
。
服务器初始化
管理
表
所需
的
系统表空间
和相关数据结构
InnoDB
。
在
mysqld
设置
InnoDB
系统表空间之后
,对表空间特性的某些更改需要设置一个全新的
实例
。
限定更改包括系统表空间中第一个文件的文件名和撤消日志的数量。
如果您不想使用默认值,请确保
在
运行
mysqld
之前
在MySQL
配置文件中
设置了
配置参数
innodb_data_file_path
和
innodb_log_file_size
配置参数
。
还要确保根据需要指定影响
InnoDB
文件
创建和位置的其他参数
,例如
innodb_data_home_dir
和
innodb_log_group_home_dir
。
如果这些选项在您的配置文件中,但该文件不在MySQL默认读取的位置,请
--defaults-extra-file
在运行
mysqld
时
使用该
选项
指定文件位置
。
服务器创建
'root'@'localhost'
超级用户帐户和其他保留帐户(请参见
第6.2.9节“预留帐户”
)。
某些保留帐户已被锁定且客户端无法使用,但
'root'@'localhost'
仅供管理使用,您应为其分配密码。
与
'root'@'localhost'
帐户
密码相关的服务器操作
取决于您调用它的方式:
有
--initialize
但没有
--initialize-insecure
,服务器生成随机密码,将其标记为已过期,并写入显示密码的消息:
[警告]为root @ localhost生成临时密码: ITAG * AfrH5ej
使用
--initialize-insecure
,(有或没有
--initialize
因为
--initialize-insecure
暗示
--initialize
),服务器不生成密码或将其标记为已过期,并写入警告消息:
[警告]使用空密码创建root @ localhost!请 考虑关闭--initialize-insecure选项。
有关分配新
'root'@'localhost'
密码的说明,请参阅
初始化后根密码分配
。
服务器填充用于该
HELP
语句
的服务器端帮助表
(请参见
第13.8.3节“帮助语法”
)。
服务器不会填充时区表。
要手动执行此操作,请参见
第5.1.13节“MySQL服务器时区支持”
。
如果
--init-file
给出了命名SQL语句文件
的
选项,则服务器执行文件中的语句。
此选项使您可以执行自定义引导序列。
当服务器在引导模式下运行时,某些功能不可用,这限制了文件中允许的语句。
这些包括与帐户管理(例如
CREATE
USER
或
GRANT
),复制和全局事务标识符
相关的语句
。
服务器退出。
通过使用
--initialize
或
--initialize-insecure
启动服务器
初始化数据目录后
,正常启动服务器(即,没有这些选项)并为该
'root'@'localhost'
帐户
分配
新密码:
启动服务器。 有关说明,请参见 第2.10.2节“启动服务器” 。
连接到服务器:
如果您使用
--initialize
但未
--initialize-insecure
初始化数据目录,请按以下方式连接到服务器
root
:
mysql -u root -p
然后,在密码提示符下,输入服务器在初始化序列期间生成的随机密码:
输入密码: (enter the random root password here)
如果您不知道此密码,请查看服务器错误日志。
如果您曾经
--initialize-insecure
初始化数据目录,请在
root
没有密码的情况下
连接到服务器
:
mysql -u root --skip-password
连接后,使用
ALTER
USER
语句分配新
root
密码:
ALTER USER'root'@'localhost'ENFENTIFIED BY' root-password'
;
另请参见 第2.10.4节“保护初始MySQL帐户” 。
尝试连接到主机
127.0.0.1
通常会解析为该
localhost
帐户。
但是,如果使用该
--skip-name-resolve
选项
运行服务器,则会失败
。
如果您打算这样做,请确保存在可以接受连接的帐户。
例如,要能够
root
使用
--host=127.0.0.1
或
连接
--host=::1
,请创建以下帐户:
创建用户'root'@'127.0.0.1'由'确认'root-password
'; 创建用户'root'@':: 1'IDENTIFIED BY'root-password
';
可以将这些语句放在一个文件中,以便
在数据目录初始化期间的服务器操作中
--init-file
讨论
的
选项
执行
。
本节介绍如何在Unix和类Unix系统上启动服务器。 (对于Windows,请参见 第2.3.5.5节“首次启动服务器” 。)对于可用于测试服务器是否可访问且工作正常的某些建议命令,请参见 第2.10.3节“测试服务器” “ 。
如果您的安装包含 mysqld_safe, 请启动MySQL服务器 :
外壳> bin/mysqld_safe --user=mysql &
对于使用RPM软件包安装MySQL的Linux系统,使用systemd而不是 mysqld_safe 管理服务器启动和关闭 ,并且 未安装 mysqld_safe 。 请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
如果您的安装包含systemd支持,请像这样启动服务器:
外壳> systemctl start mysqld
如果它不同,则替换相应的服务名称
mysqld
(例如,
mysql
在SLES系统上)。
使用非特权(非
root
)登录帐户
运行MySQL服务器非常重要
。
要确保这一点,请运行
mysqld_safe
as
root
并包含
--user
如图所示
的
选项。
否则,您应该在登录时执行该程序
mysql
,在这种情况下,您可以省略
--user
该命令中
的
选项。
有关以非特权用户身份运行MySQL的更多说明,请参见 第6.1.5节“如何以普通用户身份运行MySQL” 。
如果命令立即失败并打印
mysqld
ended
,请在错误日志中查找信息(默认情况下是
数据目录中
的
文件)。
host_name
.err
如果服务器无法访问数据目录,它将启动或读取
mysql
模式中
的授权表
,它会将消息写入其错误日志。
如果您在继续执行此步骤之前通过初始化数据目录而忽略了创建授权表,或者运行了在没有该
--user
选项的
情况下初始化数据目录的命令,则可能会出现此类问题
。
删除
data
目录并使用该
--user
选项
运行命令
。
如果启动服务器时遇到其他问题,请参见 第2.10.2.1节“解决启动MySQL服务器时出现的问题” 。 有关 mysqld_safe的 更多信息 ,请参见 第4.3.2节“ mysqld_safe - MySQL服务器启动脚本” 。 有关systemd支持的更多信息,请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
本节提供有关启动服务器问题的故障排除建议。 有关Windows系统的其他建议,请参见 第2.3.6节“Microsoft Windows MySQL服务器安装疑难解答” 。
如果您在启动服务器时遇到问题,可以尝试以下方法:
检查
错误日志
以查看服务器无法启动的原因。
日志文件位于
数据目录中
(通常
C:\Program
Files\MySQL\MySQL Server 8.0\data
在Windows上,
/usr/local/mysql/data
用于Unix / Linux二进制分发,以及
/usr/local/var
用于Unix / Linux源代码分发)。
看看数据目录与形式的文件名的文件
和
host_name
.err
,其中
host_name
.loghost_name
是您的服务器的主机名。
然后检查这些文件的最后几行。
使用
tail
显示它们:
shell> shell>tail
host_name
.errtail
host_name
.log
指定您正在使用的存储引擎所需的任何特殊选项。
您可以创建
my.cnf
文件并为计划使用的引擎指定启动选项。
如果要使用支持事务表(
InnoDB
,
NDB
)的
存储引擎,请
确保在启动服务器之前按照所需的方式配置它们。
如果您使用的是
InnoDB
表,请参见
第15.8节“InnoDB配置”
了解指南和
第15.13节“InnoDB启动选项和系统变量”
的选项语法。
虽然存储引擎使用您省略的选项的默认值,但Oracle建议您查看可用选项,并为默认值不适合您的安装的任何选项指定显式值。
确保服务器知道在哪里可以找到 数据目录 。 在 mysqld的 服务器使用此目录作为其当前目录。 这是它期望找到数据库以及它希望写入日志文件的位置。 服务器还将pid(进程ID)文件写入数据目录。
编译服务器时,默认数据目录位置是硬编码的。
要确定默认路径设置是什么,请
使用
和
选项
调用
mysqld
。
如果数据目录位于系统上的其他位置
,请在命令行或选项文件中使用
mysqld
或
mysqld_safe
选项
指定该位置
。
否则,服务器将无法正常工作。
作为该
选项
的替代
,您可以指定
mysqld
--verbose
--help
--datadir
--datadir
安装MySQL的基本目录的位置
--basedir
,
mysqld
在
data
那里
查找
目录。
要检查指定路径选项的效果,请
使用这些选项后跟
和
选项
调用
mysqld
。
例如,如果将位置更改
为安装
mysqld
的目录,
然后运行以下命令,则会显示使用以下基本目录启动服务器的效果
:
--verbose
--help
/usr/local
外壳> ./mysqld --basedir=/usr/local --verbose --help
您可以指定其他选项,例如
--datadir
为好,但
--verbose
并
--help
一定是最后的选择。
确定所需的路径设置后,不使用
--verbose
和
启动服务器
--help
。
如果 mysqld 当前正在运行,您可以通过执行以下命令找出它正在使用的路径设置:
外壳> mysqladmin variables
要么:
外壳> mysqladmin -h host_name
variables
host_name
是MySQL服务器主机的名称。
确保服务器可以访问 数据目录 。 数据目录及其内容的所有权和权限必须允许服务器读取和修改它们。
如果
在启动
mysqld
时
获得
Errcode 13
(意味着
Permission denied
)
,这意味着数据目录或其内容的权限不允许服务器访问。
在这种情况下,您可以更改所涉及文件和目录的权限,以便服务器有权使用它们。
您也可以启动服务器
,但这会引发安全问题,应该避免。
root
将位置更改为数据目录并检查数据目录及其内容的所有权,以确保服务器具有访问权限。
例如,如果是数据目录
/usr/local/mysql/var
,请使用以下命令:
外壳> ls -la /usr/local/mysql/var
如果数据目录或其文件或子目录不归您用于运行服务器的登录帐户所有,请将其所有权更改为该帐户。
如果该帐户已命名
mysql
,请使用以下命令:
shell>chown -R mysql /usr/local/mysql/var
shell>chgrp -R mysql /usr/local/mysql/var
即使拥有正确的所有权,如果您的系统上运行其他安全软件来管理对文件系统各个部分的应用程序访问,MySQL也可能无法启动。 在这种情况下,重新配置该软件以使 mysqld 能够访问它在正常操作期间使用的目录。
验证服务器要使用的网络接口是否可用。
如果出现以下任一错误,则意味着某些其他程序(可能是另一个 mysqld 服务器)正在使用 mysqld 尝试 使用的TCP / IP端口或Unix套接字文件 :
无法启动服务器:绑定TCP / IP端口:已在使用的地址 无法启动服务器:在unix socket上绑定...
使用 ps 确定是否有另一个 mysqld 服务器正在运行。 如果是这样,请在 再次 启动 mysqld 之前关闭服务器 。 (如果另一台服务器正在运行,并且您确实想运行多台服务器,则可以在 第5.8节“在一台计算机上运行多个MySQL实例”中 找到有关如何执行此操作的信息 。)
如果没有其他服务器正在运行,请执行该命令
。
(默认的MySQL端口号是3306.)然后按Enter键几次。
如果您没有收到类似的错误消息
,则其他一些程序正在使用
mysqld
尝试
使用的TCP / IP端口
。
跟踪这是什么程序并禁用它,或告诉
mysqld
使用该
选项
监听不同的端口
。
在这种情况下,请在使用TCP / IP连接到服务器时为客户端程序指定相同的非默认端口号。
telnet
your_host_name
tcp_ip_port_number
telnet: Unable to connect to remote host:
Connection refused
--port
端口可能无法访问的另一个原因是您运行的防火墙阻止了与它的连接。 如果是这样,请修改防火墙设置以允许访问端口。
如果服务器启动但您无法连接到它,请确保您有一个条目
/etc/hosts
,如下所示:
127.0.0.1 localhost
如果您无法
启动
mysqld
,请尝试使用该
--debug
选项
创建跟踪文件以查找问题
。
请参见
第29.5.4节“DBUG包”
。
在初始化数据目录并启动服务器之后,执行一些简单的测试以确保它能够令人满意地工作。
本节假定您当前的位置是MySQL安装目录,并且它有一个
bin
包含此处使用的MySQL程序
的
子目录。
如果不是这样,请相应地调整命令路径名。
或者,将
bin
目录
添加
到
PATH
环境变量设置中。
这使您的shell(命令解释器)能够正确地找到MySQL程序,这样您就可以通过只输入其名称而不是其路径名来运行程序。
请参见
第4.2.6节“设置环境变量”
。
使用 mysqladmin 验证服务器是否正在运行。 以下命令提供简单的测试,以检查服务器是否已启动并响应连接:
shell>bin/mysqladmin version
shell>bin/mysqladmin variables
如果无法连接到服务器,请指定
-u
root
要连接
的
选项
root
。
如果您已为该
root
帐户
分配了密码,则
还需要
-p
在命令行中
指定
并在出现提示时输入密码。
例如:
shell>bin/mysqladmin -u root -p version
输入密码:(enter root password here)
mysqladmin版本 的输出 略有不同,具体取决于您的平台和MySQL版本,但应与此处显示的类似:
外壳> bin/mysqladmin version
mysqladmin Ver 14.12 Distrib 8.0.18,适用于i686上的pc-linux-gnu
...
服务器版本8.0.18
协议版本10
通过UNIX套接字连接Localhost
UNIX套接字/var/lib/mysql/mysql.sock
正常运行时间:14天5小时5分21秒
主题:1个问题:366慢查询:0
打开:0齐表:1打开表:19
每秒查询平均值:0.000
要查看使用
mysqladmin
可以执行的其他操作,请
使用该
--help
选项
调用它
。
验证您是否可以关闭服务器(
-p
如果
root
帐户已有密码,请
包含一个
选项
):
外壳> bin/mysqladmin -u root shutdown
确认您可以再次启动服务器。 通过使用 mysqld_safe 或 直接 调用 mysqld 来完成此操作。 例如:
外壳> bin/mysqld_safe --user=mysql &
如果 mysqld_safe 失败,请参见 第2.10.2.1节“解决启动MySQL服务器的问题” 。
运行一些简单的测试以验证您是否可以从服务器检索信息。 输出应类似于此处显示的输出。
使用 mysqlshow 查看存在哪些数据库:
外壳> bin/mysqlshow
+ -------------------- +
| 数据库|
+ -------------------- +
| information_schema |
| mysql |
| performance_schema |
| sys |
+ -------------------- +
已安装数据库的列表可能有所不同,但始终至少包含
mysql
和
information_schema
。
如果指定数据库名称, mysqlshow将 显示 数据库 中的表列表:
外壳> bin/mysqlshow mysql
数据库:mysql
+ --------------------------- +
| 表|
+ --------------------------- +
| columns_priv |
| 组件|
| 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 |
| 插件|
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| 服务器|
| 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 |
| 用户|
+ --------------------------- +
使用
mysql
程序从
mysql
架构中
的表中选择信息
:
外壳> bin/mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+ ------ + ----------- + ----------------------- +
| 用户| 主持人| 插件|
+ ------ + ----------- + ----------------------- +
| 根| localhost | caching_sha2_password |
+ ------ + ----------- + ----------------------- +
此时,您的服务器正在运行,您可以访问它。 如果尚未为初始帐户指定密码,请加强安全性,请按照 第2.10.4节“保护初始MySQL帐户”中的说明进行操作 。
有关 mysql , mysqladmin 和 mysqlshow的 更多信息 ,请参见 第4.5.1节“ mysql - MySQL命令行客户端” , 第4.5.2节“ mysqladmin - 管理MySQL服务器的客户端” 和 第4.5.7节, “ mysqlshow - 显示数据库,表和列信息” 。
MySQL安装过程涉及初始化数据目录,包括
mysql
定义MySQL帐户
的
系统模式中
的授权表
。
有关详细信息,请参见
第2.10.1节“初始化数据目录”
。
本节介绍如何为
root
在MySQL安装过程中创建
的初始
帐户
分配密码
(如果尚未这样做)。
执行本节所述过程的替代方法:
在Windows上,您可以在使用MySQL Installer进行安装期间执行该过程(请参见 第2.3.3节“用于Windows的MySQL安装程序” )。
在所有平台上,MySQL发行版都包含 mysql_secure_installation ,这是一个命令行实用程序,可以自动完成保护MySQL安装的大部分过程。
在所有平台上,MySQL Workbench都可用,并提供管理用户帐户的功能(参见 第31章, MySQL Workbench )。
在这些情况下,密码可能已经分配给初始帐户:
在Windows上,使用MySQL Installer执行的安装为您提供了分配密码的选项。
使用macOS安装程序进行安装会生成一个初始随机密码,安装程序会在对话框中向用户显示该密码。
使用RPM软件包进行安装会生成一个初始随机密码,该密码将写入服务器错误日志。
使用Debian软件包的安装为您提供了分配密码的选项。
对于使用 mysqld --initialize 手动执行的数据目录初始化 , mysqld 生成初始随机密码,将其标记为已过期,并将其写入服务器错误日志。 请参见 第2.10.1节“初始化数据目录” 。
该
mysql.user
授权表定义了初始MySQL用户账户和访问权限。
MySQL的安装只创建一个
'root'@'localhost'
拥有所有权限并可以执行任何操作
的
超级用户帐户。
如果该
root
帐户的密码为空,则您的MySQL安装不受保护:任何人都可以在
root
没有密码的情况下
连接到MySQL服务器
并获得所有权限。
该
'root'@'localhost'
帐户在
mysql.proxies_priv
表中
还有一行
,用于为所有用户和所有主机
授予
PROXY
权限
''@''
。
这样可以
root
设置代理用户,以及委托其他帐户设置代理用户的权限。
请参见
第6.2.18节“代理用户”
。
要为初始MySQL
root
帐户
分配密码
,请使用以下过程。
root-password
在示例中
替换
您要使用的密码。
如果服务器未运行,请启动它。 有关说明,请参见 第2.10.2节“启动服务器” 。
初始
root
帐户可能有也可能没有密码。
选择以下适用的程序:
如果
root
帐户存在初始随机密码已过期,请
root
使用该密码
连接到服务器
,然后选择新密码。
如果数据目录是使用
mysqld --initialize
初始化的
,则可以手动或使用安装程序在安装操作期间无法指定密码。
由于密码存在,您必须使用它来连接到服务器。
但由于密码已过期,除非您选择新密码,否则不能将该帐户用于选择新密码之外的任何其他目的。
如果您不知道初始随机密码,请查看服务器错误日志。
root
使用密码
连接到服务器
:
shell>mysql -u root -p
输入密码:(enter the random root password here)
选择一个新密码来替换随机密码:
MySQL的> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password
';
如果
root
帐户存在但没有密码,请
root
使用无密码
连接到服务器
,然后分配密码。
如果使用
mysqld --initialize-insecure
初始化数据目录,则会出现这种情况
。
root
使用无密码
连接到服务器
:
外壳> mysql -u root --skip-password
分配密码:
MySQL的> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password
';
为
root
帐户
分配
密码后,只要您使用该帐户连接到服务器,就必须提供该密码。
例如,要使用
mysql
客户端
连接到服务器
,请使用以下命令:
shell>mysql -u root -p
输入密码:(enter root password here)
要使用 mysqladmin 关闭服务器 ,请使用以下命令:
shell>mysqladmin -u root -p shutdown
输入密码:(enter root password here)
有关设置密码的其他信息,请参见
第6.2.14节“分配帐户密码”
。
如果
root
在设置密码后
忘记
密码,请参见
第B.4.3.2节“如何重置root密码”
。
要设置其他帐户,请参见 第6.2.8节“添加帐户,分配权限和删除帐户” 。
本节讨论启动和停止MySQL服务器的方法。
通常,您 可以通过以下方式之一 启动 mysqld 服务器:
直接 调用 mysqld 。 这适用于任何平台。
在Windows上,您可以设置在Windows启动时自动运行的MySQL服务。 请参见 第2.3.5.8节“将MySQL作为Windows服务启动” 。
在Unix和类Unix系统上,你可以调用 mysqld_safe ,它试图确定 mysqld 的正确选项 ,然后用这些选项运行它。 请参见 第4.3.2节“ mysqld_safe - MySQL服务器启动脚本” 。
在支持systemd的Linux系统上,您可以使用它来控制服务器。 请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
在使用System V样式运行目录(即
/etc/init.d
运行级别特定目录)的系统上,调用
mysql.server
。
此脚本主要用于系统启动和关闭。
它通常以名称安装
mysql
。
该
mysql.server的
脚本开始通过调用服务器
mysqld_safe的
。
请参见
第4.3.3节“
mysql.server
- MySQL服务器启动脚本”
。
在macOS上,安装一个launchd守护进程以在系统启动时启用自动MySQL启动。 守护程序通过调用 mysqld_safe 启动服务器 。 有关详细信息,请参见 第2.4.3节“安装和使用MySQL启动守护程序” 。 MySQL首选项窗格还提供了通过“系统偏好设置”启动和停止MySQL的控件。 请参见 第2.4.4节“安装和使用MySQL首选项窗格” 。
在Solaris上,使用服务管理框架(SMF)系统来启动和控制MySQL启动。
systemd, mysqld_safe 和 mysql.server 脚本,Solaris SMF和macOS启动项(或MySQL首选项窗格)可用于手动启动服务器,或在系统启动时自动启动。 systemd, mysql.server 和Startup Item也可用于停止服务器。
下表显示了服务器和启动脚本从选项文件中读取的选项组。
表2.14 MySQL启动脚本和支持的服务器选项组
脚本 | 选项组 |
---|---|
mysqld的 | [mysqld]
,
[server]
,
[mysqld-
|
mysqld_safe的 | [mysqld]
,
[server]
,
[mysqld_safe]
|
mysql.server的 | [mysqld]
,
[mysql.server]
,
[server]
|
[mysqld-
意味着,如姓名组
major_version
][mysqld-5.7]
和
[mysqld-8.0]
由具有版本5.7.x,8.0.x等服务器读取。
此功能可用于指定只能由给定版本系列中的服务器读取的选项。
为了向后兼容,
mysql.server
也读取
[mysql_server]
组,
mysqld_safe
也读取
[safe_mysqld]
组。
要成为最新版本,您应该更新选项文件以改为使用
[mysql.server]
和
[mysqld_safe]
组。
有关MySQL配置文件及其结构和内容的更多信息,请参见 第4.2.2.2节“使用选项文件” 。
本节介绍升级MySQL安装的步骤。
升级是一个常见的过程,因为您在同一MySQL版本系列中获取错误修复或主要MySQL版本之间的重要功能。 您首先在某些测试系统上执行此过程,以确保一切顺利,然后在生产系统上。
在下面的讨论中,必须使用具有管理权限的MySQL帐户运行的MySQL
命令
包括
在命令行上指定MySQL
用户。
需要密码的命令
还包括一个
选项。
因为
后面没有选项值,所以这些命令会提示输入密码。
出现提示时键入密码,然后按Enter键。
-u
root
root
root
-p
-p
可以使用
mysql
命令行客户端
执行SQL语句
(连接
root
以确保您具有必要的权限)。
升级前请查看本节中的信息。 执行任何建议的操作。
了解升级期间可能发生的情况。 请参见 第2.11.3节“MySQL升级过程升级” 。
通过创建备份来保护您的数据。
备份应包括
mysql
系统数据库,其中包含MySQL数据字典表和系统表。
请参见
第7.2节“数据库备份方法”
。
不支持从MySQL 8.0降级到MySQL 5.7,或从MySQL 8.0版本降级到以前的MySQL 8.0版本。 唯一支持的替代方法是 在 升级 之前 恢复备份 。 因此,在开始升级过程之前,必须备份数据。
查看 第2.11.2节“升级路径” 以确保支持您的预期升级路径。
查看 第2.11.4节“MySQL 8.0 中的更改”,了解升级前应注意的更改。 某些更改可能需要采取措施
对于已弃用和已删除的功能 ,请 查看 第1.4节“MySQL 8.0中的新 功能”。 如果您使用其中任何一项功能,升级可能需要对这些功能进行更改。
查看 第1.5节“在MySQL 8.0中添加,弃用或删除的服务器和状态变量和选项” 。 如果使用已弃用或已删除的变量,则升级可能需要更改配置。
有关修复,更改和新功能的信息,请 查看 发行说明 。
如果使用复制,请查看 第17.4.3节“升级复制设置” 。
升级过程因平台和初始安装的执行方式而异。 使用适用于当前MySQL安装的过程:
有关非Windows平台上的二进制和基于包的安装,请参见 第2.11.6节“在Unix / Linux上升级MySQL二进制或基于包的安装” 。
对于受支持的Linux发行版,升级基于包的安装的首选方法是使用MySQL软件存储库(MySQL Yum存储库,MySQL APT存储库和MySQL SLES存储库)。
有关使用MySQL Yum存储库在Enterprise Linux平台或Fedora上安装的信息,请参见 第2.11.7节“使用MySQL Yum存储库升级MySQL” 。
有关使用MySQL APT存储库在Ubuntu上安装的信息,请参见 第2.11.8节“使用MySQL APT存储库升级MySQL” 。
有关使用MySQL SLES存储库在SLES上安装的信息,请参见 第2.11.9节“使用MySQL SLES存储库升级MySQL” 。
有关使用Docker执行的安装,请参见 第2.11.11节“升级MySQL的Docker安装” 。
有关Windows上的安装,请参见 第2.11.10节“在Windows上升级MySQL” 。
如果您的MySQL安装包含大量数据,这些数据可能需要很长时间才能在就地升级后进行转换,那么创建测试实例以评估所需的转换以及执行它们所涉及的工作可能会很有用。
要创建测试实例,请复制包含
mysql
数据库的
MySQL实例
和没有数据的其他数据库。
在测试实例上运行升级过程以评估执行实际数据转换所涉及的工作。
当您安装或升级到新版本的MySQL时,建议重建并重新安装MySQL语言接口。
这适用于MySQL接口,如PHP
mysql
扩展和Perl
DBD::mysql
模块。
支持从MySQL 5.7升级到8.0。 但是,仅在通用可用性(GA)版本之间支持升级。 对于MySQL 8.0,您需要从MySQL 5.7 GA版本(5.7.9或更高版本)升级。 不支持从MySQL的非GA版本升级。
在升级到下一版本之前,建议升级到最新版本。 例如,在升级到MySQL 8.0之前升级到最新的MySQL 5.7版本。
不支持跳过版本的升级。 例如,不支持直接从MySQL 5.6升级到8.0。
一旦发布系列达到一般可用性(GA)状态,就支持在发行系列(从一个GA版本到另一个GA版本)内进行升级。
例如,从MySQL 8.0升级。
x
到8.0。
y
得到支持。
(不支持升级涉及开发状态非GA版本。)也支持跳过发行版。
例如,从MySQL 8.0升级。
x
到8.0。
z
得到支持。
MySQL 8.0.11是MySQL 8.0发行版系列中的第一个GA状态版本。
安装新版本的MySQL可能需要升级现有安装的这些部分:
该
mysql
系统架构,其中包含存储由它运行MySQL服务器所需的信息表(见
第5.3节,“MySQL的系统架构”
)。
mysql
架构表分为两大类:
数据字典表,用于存储数据库对象元数据。
系统表(即剩余的非数据字典表),用于其他操作目的。
其他模式,其中一些是内置的,可能被 服务器 视为 “ 拥有 ” ,而其他模式则不是:
性能架构
INFORMATION_SCHEMA
和
sys
架构。
用户架构。
两个不同的版本号与可能需要升级的安装部分相关联:
数据字典版本。 这适用于数据字典表。
服务器版本,也称为MySQL版本。 这适用于其他模式中的系统表和对象。
在这两种情况下,适用于现有MySQL安装的实际版本都存储在数据字典中,并且当前的预期版本将编译到新版本的MySQL中。 当实际版本低于当前预期版本时,与该版本关联的安装的那些部分必须升级到当前版本。 如果两个版本都指示需要升级,则必须首先进行数据字典升级。
作为刚刚提到的两个不同版本的反映,升级分两步进行:
第1步:数据字典升级。
此步骤升级:
mysql
架构中
的数据字典表
。
如果实际数据字典版本低于当前预期版本,则服务器创建具有更新定义的数据字典表,将持久化元数据复制到新表,原子地用新表替换旧表,并重新初始化数据字典。
性能模式和
INFORMATION_SCHEMA
。
第2步:服务器升级。
此步骤包括所有其他升级任务。 如果现有MySQL安装的服务器版本低于新安装的MySQL版本的服务器版本,则必须升级其他所有内容:
模式中的系统表
mysql
(剩余的非数据字典表)。
该
sys
架构。
用户架构。
数据字典升级(步骤1)是服务器的责任,服务器在启动时根据需要执行此任务,除非使用阻止它执行此操作的选项进行调用。
该选项是
--upgrade=NONE
MySQL 8.0.16
--no-dd-upgrade
之前的MySQL 8.0.16。
如果数据字典已过期但服务器无法升级,则服务器将无法运行并退出并显示错误。 例如:
[错误] [MY-013381] [服务器]服务器因升级而关闭 必需的,但命令行选项'--upgrade = NONE'禁止。 [错误] [MY-010334] [服务器]无法初始化DD存储引擎 [错误] [MY-010020] [服务器]数据字典初始化失败。
MySQL 8.0.16中对步骤2的责任进行了一些更改:
在MySQL 8.0.16之前,
mysql_upgrade会
升级
INFORMATION_SCHEMA
第2步中描述
的Performance Schema,the
和对象
。在启动服务器之后
,DBA
应该
手动
调用
mysql_upgrade
。
从MySQL 8.0.16开始,服务器执行以前由 mysql_upgrade 处理的所有任务 。 虽然升级仍然是两步操作,但服务器同时执行它们,从而使过程更简单。
根据要升级的MySQL版本, 就地升级 和 逻辑升级中的 说明指示服务器是执行所有升级任务还是 在服务器启动后 还必须调用 mysql_upgrade 。
由于服务器升级了性能模式,
INFORMATION_SCHEMA
以及从MySQL 8.0.16开始的步骤2中描述的对象,
因此
不需要
mysql_upgrade,
并且从该版本开始不推荐使用
mysql_upgrade
,并且将在以后的MySQL版本中删除。
在步骤2中发生的事情的大多数方面在MySQL 8.0.16之前和之后是相同的,尽管可能需要不同的命令选项来实现特定效果。
从MySQL 8.0.16开始,
--upgrade
服务器选项控制服务器在启动时是否以及如何执行自动升级:
没有选项或者没有选项
--upgrade=AUTO
,服务器会升级它确定为过时的任何内容(步骤1和2)。
有
--upgrade=NONE
,服务器什么都不升级(跳过步骤1和2),但如果必须升级数据字典,也会退出并出错。
使用过时的数据字典运行服务器是不可能的;
服务器坚持要么升级要么退出。
使用
--upgrade=MINIMAL
,服务器升级数据字典,性能模式,并在
INFORMATION_SCHEMA
必要时(步骤1)。
请注意,使用此选项进行升级后,无法启动组复制,因为复制内部所依赖的系统表未更新,并且在其他区域中也可能显示减少的功能。
使用
--upgrade=FORCE
,服务器升级数据字典,性能模式,并在
INFORMATION_SCHEMA
必要时(步骤1),并强制升级其他所有内容(步骤2)。
使用此选项预计服务器启动需要更长时间,因为服务器会检查所有模式中的所有对象。
FORCE
如果服务器认为不需要,则强制执行第2步操作。
FORCE
与
此
不同的
一种方法
AUTO
是,
FORCE
服务器重新创建系统表,如帮助表或时区表(如果缺少)。
以下列表显示了MySQL 8.0.16之前的升级命令以及MySQL 8.0.16及更高版本的等效命令:
执行正常升级(必要时执行步骤1和2):
在MySQL 8.0.16之前: mysqld 后跟 mysql_upgrade
从MySQL 8.0.16开始: mysqld
根据需要仅执行步骤1:
在MySQL 8.0.16之前:不能执行步骤1中描述的所有升级任务,同时排除步骤2中描述的任务。但是,您可以避免
sys
使用
mysqld
升级用户模式和
模式,
然后
使用
和
选项
mysql_upgrade
。
--upgrade-system-tables
--skip-sys-schema
根据需要执行步骤1,并强制执行步骤2:
在MySQL 8.0.16之前: mysqld 后跟 mysql_upgrade --force
在MySQL 8.0.16之前,某些
mysql_upgrade
选项会影响它执行的操作。
下表显示了
--upgrade
从MySQL 8.0.16开始使用
哪些服务器
选项值来实现类似的效果。
(这些不一定是完全等价的,因为给定的
--upgrade
选项值可能会产生额外的影响。)
mysql_upgrade选项 | 服务器选项 |
---|---|
--skip-sys-schema |
--upgrade=NONE
要么
--upgrade=MINIMAL
|
--upgrade-system-tables |
--upgrade=NONE
要么
--upgrade=MINIMAL
|
--force |
--upgrade=FORCE |
有关升级步骤2期间发生的事情的其他说明:
sys
如果未安装架构,则
步骤2安装
架构,否则将其升级到当前版本。
如果
sys
模式存在但没有
version
视图,
则会发生错误
,前提是缺少它表示用户创建的模式:
存在没有sys.version视图的sys模式。如果 你有一个用户创建的sys模式,必须重命名为 升级成功。
要在这种情况下升级,请先删除或重命名现有
sys
架构。
然后再次执行升级过程。
(可能有必要强制执行第2步。)
要阻止
sys
架构检查:
从MySQL 8.0.16开始:使用
--upgrade=NONE
或
--upgrade=MINIMAL
选项
启动服务器
。
在MySQL 8.0.16之前:
使用该
选项
调用
mysql_upgrade
--skip-sys-schema
。
步骤2根据需要处理所有用户模式中的所有表。
表检查可能需要很长时间才能完成。
每个表都被锁定,因此在处理其他会话时不可用。
检查和维修操作可能非常耗时,特别是对于大型桌子。
表检查使用
语句
的
FOR UPGRADE
选项
CHECK
TABLE
。
有关此选项所需内容的详细信息,请参见
第13.7.3.2节“CHECK TABLE语法”
。
要防止表检查:
从MySQL 8.0.16开始:使用
--upgrade=NONE
或
--upgrade=MINIMAL
选项
启动服务器
。
在MySQL 8.0.16之前:
使用该
选项
调用
mysql_upgrade
--upgrade-system-tables
。
强制表检查:
从MySQL 8.0.16开始:使用该
--upgrade=FORCE
选项
启动服务器
。
在MySQL 8.0.16之前:
使用该
选项
调用
mysql_upgrade
--force
。
步骤2将MySQL版本号保存
mysql_upgrade_info
在数据目录
中指定的文件
中。
忽略该
mysql_upgrade_info
文件并执行检查,无论如何:
从MySQL 8.0.16开始:使用该
--upgrade=FORCE
选项
启动服务器
。
在MySQL 8.0.16之前:
使用该
选项
调用
mysql_upgrade
--force
。
该
mysql_upgrade_info
文件已弃用,将在以后的MySQL版本中删除。
步骤2使用当前的MySQL版本号标记所有已检查和已修复的表。 这确保了下次使用相同版本的服务器进行升级检查时,可以确定是否需要再次检查或修复给定表。
步骤2升级系统表以确保它们具有当前结构。 无论服务器还是 mysql_upgrade 执行该步骤, 都是如此 。 关于帮助表和时区表的内容, mysql_upgrade 不加载任何类型的表,而服务器加载帮助表,但不加载时区表。 (也就是说,在MySQL 8.0.16之前,服务器仅在数据目录初始化时加载帮助表。从MySQL 8.0.16开始,它在初始化和升级时加载帮助表。)加载时区表的过程是依赖于平台的,需要DBA做出决策,所以不能自动完成。
在升级到MySQL 8.0之前,请查看本节中描述的更改,以确定适用于当前MySQL安装和应用程序的更改。 执行任何建议的操作。
标记为 不兼容更改的更改 与早期版本的MySQL不兼容, 在升级之前 可能需要您的注意 。 我们的目标是避免这些变化,但偶尔也需要纠正比版本之间不兼容更糟糕的问题。 如果适用于您的安装的升级问题涉及不兼容性,请按照说明中给出的说明进行操作。
MySQL Server 8.0包含一个全局数据字典,其中包含有关事务表中数据库对象的信息。 在以前的MySQL系列中,字典数据存储在元数据文件和非事务系统表中。 因此,升级过程要求您通过检查特定的先决条件来验证安装的升级准备情况。 有关更多信息,请参见 第2.11.5节“准备升级安装” 。 启用数据字典的服务器需要一些一般的操作差异; 请参见 第14.7节“数据字典使用差异” 。
该
caching_sha2_password
和
sha256_password
认证插件提供比更安全的密码加密
mysql_native_password
插件,并
caching_sha2_password
提供了比更好的性能
sha256_password
。
由于这些优越的安全性和性能特征
caching_sha2_password
,它是MySQL 8.0的首选认证插件,也是默认的认证插件而不是
mysql_native_password
。
此更改会影响服务器和
libmysqlclient
客户端库:
对于服务器,
default_authentication_plugin
系统变量
的默认值
从更改
mysql_native_password
为
caching_sha2_password
。
此更改仅适用于安装或升级到MySQL 8.0或更高版本后创建的新帐户。
对于已升级安装中已存在的帐户,其身份验证插件保持不变。
希望切换到的现有用户
caching_sha2_password
可以使用以下
ALTER
USER
语句
执行此操作
:
更改用户user
通过caching_sha2_password识别 BY'password
';
该
libmysqlclient
库将其
caching_sha2_password
视为默认的身份验证插件而不是
mysql_native_password
。
以下部分讨论了更突出的作用的含义
caching_sha2_password
:
如果您的MySQL安装必须为8.0之前的客户端提供服务,并且在升级到MySQL 8.0或更高版本后遇到兼容性问题,解决这些问题并恢复8.0之前的兼容性的最简单方法是重新配置服务器以恢复到以前的默认身份验证插件(
mysql_native_password
)。
例如,在服务器选项文件中使用以下行:
的[mysqld] default_authentication_plugin = mysql_native_password
该设置允许8.0之前的客户端连接到8.0服务器,直到您的安装中使用的客户端和连接器升级为了解
caching_sha2_password
。
但是,该设置应被视为临时设置,而不是长期或永久性解决方案,因为它会导致使用有效设置创建的新帐户放弃提供的改进的身份验证安全性
caching_sha2_password
。
使用
caching_sha2_password
提供更安全的密码哈希
mysql_native_password
(以及随之改进的客户端连接身份验证)。
但是,它还具有可能影响现有MySQL安装的兼容性问题:
未经更新了解的客户端和连接器
caching_sha2_password
可能无法连接到配置
caching_sha2_password
为默认身份验证插件
的MySQL 8.0服务器
,甚至使用未通过身份验证的帐户
caching_sha2_password
。
出现此问题的原因是服务器为客户端指定其默认身份验证插件的名称。
如果客户端或连接器基于未正常处理无法识别的默认身份验证插件的客户端/服务器协议实现,则可能会失败并显示以下错误之一:
不支持身份验证插件“caching_sha2_password”
无法加载身份验证插件“caching_sha2_password”: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so,2): 图像未找到
警告:mysqli_connect():服务器请求身份验证 客户端未知的方法[caching_sha2_password]
有关编写连接器以便正常处理来自服务器的未知默认身份验证插件请求的信息,请参阅 身份验证插件连接器 - 编写注意事项 。
使用经过身份验证的帐户的客户端
caching_sha2_password
必须使用安全连接(使用TCP使用TLS / SSL凭据,Unix套接字文件或共享内存制作),或使用RSA密钥对支持密码交换的未加密连接。
此安全要求不适用
mysql_native_passsword
,因此切换到
caching_sha2_password
可能需要其他配置(请参见
第6.4.1.3节“缓存SHA-2可插入身份验证”
)。
但是,默认情况下,MySQL 8.0中的客户端连接更喜欢使用TLS / SSL,因此已满足该首选项的客户端可能不需要其他配置。
尚未更新以了解的客户端和连接器
caching_sha2_password
无法
连接到通过身份验证的帐户,
caching_sha2_password
因为他们无法将此插件识别为有效。
(这是客户端/服务器身份验证插件兼容性要求如何应用的特定实例,如
身份验证插件客户端/服务器兼容性中所述
。)要解决此问题,请
libmysqlclient
从MySQL 8.0或更高版本
重新链接客户端
,或获取可识别的更新连接器
caching_sha2_password
。
因为
caching_sha2_password
现在也是
libmysqlclient
客户端库中
的默认身份验证插件,所以
身份验证需要客户端/服务器协议中的额外往返,以便从MySQL 8.0客户端连接到使用
mysql_native_password
(以前的默认身份验证插件)的
帐户
,除非调用客户端程序一个
--default-auth=mysql_native_password
选择。
libmysqlclient
8.0之前的MySQL版本
的
客户端库能够连接到MySQL 8.0服务器(通过身份验证的帐户除外
caching_sha2_password
)。
这意味着基于的8.0之前的客户端
libmysqlclient
也应该能够连接。
例子:
标准的MySQL客户端,如
mysql
和
mysqladmin
都是
libmysqlclient
基于的。
Perl DBI的DBD :: mysql驱动程序是
libmysqlclient
基于的。
MySQL Connector / Python有一个
libmysqlclient
基于
C扩展模块
。
要使用它,请
use_pure=False
在连接时
包含该
选项。
当现有的MySQL 8.0安装升级到MySQL 8.0.4或更高版本时,一些
libmysqlclient
基于
旧版本
的客户端可能会
“
自动
”
升级,如果它们是动态链接的,因为它们使用升级安装的新客户端库。
例如,如果Perl DBI的DBD :: mysql驱动程序使用动态链接,它可以
libmysqlclient
在升级到MySQL 8.0.4或更高版本后
使用
到位,结果如下:
在升级之前,使用DBD :: mysql的DBI脚本可以连接到MySQL 8.0服务器,但使用身份验证的帐户除外
caching_sha2_password
。
升级后,相同的脚本也可以使用
caching_sha2_password
帐户。
但是,之前的结果是因为
libmysqlclient
8.0.4之前的MySQL 8.0安装实例是二进制兼容的:它们都使用共享库主版本号21.对于
libmysqlclient
从MySQL 5.7或更早
版本链接的客户端
,它们链接到一个共享库不是二进制兼容的不同版本号。
在这种情况下,必须
libmysqlclient
从8.0.4或更高版本
重新编译客户端,
以便与MySQL 8.0服务器和
caching_sha2_password
帐户
完全兼容
。
MySQL Connector / J 5.1到8.0.8能够连接到MySQL 8.0服务器,但通过身份验证的帐户除外
caching_sha2_password
。
(连接到
caching_sha2_password
帐户
需要Connector / J 8.0.9或更高版本
。)
使用客户端/服务器协议实现的客户端
libmysqlclient
可能需要升级到理解新身份验证插件的较新版本。
例如,在PHP中,MySQL连接通常基于
mysqlnd
,目前还不知道
caching_sha2_password
。
在
mysqlnd
可用
的更新版本之前
,启用PHP客户端连接到MySQL 8.0的方法是重新配置服务器以恢复
mysql_native_password
为默认的身份验证插件,如前所述。
如果客户端或连接器支持显式指定默认身份验证插件的选项,请使用它来命名除以外的插件
caching_sha2_password
。
例子:
一些MySQL客户端支持一个
--default-auth
选项。
(标准MySQL客户端,如
mysql
和
mysqladmin
支持此选项,但可以在没有它的情况下成功连接到8.0服务器。但是,其他客户端可能支持类似选项。如果是这样,则值得尝试。)
使用
libmysqlclient
C API的
程序可以使用
mysql_options()
该
MYSQL_DEFAULT_AUTH
选项
调用该
函数
。
使用客户端/服务器协议的本机Python实现的MySQL Connector / Python脚本可以指定
auth_plugin
连接选项。
(或者,使用Connector / Python C Extension,它可以连接到MySQL 8.0服务器而无需使用
auth_plugin
。)
如果客户端或连接器可用且已更新以了解
caching_sha2_password
,则在连接到配置
caching_sha2_password
为默认身份验证插件
的MySQL 8.0服务器时,使用它是确保兼容性的最佳方法
。
这些客户端和连接器已升级为支持
caching_sha2_password
:
libmysqlclient
MySQL 8.0(8.0.4或更高版本)中
的
客户端库。
标准MySQL客户端(如
mysql
和
mysqladmin)
是
libmysqlclient
基于的,因此它们也是兼容的。
libmysqlclient
MySQL 5.7(5.7.23或更高版本)中
的
客户端库。
标准MySQL客户端(如
mysql
和
mysqladmin)
是
libmysqlclient
基于的,因此它们也是兼容的。
MySQL Connector / C ++ 1.1.11或更高版本或8.0.7或更高版本。
MySQL Connector / J 8.0.9或更高版本。
MySQL Connector / NET 8.0.10或更高版本(通过经典的MySQL协议)。
MySQL Connector / Node.js 8.0.9或更高版本。
PHP:X DevAPI PHP扩展(mysql_xdevapi)支持
caching_sha2_password
。
PHP:PDO_MySQL和ext / mysqli扩展不支持
caching_sha2_password
。
此外,当与7.1.16之前的PHP版本和7.2.4之前的PHP 7.2一起使用时,
default_authentication_plugin=caching_sha2_password
即使
caching_sha2_password
未使用
它们也无法连接
。
对于MySQL 8.0的升级,身份验证插件现有帐户保持不变,包括
'root'@'localhost'
管理帐户
的插件
。
对于新的MySQL 8.0安装,在初始化数据目录时(使用
第2.10.1节“初始化数据目录”中的说明
),将
'root'@'localhost'
创建帐户,并且该帐户
caching_sha2_password
默认
使用
。
要在数据目录初始化后连接到服务器,您必须使用支持的客户端或连接器
caching_sha2_password
。
如果您可以这样做但更喜欢
在安装后
root
使用
该
帐户
mysql_native_password
,请安装MySQL并像往常一样初始化数据目录。
然后连接到服务器,
root
并按
ALTER
USER
如下方式
使用
以更改帐户身份验证插件和密码:
更改用户'root'@'localhost'
使用mysql_native_password标识
BY' password
';
如果您使用的客户端或连接器尚不支持
caching_sha2_password
,则可以使用修改后的数据目录初始化过程,该过程会在创建
root
帐户后
mysql_native_password
立即
将
帐户与
该
帐户
相关联
。
为此,请使用以下任一技术:
--default-authentication-plugin=mysql_native_password
随附
--initialize
或
提供
选项
--initialize-insecure
。
设置
default_authentication_plugin
为
mysql_native_password
选项文件,并使用
--defaults-file
选项和
--initialize
or
命名该选项文件
--initialize-insecure
。
(在这种情况下,如果您继续将该选项文件用于后续服务器启动,则将创建新帐户,
mysql_native_password
而不是
caching_sha2_password
除非您
default_authentication_plugin
从选项文件中
删除该
设置。)
在所有服务器已升级到MySQL 8.0.4或更高版本的复制方案中,与主/主服务器的从/副本连接可以使用通过身份验证的帐户
caching_sha2_password
。
对于此类连接,同样的要求适用于使用通过身份验证的帐户的其他客户端
caching_sha2_password
:使用安全连接或基于RSA的密码交换。
要连接到
caching_sha2_password
主/从复制
的
帐户:
对于使用OpenSSL构建的MySQL,请使用以下任一
CHANGE
MASTER TO
选项:
MASTER_SSL = 1
GET_MASTER_PUBLIC_KEY = 1
MASTER_PUBLIC_KEY_PATH =' path to RSA public key file
'
对于MySQL使用wolfSSL建成,使用
MASTER_SSL=1
带
CHANGE
MASTER TO
。
或者,如果在服务器启动时提供了所需的密钥,则可以使用与RSA公钥相关的选项。
要连接到
caching_sha2_password
组复制
的
帐户:
对于使用OpenSSL构建的MySQL,请设置以下任何系统变量:
SET GLOBAL group_replication_recovery_use_ssl = ON;
SET GLOBAL group_replication_recovery_get_public_key = 1;
SET GLOBAL group_replication_recovery_public_key_path =' path to RSA public key file
';
对于使用wolfSSL构建的MySQL,请设置此系统变量:
SET GLOBAL group_replication_recovery_use_ssl = ON;
或者,如果在服务器启动时提供了所需的密钥,则可以使用与RSA公钥相关的选项。
不兼容的变化
:MySQL存储引擎现在负责提供自己的分区处理程序,MySQL服务器不再提供通用的分区支持。
InnoDB
并且
NDB
是唯一提供MySQL 8.0支持的本机分区处理程序的存储引擎。
必须更改使用任何其他存储引擎的分区表 - 要么
在
升级服务器
之前
将其
转换为
InnoDB
或
NDB
,要么删除其分区
,否则之后无法使用它。
有关将
MyISAM
表
转换为的信息
InnoDB
,请参见
第15.6.1.3节“将表从MyISAM转换为InnoDB”
。
表创建语句将导致使用没有此类支持的存储引擎的分区表失败,并
在MySQL 8.0中
出现错误(
ER_CHECK_NOT_IMPLEMENTED
)。
如果使用
mysqldump
将
MySQL 5.7(或更早版本)中创建的转储文件导入
到MySQL 8.0服务器中,则必须确保创建分区表的任何语句都不指定不受支持的存储引擎,方法是删除对分区的任何引用,或者通过将存储引擎指定
InnoDB
为
InnoDB
默认
设置或允许将其设置为
默认设置。
第2.11.5节“准备升级安装”中 给出的过程 描述了如何识别在升级到MySQL 8.0之前必须更改的分区表。
有关详细 信息, 请参见 第23.6.2节“分区与存储引擎相关的限制” 。
不兼容的更改 :未使用并删除了多个服务器错误代码(有关列表,请参阅 MySQL 8.0中删除的功能 )。 应更新专门针对其中任何一个测试的应用程序。
重要更改
:默认字符集已更改
latin1
为
utf8mb4
。
这些系统变量受到影响:
在默认值
character_set_server
和
character_set_database
系统变量已经从
latin1
到
utf8mb4
。
在默认值
collation_server
和
collation_database
系统变量已经从
latin1_swedish_ci
到
utf8mb4_0900_ai_ci
。
因此,除非指定了显式字符集和排序规则,否则新对象的默认字符集和排序规则与以前不同。
这包括数据库和其中的对象,例如表,视图和存储的程序。
假设使用了以前的默认值,保留它们的一种方法是使用
my.cnf
文件中的
这些行启动服务器
:
的[mysqld] 被character_set_server = LATIN1 collation_server的= latin1_swedish_ci
在复制设置中,从MySQL 5.7升级到8.0时,建议在升级之前将默认字符集更改回MySQL 5.7中使用的字符集。
升级完成后,可以将默认字符集更改为
utf8mb4
。
不兼容的更改
:从MySQL 8.0.11开始,禁止
lower_case_table_names
使用与初始化
服务器时使用的
设置不同的设置启动服务器。
限制是必要的,因为各种数据字典表字段使用的排序规则基于
lower_case_table_names
初始化服务器时定义
的
设置,并且使用不同的设置重新启动服务器会导致标识符的排序和比较方式不一致。
在MySQL 8.0.11中,删除了与帐户管理相关的一些已弃用的功能,例如使用该
GRANT
语句修改用户帐户的非特权,
NO_AUTO_CREATE_USER
SQL模式,
PASSWORD()
函数和
old_passwords
系统变量。
从MySQL 5.7到8.0的引用这些已删除功能的语句的复制可能导致复制失败。 应修改使用任何已删除功能的应用程序以避免它们并尽可能使用替代方法,如 MySQL 8.0中删除的功能中 所述 。
要避免MySQL 8.0上的启动失败,请
NO_AUTO_CREATE_USER
从
sql_mode
MySQL选项文件中
删除
系统变量设置的
任何实例
。
将包含
NO_AUTO_CREATE_USER
存储的程序定义中
的
SQL模式
的转储文件加载
到MySQL 8.0服务器会导致失败。
从MySQL 5.7.24和MySQL 8.0.13开始,
mysqldump
NO_AUTO_CREATE_USER
从存储的程序定义中
删除
。
mysqldump
必须手动修改
使用早期版本创建的转储文件
以删除实例
NO_AUTO_CREATE_USER
。
在MySQL 8.0.11,这些过时兼容性SQL模式被拆除:
DB2
,
MAXDB
,
MSSQL
,
MYSQL323
,
MYSQL40
,
ORACLE
,
POSTGRESQL
,
NO_FIELD_OPTIONS
,
NO_KEY_OPTIONS
,
NO_TABLE_OPTIONS
。
它们不能再分配给
sql_mode
系统变量或用作
mysqldump
--compatible
选项的
允许值
。
删除
MAXDB
意味着
TIMESTAMP
数据类型为
CREATE
TABLE
或
ALTER
TABLE
不再被视为
DATETIME
。
从MySQL 5.7到8.0的引用已删除的SQL模式的语句的复制可能导致复制失败。
这包括复制
CREATE
存储程序(存储过程和函数,触发器和事件)
的
语句,
这些
语句在当前
sql_mode
值包括任何删除的模式时执行。
应修改使用任何已删除模式的应用程序以避免它们。
从MySQL 8.0.3开始,空间数据类型允许一个
SRID
属性,以明确指示存储在列中的值的空间参照系(SRS)。
请参见
第11.5.1节“空间数据类型”
。
具有显式
SRID
属性的
空间列
受SRID限制:该列仅采用具有该ID的值,并且
SPATIAL
该列上的索引将由优化程序使用。
优化程序忽略
SPATIAL
没有
SRID
属性的
空间列上的索引
。
请参见
第8.3.3节“空间索引优化”
。
如果希望优化程序考虑
SPATIAL
非SRID限制的空间列上的索引,则应修改每个此类列:
验证列中的所有值是否具有相同的SRID。
要确定几何列中包含的SRID
col_name
,请使用以下查询:
SELECT DISTINCT ST_SRID(col_name
)FROMtbl_name
;
如果查询返回多行,则该列包含多个SRID。 在这种情况下,请修改其内容,以使所有值具有相同的SRID。
重新定义列以具有显式
SRID
属性。
重新创建
SPATIAL
索引。
MySQL 8.0.0中删除了几个空间函数,原因是空间函数名称空间更改
ST_
为执行精确操作的函数
实现了
前缀,或者
MBR
为基于最小边界矩形执行操作的函数添加
了
前缀。
在生成的列定义中使用已删除的空间函数可能会导致升级失败。
在升级前,运行
mysqlcheck的--check升级
为删除空间的功能,并更换,你与他们的发现
ST_
或
MBR
命名的替代品。
有关已删除空间函数的列表,请参阅
MySQL 8.0中删除的功能
。
在执行就地升级到MySQL 8.0.3或更高版本时,
该
BACKUP_ADMIN
权限会自动授予具有该
RELOAD
权限的
用户
。
从MySQL 8.0.13开始,由于基于行或混合复制模式与基于语句的复制模式之间的区别在于处理临时表的方式,因此在运行时切换二进制日志记录格式存在新的限制。
SET @@SESSION.binlog_format
如果会话有任何打开的临时表,则无法使用。
SET @@global.binlog_format
SET @@persist.binlog_format
如果任何复制通道有任何打开的临时表
,
则无法使用。
SET
@@persist_only.binlog_format
如果复制通道具有打开的临时表,则允许,因为不同
PERSIST
,
PERSIST_ONLY
不会修改运行时全局系统变量值。
SET @@global.binlog_format
SET @@persist.binlog_format
如果正在运行任何复制通道应用程序
,
则无法使用。
这是因为更改仅在重新启动其应用程序时在复制通道上生效,此时复制通道可能具有打开的临时表。
此行为比以前更具限制性。
SET
@@persist_only.binlog_format
如果任何复制通道应用程序正在运行,则允许
INFORMATION_SCHEMA
基于
InnoDB
系统表的视图被数据字典表上的内部系统视图替换。
受影响的
InnoDB
INFORMATION_SCHEMA
视图已重命名:
表2.15重命名了InnoDB信息模式视图
旧名 | 新名字 |
---|---|
INNODB_SYS_COLUMNS |
INNODB_COLUMNS |
INNODB_SYS_DATAFILES |
INNODB_DATAFILES |
INNODB_SYS_FIELDS |
INNODB_FIELDS |
INNODB_SYS_FOREIGN |
INNODB_FOREIGN |
INNODB_SYS_FOREIGN_COLS |
INNODB_FOREIGN_COLS |
INNODB_SYS_INDEXES |
INNODB_INDEXES |
INNODB_SYS_TABLES |
INNODB_TABLES |
INNODB_SYS_TABLESPACES |
INNODB_TABLESPACES |
INNODB_SYS_TABLESTATS |
INNODB_TABLESTATS |
INNODB_SYS_VIRTUAL |
INNODB_VIRTUAL |
升级到MySQL 8.0.3或更高版本后,更新引用先前
InnoDB
INFORMATION_SCHEMA
视图名称的
所有脚本
。
与MySQL捆绑在一起 的 zlib库 版本从1.2.3版本升级到版本1.2.11。
compressBound()
zlib 1.2.11中
的zlib
函数返回比压缩给定长度的字节所需的缓冲区大小略高的估计值,而不是zlib 1.2.3版本。
该
compressBound()
函数的调用
InnoDB
,决定创建压缩时允许的最大行大小的功能
InnoDB
表或将行插入压缩
InnoDB
表。
其结果是,
CREATE
TABLE ... ROW_FORMAT=COMPRESSED
或
INSERT
与行大小非常接近成功在早期版本中,现在可能会失败的最大行大小操作。
如果您有大行的压缩
InnoDB
表,建议您
CREATE
TABLE
在升级之前在MySQL 8.0测试实例上
测试压缩表
语句。
随着该
--innodb-directories
功能
的引入,
应该将使用绝对路径或在数据目录之外的位置创建的每表文件和一般表空间文件的位置添加到
innodb_directories
参数值。
否则,
InnoDB
在恢复期间无法找到这些文件。
要查看表空间文件位置,请查询
INFORMATION_SCHEMA.FILES
表:
来自INFORMATION_SCHEMA.FILES \ G的SELECT TABLESPACE_NAME,FILE_NAME
撤消日志不能再驻留在系统表空间中。 在MySQL 8.0中,默认情况下,undo logs驻留在两个undo表空间中。 有关更多信息,请参见 第15.6.3.4节“撤消表空间” 。
从MySQL 5.7升级到MySQL 8.0时,将删除MySQL 5.7实例中存在的任何撤消表空间,并替换为两个新的默认撤消表空间。
在
innodb_undo_directory
变量
定义的位置创建默认的撤消表空间
。
如果
innodb_undo_directory
变量未定义,则在数据目录中创建撤消表空间。
从MySQL 5.7升级到MySQL 8.0需要慢速关闭,以确保MySQL 5.7实例中的撤消表空间为空,允许安全删除它们。
从早期的MySQL 8.0版本升级到MySQL 8.0.14或更高版本时,由于
innodb_undo_tablespaces
设置大于2而
在升级前实例中存在的撤消表空间
被视为用户定义的撤消表空间,可以取消激活和删除
升级后分别
使用
ALTER
UNDO
TABLESPACE
和
DROP
UNDO
TABLESPACE
语法。
MySQL 8.0发行版系列中的升级可能并不总是需要慢速关闭,这意味着现有的撤消表空间可能包含撤消日志。
因此,升级过程不会删除现有的撤消表空间。
不兼容的更改
:从MySQL 8.0.17开始,该
CREATE
TABLESPACE ... ADD DATAFILE
子句不允许循环目录引用。
例如,
/../
不允许以下语句中
的循环目录reference(
):
CREATE TABLESPACE ts1添加DATAFILE ts1.ibd' any_directory
/../ts1.ibd';
Linux上存在限制的例外情况,如果前面的目录是符号链接,则允许使用循环目录引用。
例如,如果
any_directory
是符号链接
,则允许上述示例中的数据文件路径
。
(仍然允许数据文件路径以'
../
'
开头
。)
要避免升级问题,请在升级到MySQL 8.0.17或更高版本之前从表空间数据文件路径中删除任何循环目录引用。
要检查表空间路径,请查询该
INFORMATION_SCHEMA.INNODB_DATAFILES
表。
不兼容的更改
:从MySQL 8.0.13开始,
已删除
了不推荐使用
的
子句
ASC
或
DESC
限定符
GROUP
BY
。
以前依赖于
GROUP BY
排序的
查询
可能会产生与以前的MySQL版本不同的结果。
要生成给定的排序顺序,请提供一个
ORDER
BY
子句。
应修改
MySQL 8.0.12或更低版本中使用
ASC
或
DESC
限定
GROUP
BY
条款的
查询和存储的程序定义
。
否则,升级到MySQL 8.0.13或更高版本可能会失败,因为可能会复制到MySQL 8.0.13或更高版本的从属服务器。
MySQL 8.0中可能会保留一些未在MySQL 5.7中保留的关键字。 请参见 第9.3节“关键字和保留字” 。 这可能导致以前用作标识符的单词变为非法。 要修复受影响的语句,请使用标识符引用。 请参见 第9.2节“架构对象名称” 。
升级后,建议您测试应用程序代码中指定的优化程序提示,以确保仍需要提示才能实现所需的优化策略。 优化程序增强功能有时会使某些优化程序提示变得不必要。 在某些情况下,不必要的优化器提示甚至可能适得其反。
不兼容的更改
:在MySQL 5.7中,
FOREIGN KEY
为
InnoDB
没有
子句
的
表
指定
定义
,或指定
不带a
的
关键字
,会导致
使用生成的约束名称。
在MySQL 8.0中,该行为发生了变化,
使用了
值而不是生成的名称。
由于每个模式(数据库)的约束名称必须是唯一的,因此更改会导致由于每个模式不唯一的外键索引名称而导致的错误。
为避免此类错误,新的约束命名行为已在MySQL 8.0.16中恢复,并且
CONSTRAINT
symbol
CONSTRAINT
symbol
InnoDB
InnoDB
FOREIGN KEY
index_name
InnoDB
再次使用生成的约束名称。
为了与之一致
InnoDB
,
NDB
基于MySQL 8.0.16或更高版本的发行版使用生成的约束名称(如果
未指定子句),或者
指定关键字时不使用
。
基于MySQL 5.7和更早版本的MySQL 8.0版本使用了该
值。
CONSTRAINT
symbol
CONSTRAINT
symbol
NDB
FOREIGN KEY
index_name
上述更改可能会为依赖于先前外键约束命名行为的应用程序引入不兼容性。
在升级到最新的MySQL 8.0版本之前,请通过执行下面描述的初步检查来确保当前MySQL 5.7或MySQL 8.0服务器实例的升级准备情况。 否则升级过程可能会失败。
可以使用MySQL Shell升级检查器实用程序执行相同的检查和其他检查。 有关更多信息,请参阅 Upgrade Checker实用程序 。
初步检查:
不得出现以下问题:
必须没有使用过时数据类型或函数的表。
如果表包含5.6.4之前格式的旧时间列(
TIME
和
DATETIME
,
TIMESTAMP
不支持小数秒精度的列),则不支持
就地升级到MySQL 8.0
。
如果您的表仍使用旧的临时列格式,请在尝试就地升级到MySQL 8.0之前升级它们。
有关更多信息,请参阅
服务器更改
。
必须没有孤立
.frm
文件。
触发器不能有遗漏或空的定义者或无效的创作环境(由表示
character_set_client
,
collation_connection
,
Database
Collation
属性所显示
SHOW
TRIGGERS
或
INFORMATION_SCHEMA
TRIGGERS
表)。
要检查这些问题,请执行以下命令:
mysqlcheck -u root -p --all-databases --check-upgrade
如果 mysqlcheck 报告任何错误,请更正问题。
必须没有使用没有本机分区支持的存储引擎的分区表。 要识别此类表,请执行以下查询:
SELECT TABLE_SCHEMA,TABLE_NAME 来自INFORMATION_SCHEMA.TABLES 哪里没有引擎('innodb','ndbcluster') AND CREATE_OPTIONS LIKE'%partitioned%';
查询报告的任何表必须更改为使用
InnoDB
或未分区。
要将表存储引擎更改为
InnoDB
,请执行以下语句:
ALTER TABLE table_name
ENGINE = INNODB;
有关将
MyISAM
表
转换为的信息
InnoDB
,请参见
第15.6.1.3节“将表从MyISAM转换为InnoDB”
。
要使分区表不分区,请执行以下语句:
ALTER TABLE table_name
删除分区;
MySQL 8.0中可能会保留一些以前未保留的关键字。 请参见 第9.3节“关键字和保留字” 。 这可能导致以前用作标识符的单词变为非法。 要修复受影响的语句,请使用标识符引用。 请参见 第9.2节“架构对象名称” 。
MySQL 5.7
mysql
系统数据库中必须没有与MySQL 8.0数据字典使用的表同名的表。
要识别具有这些名称的表,请执行以下查询:
SELECT TABLE_SCHEMA,TABLE_NAME 来自INFORMATION_SCHEMA.TABLES WHERE LOWER(TABLE_SCHEMA)='mysql' 和LOWER(TABLE_NAME)IN ( “目录”, 'character_sets', 'CHECK_CONSTRAINTS', “归类”, 'column_statistics', 'column_type_elements', '列', 'dd_properties', “事件”, 'foreign_key_column_usage', 'foreign_keys', 'index_column_usage', 'index_partitions', 'INDEX_STATS', “指标”, 'parameter_type_elements', “参数”, 'resource_groups', “套路”, “图式”, 'ST_SPATIAL_REFERENCE_SYSTEMS', 'table_partition_values', 'table_partitions', 'table_stats', “表”, 'tablespace_files', “表空间”, “触发”, 'view_routine_usage', 'view_table_usage' );
必须重命名(使用
RENAME
TABLE
)
查询报告的任何表
。
这也可能需要更改使用受影响表的应用程序。
必须没有具有超过64个字符的外键约束名称的表。 要识别具有太长约束名称的表,请执行以下查询:
SELECT TABLE_SCHEMA,TABLE_NAME 来自INFORMATION_SCHEMA.TABLES 在哪里TABLE_NAME IN (SELECT LEFT(SUBSTR(ID,INSTR(ID,'/')+ 1), INSTR(SUBSTR(ID,INSTR(ID, '/')+ 1), '_ ibfk _') - 1) 来自INFORMATION_SCHEMA.INNODB_SYS_FOREIGN WHERE LENGTH(SUBSTR(ID,INSTR(ID,'/')+ 1))> 64);
必须更改查询报告的任何表,使其约束名称不超过64个字符(使用
ALTER
TABLE
)。
必须不是
sql_mode
系统变量设置中
定义的过时SQL模式
。
尝试使用过时的SQL模式将导致MySQL 8.0启动失败。
还应修改使用过时SQL模式的应用程序以避免它们。
有关在MySQL 8.0中删除的SQL模式的信息,请参阅
服务器更改
。
必须没有
包含超过255个字符或1020个字节的
单个
ENUM
或
SET
列元素的
表或存储过程
。
之前的MySQL 8.0,的最大组合长度
ENUM
或
SET
列元素是64K。
在MySQL 8.0中,单个
ENUM
或
SET
列元素
的最大字符长度
为255个字符,最大字节长度为1020个字节。
(1020字节限制支持多字节字符集)。
在升级到MySQL 8.0之前,请修改
超出新限制的
任何
ENUM
或
SET
列元素。
如果不这样做会导致升级失败并显示错误。
在升级到MySQL 8.0.13或更高版本之前,必须没有驻留在共享
InnoDB
表空间中的
表分区
,其中包括系统表空间和通用表空间。
通过查询来识别共享表空间中的表分区
INFORMATION_SCHEMA
:
从INFORMATION_SCHEMA.INNODB_SYS_TABLES中选择DISTINCT NAME,SPACE,SPACE_TYPE 在哪里名称'%#P#%'和SPACE_TYPE不喜欢'单身';
使用以下命令将表分区从共享表空间移动到每表文件表空间
ALTER
TABLE ...
REORGANIZE PARTITION
:
ALTER TABLEtable_name
重组PARTOTIONpartition_name
INTO(partition_definition
TABLESPACE = innodb_file_per_table);
MySQL 8.0.12或更低版本中必须没有查询和存储的程序定义,这些定义使用
ASC
或
DESC
限定
GROUP
BY
条款。
否则,升级到MySQL 8.0.13或更高版本可能会失败,因为可能会复制到MySQL 8.0.13或更高版本的从属服务器。
有关其他详细信息,请参阅
SQL更改
。
您的MySQL 5.7安装不得使用MySQL 8.0不支持的功能。 此处的任何更改都必须是特定于安装的,但以下示例说明了要查找的内容:
MySQL 8.0中删除了一些服务器启动选项和系统变量。 请参阅 MySQL 8.0中删除的功能 ,以及 第1.5节“ MySQL 8.0中 添加,弃用或删除的服务器和状态变量和选项” 。 如果您使用其中任何一项,则升级需要更改配置。
示例:由于数据字典提供有关数据库对象的信息,因此服务器不再检查数据目录中的目录名以查找数据库。
因此,该
--ignore-db-dir
选项是无关紧要的,已被删除。
要处理此问题,请
--ignore-db-dir
从启动配置中
删除任何实例
。
此外,在升级到MySQL 8.0之前,请删除或移动指定的数据目录子目录。
(或者,让8.0服务器将这些目录作为数据库添加到数据字典中,然后使用
DROP
DATABASE
。
删除每个数据库
。)
本节介绍如何在Unix / Linux上升级MySQL二进制和基于包的安装。 描述了就地和逻辑升级方法。
就地升级包括关闭旧的MySQL服务器,用新的MySQL服务器替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL,以及升级现有安装中需要升级的任何其余部分。 有关可能需要升级的内容的详细信息,请参见 第2.11.3节“MySQL升级过程升级” 。
如果要升级最初通过安装多个RPM软件包生成的安装,请升级所有软件包,而不仅仅是某些软件包。 例如,如果您以前安装了服务器和客户端RPM,请不要仅升级服务器RPM。
对于某些Linux平台,从RPM或Debian软件包安装MySQL包括用于管理MySQL服务器启动和关闭的systemd支持。 在这些平台上, 未安装 mysqld_safe 。 在这种情况下,请使用systemd进行服务器启动和关闭,而不是使用以下说明中使用的方法。 请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
有关MySQL Cluster安装的升级,另请参阅 MySQL Cluster Upgrade 。
要执行就地升级:
查看 第2.11.1节“开始之前”中的信息 。
通过完成 第2.11.5节“准备升级安装”中 的初步检查,确保安装的升级准备就绪 。
如果您使用XA事务
InnoDB
,请
XA
RECOVER
在升级之前
运行
以检查未提交的XA事务。
如果返回结果,则通过发出
XA
COMMIT
或
XA
ROLLBACK
声明
提交或回滚XA事务
。
如果存在加密
InnoDB
表空间,请通过执行以下语句旋转密钥环主密钥:
ALTER INSTANCE ROTATE INNODB MASTER KEY;
如果您通常运行配置为
innodb_fast_shutdown
set
2
(冷关闭)的
MySQL服务器,
请将其
配置为通过执行以下任一语句执行快速或慢速关闭:
SET GLOBAL innodb_fast_shutdown = 1; - 快速关机 SET GLOBAL innodb_fast_shutdown = 0; - 慢关机
在快速或慢速关闭的情况下,
InnoDB
将其撤消日志和数据文件保留在可以在发布版本之间存在文件格式差异的情况下处理的状态。
关闭旧的MySQL服务器。 例如:
mysqladmin -u root -p shutdown
升级MySQL二进制文件或包。 如果要升级二进制安装,请解压缩新的MySQL二进制分发包。 请参阅 获取和解压缩分发 。 对于基于包的安装,请安装新包。
使用现有数据目录启动MySQL 8.0服务器。 例如:
mysqld_safe --user = mysql --datadir = /path/to/existing-datadir
&
如果有加密的
InnoDB
表空间,请使用该
--early-plugin-load
选项加载密钥环插件。
当您启动MySQL 8.0服务器时,它会自动检测是否存在数据字典表。
如果没有,服务器在数据目录中创建它们,用元数据填充它们,然后继续其正常的启动顺序。
在此过程中,服务器升级所有数据库对象的元数据,包括数据库,表空间,系统和用户表,视图和存储的程序(存储过程和函数,触发器和事件调度程序事件)。
服务器还会删除以前用于元数据存储的文件。
例如,从MySQL 5.7升级到MySQL 8.0后,您会注意到表格不再有
.frm
文件。
如果此步骤失败,则服务器将对数据目录的所有更改还原。 在这种情况下,您应该删除所有重做日志文件,在同一数据目录上启动MySQL 5.7服务器,并修复任何错误的原因。 然后执行另一个5.7服务器的慢速关闭并启动MySQL 8.0服务器再试一次。
在上一步中,服务器根据需要升级数据字典。 现在有必要执行任何剩余的升级操作:
从MySQL 8.0.16开始,服务器将在上一步中完成:它
mysql
在MySQL 5.7和MySQL 8.0之间
进行
系统模式
所需的任何更改
,以便您可以利用新的特权或功能。
它还
为MySQL 8.0提供了最新
的性能模式
INFORMATION_SCHEMA
和
sys
模式,并检查了与当前版本的MySQL不兼容的所有用户模式。
在MySQL 8.0.16之前,服务器仅升级上一步中的数据字典。 MySQL 8.0服务器成功启动后,执行 mysql_upgrade 以执行剩余的升级任务:
mysql_upgrade -u root -p
然后关闭并重新启动MySQL服务器,以确保对系统表所做的任何更改都生效。 例如:
mysqladmin -u root -p shutdown
mysqld_safe --user = mysql --datadir = /path/to/existing-datadir
&
第一次启动MySQL 8.0服务器时(在前面的步骤中),您可能会注意到错误日志中有关非升级表的消息。 如果 mysql_upgrade 已成功运行,则第二次启动服务器时应该没有此类消息。
升级过程不会升级时区表的内容。 有关升级说明,请参见 第5.1.13节“MySQL服务器时区支持” 。
如果升级过程使用 mysql_upgrade (即,在MySQL 8.0.16之前),则该过程也不会升级帮助表的内容。 有关该情况下的升级说明,请参见 第5.1.14节“服务器端帮助支持” 。
逻辑升级涉及使用备份或导出实用程序(如 mysqldump 或 mysqlpump) 从旧MySQL实例导出SQL ,安装新的MySQL服务器,以及将SQL应用于新的MySQL实例。 有关可能需要升级的内容的详细信息,请参见 第2.11.3节“MySQL升级过程升级” 。
对于某些Linux平台,从RPM或Debian软件包安装MySQL包括用于管理MySQL服务器启动和关闭的systemd支持。 在这些平台上, 未安装 mysqld_safe 。 在这种情况下,请使用systemd进行服务器启动和关闭,而不是使用以下说明中使用的方法。 请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
将从先前MySQL版本中提取的SQL应用于新的MySQL版本可能会由于新的,已更改,已弃用或已删除的特性和功能引入的不兼容性而导致错误。 因此,从先前的MySQL版本中提取的SQL可能需要修改才能启用逻辑升级。
要在升级到最新的MySQL 8.0版本之前识别不兼容性,请执行 第2.11.5节“准备升级安装”中 所述的步骤 。
要执行逻辑升级:
查看 第2.11.1节“开始之前”中的信息 。
从以前的MySQL安装中导出现有数据:
mysqldump -u root -p --add-drop-table --routines --events --all-databases --force> data-for-upgrade.sql
如果数据库包含存储的程序,
请使用
--routines
和
mysqldump的
--events
选项
(如上所示)。
该
选项包括转储中的所有数据库,包括
保存系统表
的
数据库。
--all-databases
mysql
如果您有包含生成列的表,请使用
MySQL 5.7.9或更高版本提供
的
mysqldump
实用程序来创建转储文件。
早期版本中提供
的
mysqldump
实用程序对生成的列定义使用了错误的语法(Bug#20769542)。
您可以使用该
INFORMATION_SCHEMA.COLUMNS
表来标识具有生成列的表。
关闭旧的MySQL服务器。 例如:
mysqladmin -u root -p shutdown
安装MySQL 8.0。 有关安装说明,请参阅 第2章, 安装和升级MySQL 。
初始化新数据目录,如 第2.10.1节“初始化数据目录”中所述 。 例如:
mysqld --initialize --datadir =/path/to/8.0-datadir
复制
'root'@'localhost'
显示在屏幕上
的临时
密码或写入错误日志以供日后使用。
使用新数据目录启动MySQL 8.0服务器。 例如:
mysqld_safe --user = mysql --datadir = /path/to/8.0-datadir
&
重置
root
密码:
shell>mysql -u root -p
输入密码:****
< - 输入临时root密码
MySQL的> ALTER USER USER() IDENTIFIED BY 'your new password
';
将先前创建的转储文件加载到新的MySQL服务器中。 例如:
mysql -u root -p --force <data-for-upgrade.sql
gtid_mode=ON
如果转储文件包含系统表,
则不建议在服务器(
)
上启用GTID时加载转储文件
。
mysqldump
为使用非事务性MyISAM存储引擎的系统表发出DML指令,并且在启用GTID时不允许这种组合。
另请注意,将启用了GTID的服务器中的转储文件加载到启用了GTID的其他服务器中会导致生成不同的事务标识符。
执行任何剩余的升级操作:
在MySQL 8.0.16及更高版本中,关闭服务器,然后使用
--upgrade=FORCE
选项
重新启动它
以执行剩余的升级任务:
mysqladmin -u root -p shutdown
mysqld_safe --user = mysql --datadir = /path/to/8.0-datadir
--upgrade = FORCE&
重启后
--upgrade=FORCE
,服务器会
mysql
在MySQL 5.7和MySQL 8.0之间
进行
系统架构中
所需的任何更改
,以便您可以利用新的权限或功能。
它还
为MySQL 8.0提供了最新
的性能模式
INFORMATION_SCHEMA
和
sys
模式,并检查了与当前版本的MySQL不兼容的所有用户模式。
在MySQL 8.0.16之前,执行 mysql_upgrade 以执行剩余的升级任务:
mysql_upgrade -u root -p
然后关闭并重新启动MySQL服务器,以确保对系统表所做的任何更改都生效。 例如:
mysqladmin -u root -p shutdown
mysqld_safe --user = mysql --datadir = /path/to/8.0-datadir
&
升级过程不会升级时区表的内容。 有关升级说明,请参见 第5.1.13节“MySQL服务器时区支持” 。
如果升级过程使用 mysql_upgrade (即,在MySQL 8.0.16之前),则该过程也不会升级帮助表的内容。 有关该情况下的升级说明,请参见 第5.1.14节“服务器端帮助支持” 。
加载包含MySQL 5.7
mysql
架构
的转储文件会
重新创建两个不再使用的表:
event
和
proc
。
(相应的MySQL 8.0表是
events
和
routines
,它们都是数据字典表并受到保护。)在您对升级成功感到满意后,可以
通过执行以下SQL语句
来删除
event
和
proc
表:
DROP TABLE mysql.event; DROP TABLE mysql.proc;
本节中的信息是辅助中所描述的就地升级过程 的原位升级 如果要升级MySQL集群,以供使用。
从MySQL 8.0.16开始,MySQL Cluster升级可以作为常规滚动升级执行,遵循通常的三个有序步骤:
升级MGM节点。
一次升级一个数据节点。
一次升级一个API节点(包括MySQL服务器)。
升级每个节点的方式与MySQL 8.0.16之前几乎完全相同,因为升级数据字典和升级系统表之间存在分离。
升级每个人有两个步骤
mysqld
:
导入数据字典。
使用
--upgrade=MINIMAL
升级数据字典但不升级系统表
的
选项
启动新服务器
。
这与启动服务器的MySQL 4.0.16之前的操作基本相同,而不是调用
mysql_upgrade
。
必须连接MySQL服务器才能
NDB
完成此阶段。
如果
存在
任何
NDB
或
NDBINFO
表,并且服务器无法连接到群集,则会退出并显示错误消息:
无法填充DD表。
升级系统表。
在MySQL 8.0.16之前,DBA调用
mysql_upgrade
客户端来升级系统表。
从MySQL 8.0.16开始,服务器执行此操作:要升级系统表,请重新启动每个
mysqld
而不使用该
--upgrade=MINIMAL
选项。
对于支持的基于Yum的平台(参见 第2.5.1节“使用MySQL Yum存储库在Linux上安装MySQL” ,列表),您可以对MySQL执行就地升级(即替换旧版本,然后使用MySQL Yum存储库运行旧版数据文件的新版本。
在对MySQL进行任何更新之前,请仔细遵循 第2.11节“升级MySQL”中的说明 。 在那里讨论的其他说明中,在更新之前备份数据库尤为重要。
以下说明假设您已安装MySQL与MySQL Yum存储库或直接从 MySQL Developer Zone的MySQL下载页面 下载的RPM软件包 ; 如果不是这样,请按照 使用MySQL Yum存储库替换MySQL的第三方分发中 的说明进行操作 。
默认情况下,MySQL Yum存储库将MySQL更新为您在安装期间 选择的发行版系列中 的最新版本( 有关详细信息, 请参阅 选择发布系列 ),这意味着,例如,5.7.x安装 不会 更新到8.0 .x自动释放。 要更新到另一个发行版系列,您需要首先禁用已选择的系列(默认情况下或自己)的子存储库,并为目标系列启用子存储库。 为此,请参阅 选择发布系列中 给出的一般说明 。 要从MySQL 5.7升级到8.0,请执行与 选择发布系列中 所示步骤 相反 的步骤 ,禁用MySQL 5.7系列的子存储库并启用MySQL 8.0系列的子存储库。
作为一般规则,要从一个版本系列升级到另一个版本系列,请转到下一个系列,而不是跳过一个系列。 例如,如果您当前正在运行MySQL 5.6并希望升级到8.0,请先升级到MySQL 5.7,然后再升级到8.0。
有关从MySQL 5.7升级到8.0的重要信息,请参阅 从MySQL 5.7升级到8.0 。
对于未启用dnf的平台,通过以下命令升级MySQL及其组件:
sudo yum更新mysql-server
对于启用dnf的平台:
sudo dnf升级mysql-server
或者,您可以通过告诉Yum更新系统上的所有内容来更新MySQL,这可能需要相当长的时间。 对于未启用dnf的平台:
sudo yum更新
对于启用dnf的平台:
sudo dnf升级
在Yum更新后,MySQL服务器总是重新启动。 在MySQL 8.0.16之前, 在服务器重新启动后 运行 mysql_upgrade 以检查并可能解决旧数据和升级软件之间的任何不兼容问题。 mysql_upgrade 还执行其他功能; 有关详细信息,请参见 第4.4.5节“ mysql_upgrade - 检查和升级MySQL表” 。 从MySQL 8.0.16开始,此步骤不是必需的,因为服务器执行以前由 mysql_upgrade 处理的所有任务 。
您还可以仅更新特定组件。 使用以下命令列出MySQL组件的所有已安装软件包(对于支持dnf的系统, 使用 dnf 替换 命令中的 yum ):
sudo yum list安装| grep“^ mysql”
在确定所选组件的软件包名称后,使用以下命令更新软件包,替换
package-name
为软件包的名称。
对于未启用dnf的平台:
sudo yum更新 package-name
对于支持dnf的平台:
sudo dnf升级 package-name
使用Yum存储库更新MySQL后,使用旧版本的共享客户端库编译的应用程序应继续工作。
如果重新编译应用程序并使用更新的库动态链接它们: 对于新版本的共享库而言,典型的是新旧库之间的符号版本控制存在差异或增加(例如,较新的标准8.0共享客户端库与之前发布的一些较旧的先前或变体版本的共享库之间)本地由Linux发行版的软件存储库或其他来源),使用更新的,更新的共享库编译的任何应用程序将需要在部署应用程序的系统上更新库。 并且,正如预期的那样,如果这些库不到位,则需要共享库的应用程序将失败。 因此,请确保在这些系统上从MySQL部署共享库的包。 去做这个, 添加MySQL Yum存储库 )并使用 安装其他MySQL产品和组件与Yum中 给出的说明安装最新的共享库 。
在SUSE Linux Enterprise Server(SLES)平台上,要执行MySQL及其组件的就地升级,请使用MySQL SLES存储库。 见 与MySQL SLES库升级MySQL 在 一个快速指南使用MySQL SLES库 。
在Windows上升级MySQL有两种方法:
您选择的方法取决于现有安装的执行方式。 在继续之前,请查看 第2.11节“升级MySQL” 以获取有关升级非Windows特定的MySQL的其他信息。
无论您选择哪种方法,在执行升级之前始终备份当前的MySQL安装。 请参见 第7.2节“数据库备份方法” 。
不支持非GA版本(或从非GA版本到GA版本)之间的升级。 非GA版本中发生了重大的开发变化,您可能会遇到启动服务器的兼容性问题或问题。
MySQL Installer不支持 Community 版本和 Commercial 版本 之间的升级 。 如果需要此类升级,请使用 ZIP归档 方法 执行此操作 。
使用MySQL Installer执行升级是使用它执行当前服务器安装并且升级在当前版本系列中的最佳方法。 MySQL安装程序不支持版本系列之间的升级,例如从5.7到8.0,并且它不提供升级指示器来提示您升级。 有关在发行版系列之间进行升级的说明,请参阅 使用Windows ZIP 发行版 升级MySQL 。
要使用MySQL Installer执行升级:
启动MySQL安装程序。
在仪表板中,单击“ 目录” 以将最新更改下载到目录。 仅当仪表板在服务器的版本号旁边显示箭头时,才能升级已安装的服务器。
单击 升级 。 现在,所有具有较新版本的产品都会显示在列表中。
MySQL Installer在同一版本系列中取消选择里程碑版本(预发布)的服务器升级选项。 此外,它还会显示警告,指示不支持升级,识别继续存在的风险,并提供手动执行升级的步骤摘要。 您可以重新选择服务器升级并自行承担风险。
取消选择除MySQL服务器产品之外的所有产品,除非您打算此时升级其他产品,然后单击“
。单击“
开始下载。 下载完成后,单击“ 开始升级操作。升级到MySQL 8.0.16及更高版本可能会显示跳过系统表的升级检查和处理的选项。 有关此选项的更多信息,请参阅 重要的服务器升级条件 。
配置服务器。
使用Windows ZIP存档分发执行升级:
从 https://dev.mysql.com/downloads/ 下载MySQL的最新Windows ZIP Archive分发版 。
如果服务器正在运行,请将其停止。 如果服务器作为服务安装,请使用命令提示符中的以下命令停止服务:
C:\> SC STOP mysqld_service_name
或者,使用
NET STOP
mysqld_service_name
。
如果您没有将MySQL服务器作为服务运行,请使用 mysqladmin 来停止它。 例如,在从MySQL 5.7升级到8.0之前,请使用 MySQL 5.7中的 mysqladmin ,如下所示:
C:\> "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin" -u root shutdown
如果MySQL
root
用户帐户有密码,请
使用该
选项
调用
mysqladmin
-p
并在出现提示时输入密码。
解压缩ZIP存档。
您可以覆盖现有的MySQL安装(通常位于
C:\mysql
),也可以将其安装到不同的目录中,例如
C:\mysql8
。
建议覆盖现有安装。
重启服务器。
例如,
如果您将MySQL作为服务运行
,请使用
SC START
mysqld_service_name
或
NET START
mysqld_service_name
命令,
否则直接
调用
mysqld
。
在MySQL 8.0.16之前, 以管理员身份 运行 mysql_upgrade 以检查表,在必要时尝试修复它们,并在更改授权表时更新它们,以便您可以利用任何新功能。 请参见 第4.4.5节“ mysql_upgrade - 检查和升级MySQL表” 。 从MySQL 8.0.16开始,此步骤不是必需的,因为服务器执行以前由 mysql_upgrade 处理的所有任务 。
如果遇到错误,请参见 第2.3.6节“Microsoft Windows MySQL服务器安装疑难解答” 。
MySQL 5.7实例在
.frm
表文件和
InnoDB
数据字典
之间的模式不匹配
可能导致升级到MySQL 8.0失败。
这种不匹配可能是由于
.frm
文件损坏。
要解决此问题,请在再次尝试升级之前转储和还原受影响的表。
如果出现问题,例如新的
mysqld
服务器无法启动,请确认您没有
my.cnf
以前安装中
的旧
文件。
您可以使用该
--print-defaults
选项进行
检查
(例如,
mysqld --print-defaults
)。
如果此命令显示除程序名称以外的任何内容,则您具有
my.cnf
影响服务器或客户端操作
的活动
文件。
如果在升级后遇到编译的客户端程序(例如
Commands out of
sync
或意外的核心转储)问题,则在编译程序时可能使用了旧的头文件或库文件。
在这种情况下,请检查
mysql.h
文件和
libmysqlclient.a
库
的日期,
以验证它们是否来自新的MySQL发行版。
如果没有,请使用新的标头和库重新编译您的程序。
如果库的主版本号已更改(例如,从纂修可能也有必要对共享客户端库编译的程序
libmysqlclient.so.20
到
libmysqlclient.so.21
)。
如果已创建具有给定名称的用户定义函数(UDF)并将MySQL升级到实现具有相同名称的新内置函数的版本,则UDF将变得不可访问。
要更正此问题,请使用
DROP
FUNCTION
删除UDF,然后使用
CREATE
FUNCTION
不同的非冲突名称重新创建UDF。
如果新版本的MySQL实现了与现有存储函数同名的内置函数,情况也是如此。
有关
描述服务器如何解释对不同类型函数的引用的规则
,
请参见
第9.2.4节“函数名称解析和解析”
。
本节介绍如何重建或修复表或索引,这可能是必需的:
MySQL处理数据类型或字符集的方式的变化。 例如,可能已更正排序规则中的错误,从而需要使用表重建来更新使用排序规则的字符列的索引。
所需的表修理或升级的报道
CHECK
TABLE
,
mysqlcheck的
,或
mysql_upgrade
。
重建表的方法包括:
如果要重建表,因为在二进制(就地)升级或降级后,不同版本的MySQL将无法处理它们,则必须使用dump-and-reload方法。 在 使用原始版本的MySQL升级或降级 之前 转储表 。 然后 在 升级或降级 后 重新加载表 。
如果仅为了重建索引而使用重建表的dump-and-reload方法,则可以在升级或降级之前或之后执行转储。 之后必须重新加载。
如果需要重建
InnoDB
表,因为
CHECK
TABLE
操作表明需要进行表升级,请使用
mysqldump
创建转储文件和
mysql
以重新加载文件。
如果
CHECK
TABLE
操作指示存在损坏或导致
InnoDB
失败,请参见
第15.20.2节“强制InnoDB恢复”
以获取有关使用
innodb_force_recovery
重新启动选项的
信息
InnoDB
。
为了了解问题的类型
CHECK
TABLE
可能会遇到,请参阅
InnoDB
笔记
第13.7.3.2,“CHECK TABLE语法”
。
要通过转储和重新加载来重建表,请使用 mysqldump 创建转储文件和 mysql 以重新加载文件:
mysqldumpdb_name
t1> dump.sql mysqldb_name
<dump.sql
要重建单个数据库中的所有表,请指定不带任何后续表名的数据库名称:
mysqldumpdb_name
> dump.sql mysqldb_name
<dump.sql
要重建所有数据库中的所有表,请使用以下
--all-databases
选项:
mysqldump --all-databases> dump.sql mysql <dump.sql
要
ALTER
TABLE
使用
“
重建”表
,使用
“
null
”
更改;
也就是说
ALTER
TABLE
,
“
更改
”
表以使用它已有的存储引擎
的
语句
。
例如,如果
t1
是
InnoDB
表,请使用以下语句:
ALTER TABLE t1 ENGINE = InnoDB;
如果您不确定在
ALTER
TABLE
语句中
指定哪个存储引擎
,请使用
SHOW CREATE TABLE
显示表定义。
该
REPAIR
TABLE
方法只适用于
MyISAM
,
ARCHIVE
和
CSV
表。
您可以使用
REPAIR
TABLE
,如果表检查操作表明存在腐败或需要升级。
例如,要修复
MyISAM
表,请使用以下语句:
修理表t1;
mysqlcheck --repair
提供对
REPAIR
TABLE
语句的
命令行访问
。
这可以是一种更方便的修复表的方法,因为您可以使用
--databases
或
--all-databases
选项分别修复特定数据库或所有数据库中的所有表:
mysqlcheck --repair --databases db_name
...
mysqlcheck --repair --all-databases
如果需要在不同体系结构之间传输数据库,可以使用 mysqldump 创建包含SQL语句的文件。 然后,您可以将文件传输到另一台计算机并将其作为输入提供给 mysql 客户端。
使用 mysqldump --help 查看可用的选项。
在两台计算机之间移动数据库的最简单(尽管不是最快)方法是在数据库所在的机器上运行以下命令:
mysqladmin -h'other_hostname
'创建db_name
mysqldumpdb_name
| mysql -h'other_hostname
'db_name
如果要通过慢速网络从远程计算机复制数据库,可以使用以下命令:
mysqladmin创建db_name
mysqldump -h'other_hostname
' - 压缩db_name
| MySQL的db_name
您还可以将转储存储在文件中,将文件传输到目标计算机,然后将文件加载到数据库中。 例如,您可以将数据库转储到源计算机上的压缩文件,如下所示:
mysqldump --quickdb_name
| gzip>db_name
.gz
将包含数据库内容的文件传输到目标计算机并在那里运行以下命令:
mysqladmin创建db_name
gunzip <db_name
.gz | MySQL的db_name
您还可以使用
mysqldump
和
mysqlimport
来传输数据库。
对于大型表,这比简单地使用
mysqldump
要快得多
。
在以下命令中,
DUMPDIR
表示用于存储
mysqldump
输出的目录的完整路径名
。
首先,为输出文件创建目录并转储数据库:
mkdirDUMPDIR
mysqldump --tab =DUMPDIR
db_name
然后将
DUMPDIR
目录中
的文件传输
到目标机器上的某个相应目录,并将文件加载到MySQL:
mysqladmin创建#createdb_name
数据库 catDUMPDIR
/*.sql | mysqldb_name
#在数据库中创建表 mysqlimport /*.txt#将数据加载到表中db_name
DUMPDIR
不要忘记复制
mysql
数据库,因为这是存储授权表的位置。
您可能必须
root
在新计算机上
以MySQL
用户
身份运行命令,
直到您拥有
mysql
数据库
为止
。
在
mysql
新计算机上
导入
数据库
后
,执行
mysqladmin flush-privileges,
以便服务器重新加载授权表信息。
不支持从MySQL 8.0降级到MySQL 5.7,或从MySQL 8.0版本降级到以前的MySQL 8.0版本。 唯一支持的替代方法是 在 升级 之前 恢复备份 。 因此,在开始升级过程之前,必须备份数据。
Perl
DBI
模块为数据库访问提供通用接口。
您可以编写一个可以在
DBI
不做任何更改的情况下使用许多不同数据库引
要使用
DBI
,必须
DBI
为要访问的每种类型的数据库服务器
安装
模块以及数据库驱动程序(DBD)模块。
对于MySQL,此驱动程序是
DBD::mysql
模块。
MySQL发行版不包含Perl支持。 您可以从 http://search.cpan.org for Unix 获取必要的模块 ,或者 在Windows上 使用ActiveState ppm 程序。 以下部分描述了如何执行此操作。
的
DBI
/
DBD
接口要求Perl 5.6.0,5.6.1和或更高是优选的。
如果您有旧版本的Perl,则
DBI
不起作用
。
您应该使用
DBD::mysql
4.009或更高版本。
虽然早期版本可用,但它们不支持MySQL 8.0的完整功能。
MySQL Perl支持要求您已安装MySQL客户端编程支持(库和头文件)。 大多数安装方法都安装必要的文件。 如果从Linux上的RPM文件安装MySQL,请务必同时安装开发人员RPM。 客户端程序位于客户端RPM中,但客户端编程支持位于开发人员RPM中。
您可以从 http://search.cpan.org上 的CPAN(综合Perl存档网络)获取Perl支持所需的文件 。
在Unix上安装Perl模块的最简单方法是使用该
CPAN
模块。
例如:
shell>perl -MCPAN -e shell
cpan>install DBI
cpan>install DBD::mysql
该
DBD::mysql
设备运行大量的测试。
这些测试尝试使用默认用户名和密码连接到本地MySQL服务器。
(默认用户名是Unix
ODBC
上的
登录名,
在Windows上。默认密码是
“
无密码。
”
)如果无法使用这些值连接到服务器(例如,如果您的帐户有密码),则测试失败。
您可以使用
force install DBD::mysql
忽略失败的测试。
DBI
需要
Data::Dumper
模块。
可以安装;
如果没有,你应该在安装之前安装它
DBI
。
也可以以压缩 tar 档案 的形式下载模块发行版 并手动构建模块。 例如,要解压缩并构建DBI分发,请使用以下过程:
将分发包解压缩到当前目录:
外壳> gunzip < DBI-VERSION
.tar.gz | tar xvf -
此命令创建一个名为的目录
。
DBI-
VERSION
将位置更改为解压缩分发的顶级目录:
外壳> cd DBI-VERSION
构建分发并编译所有内容:
shell>perl Makefile.PL
shell>make
shell>make test
shell>make install
该
化妆测试
命令很重要,因为它验证模块正在工作。
请注意,在
DBD::mysql
安装
期间运行该命令
以
运行
接口代码时,MySQL服务器必须正在运行或测试失败。
DBD::mysql
每当安装新版本的MySQL时
,重建和重新
安装发行版
是个好主意
。
这可确保正确安装最新版本的MySQL客户端库。
如果您没有在系统目录中安装Perl模块的访问权限,或者如果要安装本地Perl模块,则以下引用可能很有用: http : //learn.perl.org/faq/perlfaq8.html#How- DO-I-保我,自己的模块库,目录-
在Windows上,您应该执行以下操作以
DBD
使用ActiveState Perl
安装MySQL
模块:
从 http://www.activestate.com/Products/ActivePerl/ 获取ActiveState Perl 并安装它。
打开控制台窗口。
如有必要,请设置
HTTP_proxy
变量。
例如,您可以尝试这样的设置:
C:\> set HTTP_proxy=my.proxy.com:3128
启动PPM计划:
C:\> C:\perl\bin\ppm.pl
如果您之前没有这样做,请安装
DBI
:
PPM> install DBI
如果成功,请运行以下命令:
PPM> install DBD-mysql
此过程应与ActiveState Perl 5.6或更高版本一起使用。
如果无法使该过程起作用,则应安装ODBC驱动程序并通过ODBC连接到MySQL服务器:
使用DBI; $ dbh = DBI-> connect(“DBI:ODBC:$ dsn”,$ user,$ password)|| 死“连接到$ dsn \ n时收到错误$ DBI :: errstr”;
如果Perl报告无法找到该
../mysql/mysql.so
模块,则问题可能是Perl无法找到
libmysqlclient.so
共享库。
您应该能够通过以下方法之一解决此问题:
请注意,
-L
如果链接器无法找到其他库
,您可能还需要修改
选项。
例如,如果链接器找不到,
libc
因为它位于
/lib
且链接命令指定
-L/usr/lib
,则将
-L
选项
更改
为现有链接命令
-L/lib
或添加
-L/lib
到现有链接命令。
如果你从下面的错误
DBD::mysql
,你可能正在使用
的gcc
(或使用编译的旧的二进制
GCC
):
/ usr / bin / perl:无法解析符号'__moddi3' / usr / bin / perl:无法解析符号'__divdi3'
添加
-L/usr/lib/gcc-lib/... -lgcc
到链接命令时,
mysql.so
库被建(检查从输出
化妆
的
mysql.so
,当你编译Perl客户端)。
该
-L
选项应指定
libgcc.a
系统
所在目录的路径名
。
这个问题的另一个原因可能是Perl和MySQL都不是用 gcc编译的 。 在这种情况下,您可以通过使用 gcc 编译来解决不匹配问题 。