开发者社区> 问答> 正文

centos 下安装 pdo_mysql 扩展 报错 ?报错

php 是源码编译安装,mysql 是通过rpm 包安装,想安装一个pdo_mysql扩展;进入到php的源码包下找pdo_mysql扩展后;

一直编译不通过;


./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/bin/mysql --with-zlib-dir=/var/lib64/mysql

mysql的安装路径我也不知道是那个但是 whereis mysql 出来的路径 就  /usr/bin/mysql 有效,

错误如下


checking for MySQL support for PDO... yes, shared
checking for the location of libz... /var/lib64/mysql
checking for mysql_config... /usr/bin/mysql
/usr/bin/mysql: unknown option '--libs'
/usr/bin/mysql: unknown option '--cflags'
checking for mysql_commit in -lmysqlclient... no
checking for mysql_commit in -lmysqlclient... (cached) no
configure: error: PDO_MYSQL configure failed, MySQL 4.1 needed. Please check config.log for more information.



请大神帮忙解决啊;谢谢;



展开
收起
爱吃鱼的程序员 2020-06-14 16:34:49 837 0
2 条回答
写回答
取消 提交回答
  • /usr/bin/mysql 是客户端路径 你应该使用

    root@e152fda7761b:/# whereis mysqld
    mysqld: /usr/sbin/mysqld
    
    2021-10-11 18:38:52
    赞同 展开评论 打赏
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    ./configure--with-php-config=/usr/local/php/bin/php-config--with-pdo-mysql=/usr--with-zlib-dir=/var/lib64/mysql



    如果使用系统自带的mysql可以使用以上方法,需要安装mysql-devel包又是一个无头问题。是需要编译php哪个版本?你提供的报错信息明显提示你,需要mysql4.1回复 @小十郎:提问的话,把自己的详细操作记录+结果贴出来,有截图最好。你描述的问题,都不知道如何下手给你分析。因为错误不明确,原因太多。确实通过了编译了;而且安装成功了;我php.ini也打开扩展了;重启fpm的时候说需要pdo扩展;我又去编译安装了pdo;又把pdo扩展在ini中开启;在重启fpm,奶奶的说pdo.so是无效的;我都是从源码中的扩展编译安装的;so文件也生成了;建议用包管理工具安装php-pdo扩展,并且把你编译安装的pdo删除,去掉php.ini中pdo.so的指定,重启php就能生效了

    引用来自“_Yud”的评论

    ./configure--with-php-config=/usr/local/php/bin/php-config--with-pdo-mysql=/usr--with-zlib-dir=/var/lib64/mysql



    引用来自“_Yud”的评论

    ./configure--with-php-config=/usr/local/php/bin/php-config--with-pdo-mysql=/usr--with-zlib-dir=/var/lib64/mysql



    在php的目录中执行./configure--with-mysql=/usr/--enable-pdo--enable-pdo-mysql--with-mysql=DIR和--with-mysqli=FILE如果没有指明具体的MySQL路径和mysql_config位置,则默认使用PHP自己实现的mysqlnd(MySQLnativedriver).
    mysqlnd(MySQLNativeDriverforPHP)作为PHP项目的一部分,用于取代libmysql.
    mysqlnd的主要目的是为了解决长久以来mysql和php的license的问题,它将作为PHP的源代码的一部分和PHP一起发布.
    mysqlnd包含了模块mysql,mysqli,pdo_mysql.
    5.3开始引入了mysqlnd,从PHP5.4开始,PHP开发组已经把mysqlnd作为mysql,mysqli,pdo的默认链接目标,当然,你也可以通过–with-mysql=***来指定你想要链接到libmysql.
    除了解决版权问题外,mysqlnd比libmysql更快,更节省内存,而且提供了丰富的性能统计功能,也更方便PHP的编译.
    http://php.net/manual/en/mysqlnd.overview.php
    http://dev.mysql.com/downloads/connector/php-mysqlnd/

    mysqlnd作为一个PHP扩展,跟PHP是紧耦合的,使用的是PHP的内存管理系统,所以内存占用要比libmysql少,效率也更高.可以用memory_get_usage()跟踪mysqlnd的内存使用,同时也受memory_limit的内存限制.

    虽然PHP页面在解释执行完就释放内存资源,但如果使用了持久连接,PHP进程在页面执行完成后是不会释放数据库连接的,加上PHP内嵌的驱动mysqlnd,PHP操作MySQL的性能是很高的.
    2020-06-14 16:35:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载