MySQL™ 参考手册(在macOS上安装MySQL)

在macOS上安装MySQL

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

用于macOS的MySQL有多种不一样的形式:mysql

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

在macOS上安装MySQL的通常注意事项

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

  • 其余MySQL安装:安装过程不认可包管理器(如Homebrew)的MySQL安装,安装和升级过程适用于oracle提供的MySQL包,若是存在其余安装,请考虑在执行此安装程序以前中止它们以免端口冲突。

    Homebrew:例如,若是你使用Homebrew将MySQL Server安装到其默认位置,则MySQL安装程序将安装到其余位置,而且不会从Homebrew升级版本。在这种状况下,你最终会遇到多个MySQL安装,默认状况下会尝试使用相同的端口。在运行此安装程序以前中止其余MySQL Server实例,例如执行brew services stop mysql以中止Homebrew的MySQL服务。shell

  • 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,请使用:bash

    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中双击其图标来装载该文件,而后它应该挂载映像并显示其内容。oracle

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

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

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

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

  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服务器是否已设置为自动启动的当前设置。

相关文章
相关标签/搜索