在macOS上安装MySQL
有关MySQL服务器支持的macOS版本的列表,请参见 https://www.mysql.com/support/supportedplatforms/database.html。
适用于macOS的MySQL有多种不同形式:
- 本机软件包安装程序,它使用本机macOS安装程序(DMG)指导您完成MySQL的安装。有关更多信息,请参见“使用本机软件包在macOS上安装MySQL”。您可以将软件包安装程序与macOS一起使用。用于执行安装的用户必须具有管理员权限。
压缩的TAR归档文件,它使用使用Unix tar和gzip命令打包的文件。要使用此方法,您将需要打开“终端”窗口。使用此方法不需要管理员权限,因为可以使用此方法在任何地方安装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:
下载包含MySQL软件包安装程序的磁盘映像(
.dmg
)文件(可在此处找到社区版本)。双击该文件以安装磁盘映像并参见其内容。双击磁盘上的MySQL安装程序包。根据您下载的MySQL版本命名。例如,对于MySQL服务器8.0.21,它可能名为。
mysql-8.0.21-osx-10.13-x86_64.pkg
初始向导介绍屏幕引用要安装的MySQL服务器版本。单击继续以开始安装。
MySQL社区版本显示了相关GNU通用公共许可证的副本。单击继续,然后单击同意以继续。
在“安装类型”页面上,您可以单击“安装”以使用所有默认值执行安装向导,单击“自定义”以更改要安装的组件(MySQL服务器,MySQL测试,首选项窗格,启动的支持-默认情况下,除MySQL测试外,所有其他功能均处于启用状态)。
注意尽管“更改安装位置”选项可见,但是无法更改安装位置。
图2.13 MySQL Package Installer向导:安装类型
图2.14 MySQL软件包安装程序向导:自定义
- 单击“安装”以安装MySQL Server。如果升级当前的MySQL Server安装,安装过程将在此处结束,否则,对于新的MySQL Server安装,请遵循向导的其他配置步骤。
- 成功安装新的MySQL Server之后,通过选择密码的默认加密类型,定义root密码以及在启动时启用(或禁用)MySQL服务器来完成配置步骤。
默认的MySQL 8.0密码机制是
caching_sha2_password
(强),此步骤允许您将其更改为mysql_native_password
(旧)。图2.15 MySQL软件包安装程序向导:选择密码加密类型
选择传统的密码机制改变所产生的launchd文件设置
--default_authentication_plugin=mysql_native_password
下ProgramArguments
。--default_authentication_plugin
由于使用了默认的MySQL Server值,因此未设置强密码加密caching_sha2_password
。定义root用户的密码,并切换配置步骤完成后是否应启动MySQL Server。
图2.16 MySQL软件包安装程序向导:定义根密码
摘要是最后一步,它引用了成功且完整的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安装布局
目录 | 目录内容 |
---|---|
bin | mysqld服务器,客户端和实用程序 |
dat | 记录文件,数据库,/usr/local/mysql/data/mysqld.local.err 默认错误日志在哪里 |
docs | 辅助文档,例如发行说明和构建信息 |
include | 包含(头)文件 |
lib | 图书馆 |
man | Unix手册页 |
mysql-test | MySQL测试套件(在使用安装程序包(DMG)的安装过程中,默认情况下会禁用“ MySQL测试”) |
share | 其他支持文件,包括错误消息,示例配置文件,用于数据库安装的SQL |
support-files | 脚本和样本配置文件 |
/tmp/mysql.sock | MySQL 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.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-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>
在这种情况下,basedir
,datadir
,plugin_dir
,log_error
,pid_file
,keyring_file_dat
,并--early-plugin-load
选择从默认的plist去除ProgramArguments定义,你可能在定义my.cnf
来代替。
安装和使用MySQL首选项窗格
MySQL安装程序包包括一个MySQL首选项窗格,通过该窗格,您可以在启动MySQL安装过程中启动,停止和控制自动启动。
该首选项窗格默认情况下已安装,并在系统的“系统首选项”窗口下列出。
图2.20 MySQL首选项窗格:位置

MySQL首选项窗格安装了与安装MySQL Server相同的DMG文件。通常,它与MySQL Server一起安装,但也可以单独安装。
要安装MySQL首选项窗格:
- 按照“使用本机包在macOS上安装MySQL”中的文档所述,完成安装MySQL服务器的过程。
在“安装类型”步骤中单击“自定义”。此处列出了“首选项窗格”选项,默认情况下启用该选项。确保未取消选择它。可以选择或选择其他选项,例如MySQL Server。
图2.21 MySQL软件包安装程序向导:自定义
- 完成安装过程。
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服务器是否已设置为自动启动的当前设置。