乐趣区

MySQL™-参考手册在macOS上安装MySQL

在 macOS 上安装 MySQL

有关 MySQL 服务器支持的 macOS 版本列表,请参阅 https://www.mysql.com/support…。

用于 macOS 的 MySQL 有多种不同的形式:

  • 原生程序包安装程序,它使用原生 macOS 安装程序(DMG)引导你完成 MySQL 的安装,你可以将程序包安装程序与 macOS 一起使用,用于执行安装的用户必须具有管理员权限。
  • 压缩的 TAR 存档,它使用使用 Unix targzip 命令打包的文件,要使用此方法,你需要打开终端窗口,使用此方法不需要管理员权限,因为你可以使用此方法在任何地方安装 MySQL 服务器。

在 macOS 上安装 MySQL 的一般注意事项

你应该记住以下问题和注意事项:

  • 其他 MySQL 安装:安装过程不承认包管理器(如 Homebrew)的 MySQL 安装,安装和升级过程适用于 oracle 提供的 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 目录和数据,你可以通过Directory Utility 执行此操作,并且 mysql 用户应该已经存在。要在单用户模式下使用,_mysql的条目(注意下划线前缀)应该已存在于系统 /etc/passwd 文件中。
  • 数据 :因为 MySQL 包安装程序将 MySQL 内容安装到版本和平台特定目录中,所以你可以使用它来在版本之间升级和迁移数据库,你需要将数据目录从旧版本复制到新版本,或者指定备用datadir 值以设置数据目录的位置,默认情况下,MySQL 目录安装在 /usr/local/ 下。
  • 别名 :你可能希望在 shell 的资源文件中添加别名,以便更轻松地从命令行访问常用程序,如mysqlmysqladminbash的语法是:

    alias mysql=/usr/local/mysql/bin/mysql
    alias mysqladmin=/usr/local/mysql/bin/mysqladmin

    对于tcsh,请使用:

    alias mysql /usr/local/mysql/bin/mysql
    alias mysqladmin /usr/local/mysql/bin/mysqladmin

    更好的是,将 /usr/local/mysql/bin 添加到 PATH 环境变量中,你可以通过修改 shell 的相应启动文件来完成此操作。

  • 删除 :复制先前安装的 MySQL 数据库文件并成功启动新服务器后,应考虑删除旧的安装文件以节省磁盘空间,此外,你还应删除位于/Library/Receipts/mysql-VERSION.pkg 中的旧版本的 Package Receipt 目录。
  • 遗留:在 OS X 10.7 之前,MySQL 服务器与 OS X Server 捆绑在一起。

使用原生软件包在 macOS 上安装 MySQL

该软件包位于磁盘映像(.dmg)文件中,你首先需要通过在 Finder 中双击其图标来装载该文件,然后它应该挂载映像并显示其内容。

在继续安装之前,请确保通过使用 MySQL Manager 应用程序(在 macOS Server 上)、首选项窗格或在命令行上使用 mysqladmin shutdown 来停止所有正在运行的 MySQL 服务器实例。

要使用软件包安装程序安装 MySQL:

  1. 下载包含 MySQL 软件包安装程序的磁盘映像(.dmg)文件(此处提供社区版本),双击该文件以装入磁盘映像并查看其内容。

    双击磁盘中的 MySQL 安装程序包,它根据你下载的 MySQL 版本命名,例如,对于 MySQL 服务器 8.0.19,它可能被命名为mysql-8.0.19-osx-10.13-x86_64.pkg

  2. 初始向导介绍屏幕引用要安装的 MySQL 服务器版本,单击 Continue 开始安装。

    MySQL 社区版显示了相关 GNU 通用公共许可证的副本,单击 Continue,然后单击Agree 继续。

  3. Installation Type 页面中,你可以单击 Install 以使用所有默认值执行安装向导,单击 Customize 以更改要安装的组件(MySQL 服务器、MySQL 测试、首选项窗格、启动支持 — 默认情况下启用除 MySQL 测试之外的所有组件)。

    虽然可以看到 Change Install Location 选项,但无法更改安装位置。
    MySQL 软件包安装程序向导:安装类型

    MySQL 包安装程序向导:自定义

  4. 单击 Install 以安装 MySQL Server,如果升级当前的 MySQL Server 安装,安装过程将在此处结束,否则请按照向导的新 MySQL 服务器安装的其他配置步骤进行操作。
  5. 成功安装新的 MySQL 服务器后,通过选择密码的默认加密类型、定义 root 密码以及启动时启动(或禁用)MySQL 服务器来完成配置步骤。
  6. 默认的 MySQL 8.0 密码机制是caching_sha2_password(强),此步骤允许你将其更改为mysql_native_password(遗留)。

    选择旧密码机制会更改生成的 launchd 文件以在 ProgramArguments 下设置--default_authentication_plugin=mysql_native_password。选择强密码加密不会设置--default_authentication_plugin,因为使用了默认的 MySQL Server 值,即caching_sha2_password

  7. 为 root 用户定义密码,并在配置步骤完成后切​​换 MySQL Server 是否应该启动。

  8. Summary是最后一步,并引用了成功且完整的 MySQL Server 安装,Close向导。

