Heim > Artikel > Backend-Entwicklung > 本人已接近奔溃,求各位解答下mamp环境下连接数据库和系统设置的几个问题,不甚感激!
概况:最近学习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);
$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());
<?php $link=mysql_connect("localhost","root", "root"); if(!$link) {echo "ok";}else {echo "false"; }?>
打开错误日志,查看错误
查看php是否安装了mysql扩展
查看mysql是否启动,和监听端口号。
MAC没用过,建议安装一个虚拟机,安装windows系统,下载使用wamp环境,。
你的两段代码,一段是mysqli_connect ,另一段是mysql_connect
你究竟用的是哪个?用这两个都需要安装php-mysql php-mysqli扩展的。
<?phpphpinfo();?>
再尝试了很多办法 总结应该是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里的数据库的端口号错了,修改后就好了,谢谢各位!