我使用 Homebrew 安装了 Mysql 5.5,具体来说是 Homebrew 版本 -https://github.com/Homebrew/homebrew-versions。安装后,我尝试运行它建议的命令:
Set up databases to run AS YOUR USER ACCOUNT with:
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
...
但是,第二行导致错误。当我运行:
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
我收到以下错误:
严重错误:无法找到 my_print_defaults
搜索了以下目录:
/usr/local/Cellar/mysql/5.6.10/bin
/usr/local/Cellar/mysql/5.6.10/extra
也许这是因为即使我在执行此操作之前运行了“brew uninstall mysql”,脚本也会默认在我的旧 mysql 5.6 目录中搜索文件。
但是,如果我指定新的 mysql 安装目录,仍然会出现错误:
$ mysql_install_db --verbose --user=`whoami` --basedir="$/usr/local/Cellar/mysql55/5.5.30" --datadir=/usr/local/var/mysql --tmpdir=/tmp
FATAL ERROR: Could not find my_print_defaults
The following directories were searched:
$/usr/local/Cellar/mysql55/5.5.30/bin
$/usr/local/Cellar/mysql55/5.5.30/extra
这很奇怪,因为如果我 ls 该目录,第一个目录确实包含 my_print_defaults。
那么为什么我仍然收到这个错误?
答案1
我遇到了同样的问题。部分原因是你的 mysql_install_db 行不正确。正如我记录的这里,您必须执行以下步骤 - 包括运行 mysql_install_db 命令之前的步骤 - 以避免后续错误:
- 将名称更改
/usr/local/opt/mysql55/share/mysql55
为/usr/local/opt/mysql55/share/mysql
运行以下命令(与上面相同,但 --datadir 参数有一个变化):
mysql_install_db --verbose --user=
whoami
--basedir="$(brew --prefix mysql55)" --datadir=/usr/local/var/mysql55 --tmpdir=/tmp
如果您查看 mysql 安装时的输出,则会发现 datadir 设置为 /usr/local/var/mysql55。
- 将 /usr/local/opt/mysql55/share/mysql 重命名回 /usr/local/opt/mysql55/share/mysql55
- 启动服务器
步骤 3 是必要的,因为在尝试启动 mysql 服务器时收到“服务器退出而不更新 PID 文件...”错误,并且 apache 错误日志显示尝试查找时出现错误/usr/local/opt/mysql55/share/mysql55/english/errmsg.sys
。