首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PHP mysql库从mysqlnd更改为libmysql (用于SSL连接)

问将PHP mysql库从mysqlnd更改为libmysql (用于SSL连接)
EN

Stack Overflow用户
提问于 2011-04-23 09:19:11
回答 1查看 1.7K关注 0票数 3

我正在Windows框上使用最新的PHP 5.3.6。我配置了一个远程MySQL服务器,使其只接受SSL连接。与MySQL命令行客户端连接良好:

mysql.exe -u用户-h mysql.example.com -P 3307 --ssl=C:\www\mysql.example.com.crt -p

但是,我不能通过PHP连接。根据PHP文档,这是由于PHP5.3默认使用更新的MySQL本机驱动程序(mysqlnd)。此驱动程序不支持SSL。

我不敢相信,他们允许这种倒退(SSL是某些人使用mysqli而不是mysql扩展的少数原因之一),而不提供一种简单的方法来恢复到支持SSL的旧的libmysql驱动程序。

在php.net上,没有迹象表明如何做到这一点。此外,重新编译也不是一种选择。因此,我的问题是:如何容易做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2011-04-23 19:47:00

在php.net上,没有迹象表明如何做到这一点。此外,重新编译也不是一种选择。

为了创建mysql、mysqli和PDO扩展,必须对MySQL接口库进行编译。您不能简单地交换底层库。为了使用另一个库,比如MySQL提供的库,您必须针对它重新编译PHP。

切换到本机库的原因是MySQL提供的库是在GPL下发布的。PHP许可证与GPL不兼容,因此分发针对GPL代码编译的PHP二进制文件在Thou列表上非常高。你可以感谢和/或诅咒MySQL的人的这一点完全愚蠢。只有白痴和坏人在GPL下发布库代码。

如果你不能重新编译,你可能是运气不好。请记住,微软提供了VC9 (Visual 2008) 不计代价,因此如果需要,您应该能够执行重新编译。

您可能希望探索到MySQL服务器的安全连接的其他选项。

如果远程计算机是Linux或其他基于Unix的机器,那么使用SSH隧道(端口转发)可能对您有用。有一些许多用于Windows的SSH客户端可以做到这一点。

您还应该考虑OpenVPN,一种构建在SSL/TLS之上的VPN解决方案。您可以使用它在这两台机器之间建立安全连接,而无需担心协议级别的安全性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5763377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档