mac os java 项目连接不到本地数据库,远程的就没问题

mac os java 项目连接不到本地数据库,远程的就没问题,第1张

上面提到区别就是导致mac下无法连接数据库的原因。那为什么socket方式无法连接呢?由于mac os lion上已经自带了apache和php,我的环境使用就使用默认的,mysql服务是在官网下载dmg安装最近版本,php的配置文件(/ect/phpini)中设置有三个地方(mysqldefault_socket、mysqlidefault_socket、pdo_mysqldefault_socket)设置了mysql socket文件存放的位置,其默认值为/var/mysql/mysqlsock。查看mysql服务使用的socket文件有两种方式

方法1:

复制代码代码如下:

echo "show variables" | mysql | grep "socket"

方法二:

复制代码代码如下:

echo "status" | mysql | grep "socket"

注意:如果mysql设置了密码,使用-u,-p来指定用户名和密码

这里看到mysql的socket文件存放位置为/tmp/mysqlsock。

看到这儿应该知道问题所在了吧,使用localhost连接失败的原因为在socket的方式下,php默认配置的mysql服务的socket文件不存在,所以导致连接失败,如果把连接失败的错误信息dump出来,你应该会看到错误信息中包含了“No such file or directory”。

知道原因就容易修改了,只需要把php配置文件中mysqldefault_socket、mysqlidefault_socket、pdo_mysqldefault_socket这三项值修改为mysql服务配置对应值即可,修改好后需要重启apache服务。当然也可以修改mysql配置文件中的socket信息,使其保持一致即可,修改好后重启mysql服务。

PDO是PHP5新出来的东东,它是连接数据库的组件,听说以后php版本以PDO为默认连接,它可以适配多种数据库,mysql,mssql,oracle等,不像以前一种数据库有自己的连接方式和固定函数,它采取统一方式。那个快,现在我可以告诉你,mysql没测试过,但在mssql,oracle上测试过,PDO比传统要快将近10倍,特别是当web服务器与数据库不在同一计算机时,PDO显示的更快。这是我在单位老爷机上测试的。

以上就是关于mac os java 项目连接不到本地数据库,远程的就没问题全部的内容,包括:mac os java 项目连接不到本地数据库,远程的就没问题、PDO连接数据库和mysql_connect有什么具体区别 - 技术问答、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9351158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存