本人已接近奔溃,求各位解答下mamp环境下连接数据库和系统设置的几个问题,不甚感激!

php中文网
发布: 2016-06-20 12:46:12
原创
1206人浏览过

概况:最近学习php编程,系统为mac os x 10.11 ,使用mamp pro(3.1)集成环境

问题:在mamp下的文件夹htdocs中放入简单的echo php代码可以显示,但无法连接数据库,具体如下,
比如按照mamp主页的提示输入数据库连接的测试代码:

$user = 'root';$password = 'root';$db = 'inventory';$host = 'localhost';$port = 8889;$link = mysqli_init();$success = mysqli_real_connect(   $link,    $host,    $user,    $password,    $db,   $port);
登录后复制

http://localhost:8888/  网页显示一片空白,无任何提示。

再测试如下代码
    $host='localhost';    $user='root';    $password=‘root’;     $database=‘mysql’;    $port=8889;    $socket=':/applications/mamp/tmp/mysql/mysql.sock';    $dbc = mysqli_connect($host, $user, $password, $database,$port,$socket) or die(mysqli_connect_error());
登录后复制

网页显示:no such file or directory


再测试如下代码:
<?php $link=mysql_connect("localhost","root", "root"); if(!$link) {echo "ok";}else {echo "false"; }?>
登录后复制

zend里显示warning: mysql_connect(): no such file or directory in /applications/mamp/htdocs/tags.php on line 2
ok
但是localhost里显示false,这个到底算什么?

我被这个问题困惑2天了,切换系统的root用户也试过,一样没反应。

初次之外我尝试在终端里运行mysql -uroot -p
显示-bash: mysql: command not found
尝试关闭mamp启动系统自带的mysql也是一样显示-bash
按照网上查询的http://zhidao.baidu.com/link?url=0fkwdsfntdwu3wwzvjpgy0l-dfpwzkadieg7gwia9ojwyor5eybvbwfnapdkpbasgsgxrfytstmjgucymj0ipk-i5sqkmg66ugqshrl2c43  尝试了修改密码 虽然修改成功但无论改几次一直显示密码不正。

mac自带的mysql会不会和mamp的mysql冲突?

我已经尽可能的尝试去解决了,但能力有限只能请教各位了,真的很想用php做点东西出来,无奈卡在这里烦请各位予以帮助,100分献上,谢谢!


回复讨论(解决方案)

打开错误日志,查看错误
查看php是否安装了mysql扩展
查看mysql是否启动,和监听端口号。

MAC没用过,建议安装一个虚拟机,安装windows系统,下载使用wamp环境,。

你的两段代码,一段是mysqli_connect ,另一段是mysql_connect
你究竟用的是哪个?用这两个都需要安装php-mysql php-mysqli扩展的。

<?phpphpinfo();?>
登录后复制


看看输出的内容中有没有mysql 与mysqli 扩展,如果没有表示安装不成功了。需要重新安装这两个扩展。

再尝试了很多办法  总结应该是PHP连接MySQL报错"No such file or directory"的问题
百度之:http://www.linuxidc.com/Linux/2012-12/76150.htm  这个应该是最有可能的解决办法
但是,用mamp自带的phpinfo页面能找到mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket
然而finder里却看不到文件,先不管了。。。
第3条 3,启动mysql(见说明2),执行命令 STATUS; 记下UNIX socket的值   
这个STATUS命令怎么打?不明白  求解!

http://ju.outofmemory.cn/entry/144933  里面说的
“解决方法,也无敌简单,就是给沙盒里地PHP二进制,做一个软链,放到/usr/local/bin下面,比如命名为php55,以后再执行需要连接数据库的脚本的时候,记得使用php55作为解释器来运行,就会顺畅。”

这个具体怎么做 同样求解!

做软链的方法试了 貌似没用 又要崩溃了
终端输入 In -s /Applications/MAMP/tmp/mysql /usr/local/bin
显示:-bash: In: command not found
我去。。。。

 不懂mac 不过command not found这玩意倒是有点眼熟 貌似是系统环境变量的问题

估计楼主的mac有两个php版本,按装了扩展的是php56,另一个是php55
看看
php -v
/usr/local/bin/php -v

看看是否一样,如果不是一样,就是这个问题了。

只需要把/usr/local/bin/php 软连接到 按装的php路径就可以了。

先开启错误信息:

ini_set('display_errors','on');error_reporting(E_ALL);
登录后复制

看看有什么错误提示

最后发现是PHP里的数据库的端口号错了,修改后就好了,谢谢各位!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号