我使用MySQL Workbench创建了一个数据库,现在我需要访问它。所以我写了一个php脚本来访问它:
<?
$db = mysql_connect("127.0.0.1:3306","root", "");
if (!$db){
echo "Could not connect to database";
exit();
}
$db_name = "pfc_db";
if (!mysql_select_db($db_name, $db)){
die ("Could not select database");
}
$sql=mysql_query("select * from CAPAS");
while($row=mysql_fetch_assoc($sql)){
$output[]=$row;
if (isset($output)){
echo "yes";
echo $output[0];
}
else{echo "no";}
}
mysql_close();
?>
我对MAMP和MySQL社区服务器有疑问,我需要推进正确的道路。 我在我的mac上安装了MAMP,并将端口切换到默认的mysql 3306.我已将PHP测试脚本放在我在htdocs下创建的文件夹“Api”中。所以要试一试,我在我的浏览器http://127.0.0.1/api/test.php上键入,结果是“无法连接到数据库”。我做得对吗?
那么社区服务器呢?它比MAMP好吗?它应该运行MAMP吗?我可以使用社区服务器吗?如果是这样,我应该在哪里放置PHP脚本?哪个文件夹?因为当我尝试使用社区服务器进行相同的测试时,浏览器开始将php脚本下载到我的下载文件夹,而不是显示错误消息。为什么会这样?
正如你所看到的那样,我对这些服务器的东西有点麻烦,我需要一些帮助才能搞清楚。
答案 0 :(得分:5)
您无需安装MySQL社区服务器。 MAMP已经附带MySQL。
您需要使用mysql_error()
函数在代码中输出更具体的错误。
if (!$db){
echo "Could not connect to database" . mysql_error();
exit();
}
$db_name = "pfc_db";
if (!mysql_select_db($db_name, $db)){
die ("Could not select database" . mysql_error());
}
mysql_error将从MySQL返回错误消息。
答案 1 :(得分:0)
按照我给用户775263的asnwer,我得到了这个用户表:
+
--------------------+------+----------+
| Host | User | Password |
+--------------------+------+----------+
| localhost | root | |
| SquirrellJoe.local | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| SquirrellJoe.local | | |
+--------------------+------+----------+
如您所见,任何用户都设置了密码。但后来我发现在bin / phpmyadmin下有一个config.inc.php脚本,里面有这些句子:
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = 'root'; // MySQL password (only needed
我再次尝试与$db = mysql_connect("127.0.0.1:3306","root", "root");
建立联系并且联系成功。为什么mysql命令行中的users表没有反映出来?这是正常的吗?我应该改变吗?
然后我遇到了另一个问题。它无法选择我在MySQL Workbench上创建的数据库'pfc_db'。我收到错误消息未知数据库'pfc_db'。但是,当我输入mysql> show databases;
时,提到的数据库确实出现在表格中:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| pfc_db |
| test |
+--------------------+
那么这可能是什么问题?
答案 2 :(得分:0)
好吧,如果有人遇到同样的问题,我会回答自己。
密码错误的发生是因为我在同一台计算机上安装了两个mysql,因此我检查了其中一个密码,浏览器正在查看另一个。
因此,如果您在密码访问方面遇到问题,请检查您是否安装了两个mysql,并检查文件config.inc.php
我还通过套接字连接更改了TCP / IP,如果您将localhost用作服务器,则可以提高速度。
答案 3 :(得分:0)
这对我有用
sudo mkdir / var / mysql sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
答案 4 :(得分:0)
我遇到了这个问题并使用默认的TCP / IP端口而不是套接字端口修复了它。
所以在我的情况下,而不是3306,我使用 8889
$db = mysql_connect("127.0.0.1:8889","root", "");