Fatal Error: ezSQL_mysql requires mySQL Lib to be compiled and or linked in to the PHP engine

本文介绍了如何解决PHP中出现的“Fatal Error: ezSQL_mysql requires mySQL Lib to be compiled and or linked into the PHP engine”的问题。针对PHP 5.5.0及以后版本不再支持mysql_connect的情况,给出了下载并安装PHP 5.4版本的解决方案,并提供了当遇到端口冲突时的处理方法。

Fatal Error: ezSQL_mysql requires mySQL Lib to be compiled and or linked in to the PHP engine

解决方法:PHP 5.5.0 起不再支持mysql_conn。你需要下载PHP 5.5以下的版本才可运行。

 

看了下源码,在ez_sql_mysql.php中有这样一行:

 

if ( ! function_exists ('mysql_connect') ) die('<b>Fatal Error:</b> ezSQL_mysql requires mySQL Lib to be compiled and or linked in to the PHP engine');

于是,mysql_connect是什么鬼???

 

问度娘:“PHP 怎么配置 mysql_connect”

度娘答:“php高版本不再使用mysql_connect()来连接数据库

原来如此,于是去UPUPW下了PHP5.4版本。运行成功。

 

如果在5.4版本,数据库启动失败。可能是端口被占用了。

不用管它,因为占用端口的可能是数据库本身。

如果被其它的占用——

打开cmd,输入 netstat -ano | findstr "3306"

如果有数据,则看到数据的每行的最后一列数字,那个是占用端口的进程。

比如:

 TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING      1024
 TCP    [::]:3306              [::]:0                 LISTENING       1024

 

输入:taskkill  /f /pid 1024即可终结。

重启数据库,运行成功。

 

<think>我们讨论的是编译错误:fatal error: safe_lib.h: No such file or directory 这个错误表明编译器在包含路径中找不到safe_lib.h头文件。safe_lib.h是Safe C Library(安全C库)的一部分,通常用于提供更安全的C标准库函数实现。 根据用户提供的引用,我们可以看到类似的问题(如引用[1]、[2]、[3]、[4]、[5])都是关于头文件找不到的错误。解决这类问题的通用思路是: 1. 确认缺失的头文件属于哪个开发包(或库)。 2. 安装对应的开发包(通常包名包含-dev或-devel,具体取决于Linux发行版)。 3. 如果已经安装但编译器仍然找不到,可能需要手动指定头文件的路径(通过-I选项)。 针对safe_lib.h,它通常属于libsafec开发包。因此,我们可以尝试安装libsafec的开发包。 具体步骤: 步骤1:尝试安装libsafec开发包 对于基于Debian的系统(如Ubuntu): ```bash sudo apt update sudo apt install libsafec-dev ``` 对于基于RHEL的系统(如CentOS): ```bash sudo yum install libsafec-devel ``` 步骤2:如果安装后仍然找不到头文件,可能需要检查头文件的实际路径,并确保编译器能够找到它。可以尝试查找头文件位置: ```bash find /usr -name 'safe_lib.h' 2>/dev/null ``` 如果找到的路径不在标准包含路径中(如/usr/include),则需要在编译时通过-I选项指定: ```bash gcc -I/path/to/directory_containing_safe_lib.h ...其他编译选项... ``` 步骤3:如果上述方法无效,可能需要从源码安装Safe C Library。 从源码安装的步骤(以Ubuntu为例): 1. 安装依赖: ```bash sudo apt install cmake ``` 2. 下载源码: ```bash git clone https://github.com/rurban/safeclib cd safeclib ``` 3. 编译安装: ```bash mkdir build cd build cmake .. make sudo make install ``` 安装完成后,safe_lib.h通常会安装在/usr/local/include目录中,这个目录通常已经被包含在编译器的默认搜索路径中。如果没有,则需要使用-I/usr/local/include选项。 步骤4:如果问题仍未解决,检查编译脚本或Makefile,确保没有覆盖默认的包含路径。 引用说明: 我们参考了引用[5]中关于手动安装缺失库并创建符号链接的方法,但这通常适用于头文件在非标准位置的情况。另外,引用[4]中提到了在编译选项中添加包含路径(-I)的方法,也是解决此类问题的重要手段。 注意事项: - 在修改编译选项时,确保添加的包含路径正确。 - 安装开发包后,可能需要重新运行配置脚本(如./configure)或重新生成构建文件(如使用cmake重新生成)。 因此,针对当前错误,我们优先尝试安装libsafec-dev(或libsafec-devel)。如果系统仓库中没有这个包,则考虑从源码安装。 相关问题: §§相关问题§§ 1. 如何解决编译时找不到头文件的问题? 2. 在Linux系统中如何安装开发库? 3. 如何手动指定头文件的搜索路径? </think>### 解决编译错误:`fatal error: safe_lib.h: No such file or directory` 这个错误表明编译器在查找头文件时无法定位 `safe_lib.h` 文件。以下分步骤解决: --- #### 1. **确认缺失的依赖库** `safe_lib.h` 属于 **Safe C Library (libsafec)** 开发包。解决方案: ```bash # Debian/Ubuntu 系统 sudo apt update sudo apt install libsafec-dev # RHEL/CentOS 系统 sudo yum install libsafec-devel ``` --- #### 2. **手动指定头文件路径** 如果已安装但路径未被识别,在编译命令中用 `-I` 指定目录: ```bash # 定位头文件实际路径 find /usr -name safe_lib.h 2>/dev/null # 示例:若文件在 /usr/include/libsafec gcc -I/usr/include/libsafec your_source.c -o output ``` --- #### 3. **源码编译安装(备用方案)** 若包管理器无此库,手动编译安装: ```bash git clone https://github.com/rurban/safeclib.git cd safeclib ./build-aux/autogen.sh ./configure make sudo make install ``` --- #### 4. **检查环境变量** 确保包含路径在 `CPATH` 或 `C_INCLUDE_PATH` 中: ```bash # 临时添加路径 export CPATH=/usr/local/include:$CPATH # 永久添加(写入 ~/.bashrc) echo 'export CPATH=/usr/local/include:$CPATH' >> ~/.bashrc source ~/.bashrc ``` --- #### 5. **链接库路径** 如果出现链接错误(如 `undefined reference`),需添加链接选项: ```bash # 编译时链接 libsafec gcc your_source.c -lsafec -o output # 指定库路径(若库在非标准位置) gcc -L/usr/local/lib your_source.c -lsafec -o output ``` --- ### 验证解决 编译成功后,可通过以下命令验证: ```bash # 检查头文件包含路径 echo | gcc -E -Wp,-v - 2>&1 | grep 'safe_lib.h' ``` 输出应显示包含路径,例如: ``` /usr/include/libsafec/safe_lib.h ``` ### 常见场景解决方案 | 错误场景 | 解决方案 | |---------|----------| | 开发包未安装 | 执行 `sudo apt install libsafec-dev` | | 头文件在非标准路径 | 添加 `-I/path/to/libsafec` 编译选项 | | 库文件未链接 | 添加 `-lsafec` 链接选项 | | 权限问题 | 使用 `sudo make install` 安装库 | > **关键提示**:对于交叉编译环境(如引用[3]的Yocto工具链),需在构建系统中添加 `libsafec` 依赖项[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值