Mac OS X 10.11.6无法启动MySQL:_clock_gettime符号缺失求助
解决MySQL 5.7.21在Mac OS X 10.11.6启动时的
dyld: lazy symbol binding failed: Symbol not found: _clock_gettime错误 这个问题的根源很明确——你装错MySQL版本了!你用的是针对Mac OS X 10.13编译的mysql-5.7.21-1-macos10.13-x86_64.dmg,但你的系统是10.11.6,而_clock_gettime这个系统函数是从Mac OS X 10.12才开始加入的,10.11根本没有这个符号,自然会启动失败。
下面是一步步的解决办法:
1. 彻底卸载当前的MySQL 5.7.21
先把不合适的版本清干净:
- 先停掉可能在运行的MySQL服务:
sudo launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist - 删除MySQL相关的核心文件和配置:
sudo rm -rf /usr/local/mysql sudo rm -rf /Library/PreferencePanes/MySQL* sudo rm -rf /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist - 打开你的
~/.bash_profile,把之前加的/usr/local/mysql/bin路径删掉,然后执行下面的命令让修改生效:source ~/.bash_profile
2. 下载适配Mac OS X 10.11的MySQL版本
找MySQL归档页面里支持10.11的5.7版本,比如mysql-5.7.20-1-macos10.11-x86_64.dmg——这个版本是专门为10.11编译的,完美兼容你的系统。
3. 重新安装并配置
- 运行下载好的dmg安装包,跟着向导一步步完成安装,记得保存好初始的root密码(如果有)。
- 重新编辑
~/.bash_profile,把MySQL的bin目录加入PATH:echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile source ~/.bash_profile
4. 测试启动
现在再试你之前的命令:
mysqld start --skip-grant-tables
或者用系统服务方式启动:
sudo launchctl load /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
这次应该能正常启动了。
小提醒
以后下载MySQL安装包的时候,一定要仔细看文件名里的系统版本标识,别再下错适配更高版本系统的包啦!
内容的提问来源于stack exchange,提问作者Jingwei Li
相关产品推荐
相关产品推荐

