在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软件包安装程序向导:安装类型
    mac-installer-installation-type-standard.png
    MySQL包安装程序向导:自定义
    mac-installer-installation-type-customize.png

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

    mac-installer-configuration-password-type.png

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

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

    mac-installer-configuration-password-define.png

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

    mac-installer-summary.png

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
    mac-installer-preference-pane-location.png
    Instances页面包含一个启动或停止MySQL的选项,Initialize Database重新创建data/目录,Uninstall卸载MySQL Server以及可选的MySQL首选项面板和launchd信息。
    mac-installer-preference-pane-instances.png
  • 或者,手动加载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安装期间启动、停止和控制自动启动。

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

mac-installer-preference-pane-location.png

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

要安装MySQL首选项窗格:

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

    mac-installer-installation-type-customize.png

  3. 完成安装过程。

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

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

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

mac-installer-preference-pane-instances.png

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

mac-installer-preference-pane-configuration.png

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



博弈
2.5k 声望1.5k 粉丝

态度决定一切