dyld: Symbol not found: __ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE Referenced from: /usr/local/mysql/bin/mysql (which was built for Mac OS X 12.0) Expected in: /usr/lib/libc++.1.dylib in /usr/local/mysql/bin/mysql zsh: abort mysql
时间: 2023-08-15 17:08:00 浏览: 432
这个问题可能是由于 MySQL 编译时使用了新的 C++ 标准库,但是运行时系统没有找到需要的库文件导致的。您可以尝试以下方法来解决这个问题:
1. 确认您的系统是否安装了正确版本的 libc++ 库文件。可以通过以下命令检查:
ls /usr/lib/libc++.1.dylib
如果文件不存在或者版本不正确,可以尝试更新 libc++ 库文件。
2. 检查您的 MySQL 是否与系统兼容。可以查看 MySQL 官方网站上的兼容性列表。
3. 卸载 MySQL,然后重新安装最新版本的 MySQL。
4. 检查您的环境变量设置是否正确。可以通过运行以下命令来检查:
echo $DYLD_LIBRARY_PATH
确认 MySQL 的路径是否被正确添加到 DYLD_LIBRARY_PATH 中。
如果还是没有解决问题,可以尝试使用其他版本的 MySQL 或者联系 MySQL 的技术支持寻求帮助。
相关问题
import osos.environ['DYLD_LIBRARY_PATH']='/usr/local/opt/libomp/lib'import lightgbm as lgb dlopen(/Users/sentianzhenping/opt/anaconda3/lib/python3.9/site-packages/lightgbm/lib_lightgbm.so, 0x0006): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib Referenced from: /Users/sentianzhenping/opt/anaconda3/lib/python3.9/site-packages/lightgbm/lib_lightgbm.so Reason: tried: '/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/usr/local/lib/libomp.dylib' (no such file), '/usr/lib/libomp.dylib' (no such file)
你需要将设置 `DYLD_LIBRARY_PATH` 的代码放在 `import lightgbm` 语句之前。请修改代码如下:
```python
import os
os.environ['DYLD_LIBRARY_PATH']='/usr/local/opt/libomp/lib'
import lightgbm as lgb
```
这样就先设置好了 `DYLD_LIBRARY_PATH` 环境变量,然后再导入 LightGBM 库,就可以顺利加载共享库了。
ImportError: dlopen(/Users/cc/python_envs/envname_01_cheoa_pc_test/lib/python3.9/site-packages/pyodbc.cpython-39-darwin.so, 0x0002): Library not loaded: /usr/local/opt/unixodbc/lib/libodbc.2.dylib Referenced from: <9820BF4A-872E-3566-A1CA-2902C9CCBCE4> /Users/cc/python_envs/envname_01_cheoa_pc_test/lib/python3.9/site-packages/pyodbc.cpython-39-darwin.so Reason: tried: '/usr/local/opt/unixodbc/lib/libodbc.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/unixodbc/lib/libodbc.2.dylib' (no such file), '/usr/local/opt/unixodbc/lib/libodbc.2.dylib' (no such file), '/usr/lib/libodbc.2.dylib' (no such file, not in dyld cache)
这个错误提示表明 pyodbc 在加载 `libodbc.2.dylib` 库时失败了,因为找不到这个库文件。要解决这个问题,你需要检查以下几点:
1. 确认你已经正确安装了 unixODBC 库。
2. 检查 `libodbc.2.dylib` 库文件是否存在于 `/usr/local/opt/unixodbc/lib/` 目录中。如果不存在,可能是由于 unixODBC 安装不完整或者未安装导致的。你可以尝试重新安装 unixODBC 库,或者手动下载 `libodbc.2.dylib` 库文件,并将其放置到 `/usr/local/opt/unixodbc/lib/` 目录中。
3. 确认你的系统环境变量中是否包含了 unixODBC 库的路径。你可以使用以下命令检查:
```
echo $DYLD_LIBRARY_PATH
```
如果输出结果中不包含 `/usr/local/lib` 路径,可以尝试将其添加到环境变量中:
```
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
```
然后重新加载环境变量:
```
source ~/.bash_profile
```
4. 如果你在虚拟环境中运行代码,你需要确保在虚拟环境的 `bin/activate` 脚本中也添加了上述命令,将 `/usr/local/lib` 路径添加到 `DYLD_LIBRARY_PATH` 环境变量中。
如果你按照上述步骤仍然无法解决问题,你可以尝试重新安装 pyodbc 库,或者在 Stack Overflow 等技术社区上寻求帮助。
阅读全文