• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 在macOS上安装MySQL

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

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

    • 本机软件包安装程序,它使用本机macOS安装程序(DMG)指导您完成MySQL的安装。有关更多信息,请参见“使用本机软件包在macOS上安装MySQL”。您可以将软件包安装程序与macOS一起使用。用于执行安装的用户必须具有管理员权限。
    • 压缩的TAR归档文件,它使用使用Unix targzip命令打包的文件。要使用此方法,您将需要打开“终端”窗口。使用此方法不需要管理员权限,因为可以使用此方法在任何地方安装MySQL服务器。有关使用此方法的更多信息,可以使用“使用通用二进制文件在Unix / Linux上安装MySQL”中的使用tarball的通用说明。

      除核心安装外,软件包安装程序还包括“安装和使用MySQL启动守护程序”和“安装和使用MySQL首选项窗格”以简化安装管理。

    有关在macOS上使用MySQL的更多信息,请参见“在macOS上安装MySQL的一般说明”。

    在macOS上安装MySQL的一般说明

    您应该牢记以下问题和注意事项:

    • 其他MySQL安装:安装过程无法识别软件包管理器(例如Homebrew)进行的MySQL安装。安装和升级过程适用于我们提供的MySQL软件包。如果存在其他安装,请考虑在执行此安装程序之前将其停止,以避免端口冲突。

      Homebrew:例如,如果使用Homebrew将MySQL Server安装到其默认位置,则MySQL安装程序将安装到其他位置,并且不会从Homebrew升级版本。在这种情况下,您将最终获得多个MySQL安装,默认情况下会尝试使用相同的端口。在运行此安装程序之前,请停止其他MySQL Server实例,例如执行 brew服务,请停止mysql以停止Homebrew的MySQL服务。

    • 已启动:已安装的启动守护程序会更改MySQL配置选项。如果需要,可以考虑对其进行编辑,请参见下面的文档以获取更多信息。另外,macOS 10.10删除了对启动项目的支持,转而使用launchd守护程序。macOS系统偏好设置下的可选MySQL偏好设置窗格使用launchd守护程序。
    • 用户:您可能需要(或想要)创建一个特定的mysql用户来拥有MySQL目录和数据。您可以通过 Directory Utility来执行此操作,并且该mysql用户应该已经存在。为了在单用户模式下使用,_mysql系统/etc/passwd文件中应已存在(注意下划线前缀)的条目。
    • 数据:由于MySQL软件包安装程序将MySQL内容安装到特定于版本和平台的目录中,因此您可以使用它在不同版本之间升级和迁移数据库。您将需要将dat 目录从旧版本复制到新版本,或者指定一个替代datadir值来设置数据目录的位置。默认情况下,MySQL目录安装在下/usr/local/
    • 别名:您可能希望将别名添加到Shell的资源文件中,以使从命令行访问 mysql mysqladmin等常用程序更加容易。bash的语法是:

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

      对于tcsh,使用:

       lias 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
    • 旧版:在OS X 10.7之前,MySQL服务器已与OS X Server捆绑在一起。

    使用本机软件包在macOS上安装MySQL

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

    注意

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

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

    1. 下载包含MySQL软件包安装程序的磁盘映像(.dmg)文件(可在此处找到社区版本)。双击该文件以安装磁盘映像并参见其内容。

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

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

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

    3. 在“安装类型”页面上,您可以单击“安装”以使用所有默认值执行安装向导,单击“自定义”以更改要安装的组件(MySQL服务器,MySQL测试,首选项窗格,启动的支持-默认情况下,除MySQL测试外,所有其他功能均处于启用状态)。

      注意

      尽管“更改安装位置”选项可见,但是无法更改安装位置。

      图2.13 MySQL Package Installer向导:安装类型

      图2.14 MySQL软件包安装程序向导:自定义


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

      图2.15 MySQL软件包安装程序向导:选择密码加密类型

      选择传统的密码机制改变所产生的launchd文件设置--default_authentication_plugin=mysql_native_passwordProgramArguments--default_authentication_plugin由于使用了默认的MySQL Server值,因此未设置强密码加密caching_sha2_password

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

      图2.16 MySQL软件包安装程序向导:定义根密码


    8. 摘要是最后一步,它引用了成功且完整的MySQL Server安装。关闭向导。

      图2.17 MySQL软件包安装程序向导:摘要


    现在已安装MySQL服务器。如果选择不启动MySQL,则可以从命令行使用launchctl或通过使用MySQL首选项窗格单击“启动”来启动MySQL。有关更多信息,请和“安装和使用MySQL首选项窗格”。使用“ MySQL首选项窗格”或“启动的MySQL”将MySQL配置为在启动时自动启动。

    使用软件包安装程序进行安装时,文件将安装到/usr/local与安装版本和平台名称匹配的目录中。例如,安装程序文件使用的符号链接将MySQL安装到。下表显示了此MySQL安装目录的布局。mysql-8.0.21-osx10.13-x86_64.dmg/usr/local/mysql-8.0.21-osx10.13-x86_64//usr/local/mysql

    表2.6 macOS上的MySQL安装布局

    目录目录内容
    binmysqld服务器,客户端和实用程序
    dat 记录文件,数据库,/usr/local/mysql/data/mysqld.local.err默认错误日志在哪里
    docs辅助文档,例如发行说明和构建信息
    include包含(头)文件
    lib图书馆
    manUnix手册页
    mysql-testMySQL测试套件(在使用安装程序包(DMG)的安装过程中,默认情况下会禁用“ MySQL测试”)
    share其他支持文件,包括错误消息,示例配置文件,用于数据库安装的SQL
    support-files脚本和样本配置文件
    /tmp/mysql.sockMySQL Unix套接字的位置

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

    macOS使用启动守护程序自动启动,停止和管理进程和应用程序(例如MySQL)。

    默认情况下,macOS上的安装包(DMG)安装名为的启动文件/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist,其中包含类似于以下内容的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-dat =/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声明会导致启动的操作失败,尽管它通过了lint检查。我们怀疑这是复制n粘贴错误。包含以上代码段的文件的md5校验和为d925f05f6d1b6ee5ce5451b596d6baed

    要启用启动的服务,您可以:

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

      图2.18 MySQL首选项窗格:位置

      “实例”页面包括一个用于启动或停止MySQL的选项,“初始化数据库”将重新创建data/目录。卸载将卸载MySQL Server,并可选地卸载MySQL首选项面板和启动的信息。

      图2.19 MySQL首选项窗格:实例


    • 或者,手动加载启动的文件。

      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服务器时,启动的安装过程将删除与MySQL服务器5.7.7及更低版本一起安装的旧启动项。

    另外,升级将替换您现有的名为的启动文件com.oracle.oss.mysql.mysqld.plist

    已启动的其他相关信息:

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

    因为默认的plist定义定义了几个 ProgramArguments,所以您可能会删除其中的大多数参数,而是依靠my.cnfMySQL配置文件来定义它们。例如:

    <?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-dat =/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_dat ,并--early-plugin-load选择从默认的plist去除ProgramArguments定义,你可能在定义my.cnf来代替。

    安装和使用MySQL首选项窗格

    MySQL安装程序包包括一个MySQL首选项窗格,通过该窗格,您可以在启动MySQL安装过程中启动,停止和控制自动启动。

    该首选项窗格默认情况下已安装,并在系统的“系统首选项”窗口下列出。

    图2.20 MySQL首选项窗格:位置

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

    要安装MySQL首选项窗格:

    1. 按照“使用本机包在macOS上安装MySQL”中的文档所述,完成安装MySQL服务器的过程。
    2. 在“安装类型”步骤中单击“自定义”。此处列出了“首选项窗格”选项,默认情况下启用该选项。确保未取消选择它。可以选择或选择其他选项,例如MySQL Server。

      图2.21 MySQL软件包安装程序向导:自定义


    3. 完成安装过程。
    注意

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

    一旦安装了MySQL首选项窗格,就可以使用此首选项窗格控制MySQL服务器实例。

    “实例”页面包含一个用于启动和停止MySQL的选项,“初始化数据库”将重新创建data/目录。卸载会卸载MySQL Server以及可选的启动信息。

    “实例”页面包括一个用于启动或停止MySQL的选项,“初始化数据库”将重新创建data/目录。卸载将卸载MySQL Server,并可选地卸载MySQL首选项面板和启动的信息。

    图2.22 MySQL首选项窗格:实例

    “配置”页面显示MySQL服务器选项,包括MySQL配置文件的路径。

    图2.23 MySQL首选项窗格:配置

    MySQL的偏好窗格显示MySQL服务器的当前状态,显示停止(红色),如果服务器没有运行,并且运行(绿色),如果服务器已经启动。首选项窗格还显示有关MySQL服务器是否已设置为自动启动的当前设置。