MySQL 服务器现已安装,如果你选择不启动 MySQL,则使用命令行中的 launchctl 或使用 MySQL 首选项窗格单击 Start 启动 MySQL,使用 MySQL Preference Pane 或 launchd 将 MySQL 配置为在启动时自动启动。

使用软件包安装程序进行安装时,文件将安装到 /usr/local 中与安装版本和平台名称相匹配的目录中。例如,安装程序文件 mysql-8.0.19-osx10.13-x86_64.dmg 将 MySQL 安装到/usr/local/mysql-8.0.19-osx10.13-x86_64/,并带有符号链接到/usr/local/mysql,下表显示了此 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 socket 的位置

安装和使用 MySQL 启动守护程序

macOS 使用启动守护程序自动启动、停止和管理 MySQL 等进程和应用程序。

默认情况下,macOS 上的安装包(DMG)会安装名为 /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 的 launchd 文件,其中包含类似于以下内容的 plist 定义:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_file=keyring_file.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

一些用户报告说,添加 plist DOCTYPE 声明会导致 launchd 操作失败,尽管它通过了 lint 检查,怀疑这是一个 copy-n-paste 错误,包含上述代码段的文件的 md5 校验和是d925f05f6d1b6ee5ce5451b596d6baed

要启用 launchd 服务,你可以:

  • 打开 macOS 系统首选项并选择 MySQL 首选项面板,然后执行 Start MySQL Server

    Instances 页面包含一个启动或停止 MySQL 的选项,Initialize Database重新创建 data/ 目录,Uninstall卸载 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 及更低版本安装的旧启动项,此外,升级将替换名为 com.oracle.oss.mysql.mysqld.plist 的现有 launchd 文件。

额外启动相关信息:

  • plist 条目覆盖 my.cnf 条目,因为它们作为命令行参数传入。
  • ProgramArguments部分定义了传递给程序的命令行选项,在这种情况下是 mysqld 二进制文件。
  • 默认的 plist 定义是在考虑不太复杂的用例的情况下编写的,对于更复杂的设置,你可能希望删除一些参数,而是依赖于 MySQL 配置文件,例如my.cnf
  • 如果编辑 plist 文件,则在重新安装或升级 MySQL 时取消选中安装程序选项,否则,你编辑的 plist 文件将被覆盖,并且所有编辑都将丢失。

因为默认的 plist 定义定义了几个ProgramArguments,所以你可以删除大多数这些参数,而是依赖你的my.cnf MySQL 配置文件来定义它们。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_file=keyring_file.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

在这种情况下,basedirdatadirplugin_dirlog_errorpid_filekeyring_file_data--early-plugin-load 选项已从默认的 plist ProgramArguments定义中删除,你可能已经在 my.cnf 中定义了该定义。

安装和使用 MySQL 首选项窗格

MySQL 安装包包含一个 MySQL 首选项窗格,使你可以在启动 MySQL 安装期间启动、停止和控制自动启动。

此首选项窗格默认安装,并列在系统的“系统偏好设置”窗口下。

MySQL 首选项窗格安装有安装 MySQL Server 的相同 DMG 文件,通常它与 MySQL Server 一起安装,但它也可以自己安装。

要安装 MySQL 首选项窗格:

  1. 完成安装 MySQL 服务器的过程。
  2. 单击 Installation Type 步骤中的 CustomizePreference Pane 选项列在那里并默认启用,确保没有取消选择,可以选择或选择其他选项,例如 MySQL Server。

  3. 完成安装过程。

    MySQL 首选项窗格仅启动和停止从已安装在默认位置的 MySQL 软件包安装中安装的 MySQL 安装。

安装 MySQL 首选项窗格后,你可以使用此首选项窗格控制 MySQL 服务器实例。

Instances页面包含启动和停止 MySQL 的选项,Initialize Database重新创建 data/ 目录,Uninstall卸载 MySQL Server 以及可选的 MySQL 首选项面板和 launchd 信息。

Configuration页面显示 MySQL Server 选项,包括 MySQL 配置文件的路径。

MySQL 首选项窗格显示 MySQL 服务器的当前状态,如果服务器未运行,则显示stopped(红色),如果服务器running,则运行(绿色),首选项窗格还显示 MySQL 服务器是否已设置为自动启动的当前设置。


退出移动版