MacOS 10.13下MySQL启动后自动停止及keyring_file缺失求助
解决MacOS 10.13下MySQL启动失败(keyring_file.so缺失)问题
一、修复MySQL启动问题
1. 临时跳过插件加载启动服务
找到MySQL配置文件(通常为/etc/my.cnf或/usr/local/mysql/my.cnf,无则新建),添加以下配置:
[mysqld] early-plugin-load=
保存后重启MySQL服务,即可绕过keyring_file插件加载,让服务正常启动。
2. 手动补充缺失的插件文件
若需要保留密钥环功能,按以下步骤操作:
- 执行
mysql --version确认你的MySQL版本号 - 获取对应版本的
keyring_file.so文件,将其放到/usr/local/mysql/lib/plugin/目录 - 设置文件权限:
sudo chown mysql:mysql /usr/local/mysql/lib/plugin/keyring_file.so sudo chmod 755 /usr/local/mysql/lib/plugin/keyring_file.so
完成后重启MySQL服务。
3. 重新安装兼容版本的MySQL
若重新下载后仍缺失文件,大概率是安装包与MacOS 10.13不兼容:
- 先彻底卸载现有MySQL:
sudo rm -rf /usr/local/mysql sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* rm -rf ~/Library/PreferencePanes/My* sudo rm -rf /Library/Receipts/mysql* sudo rm -rf /var/db/receipts/com.mysql.*
- 下载适配MacOS 10.13的MySQL版本(推荐5.7.x或8.0早期版本,高版本已停止支持旧系统),重新完成安装。
二、.sql转数据库的替代方案
若MySQL暂时无法修复,可使用以下工具完成.sql文件转数据库:
SQLite(轻量无服务):
- 创建SQLite数据库文件:
sqlite3 target_db.db- 在SQLite交互终端导入.sql文件:
.read your_sql_file.sql注意:需手动调整.sql中MySQL特定语法,确保兼容SQLite。
Docker容器化MySQL:
- 启动兼容版本的MySQL容器:
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_pwd --name mysql_temp mysql:5.7- 复制.sql文件到容器内:
docker cp your_sql_file.sql mysql_temp:/tmp/- 创建目标数据库并导入文件:
docker exec -it mysql_temp mysql -uroot -pyour_pwd -e "CREATE DATABASE IF NOT EXISTS target_db;" docker exec -it mysql_temp mysql -uroot -pyour_pwd target_db < /tmp/your_sql_file.sql
内容的提问来源于stack exchange,提问作者bobsmith76
相关产品推荐
相关产品推荐

