Невозможно подключиться к серверу MySQL с помощью MAMP или с помощью Сервера совместной работы.
Я создал базу данных с 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 Community Server, и мне нужно идти по правильному пути. Я установил MAMP на моем Mac и переключил порты на mysql по умолчанию 3306. Я поместил тестовый скрипт PHP в папку "Api", которую я создал в htdocs. Поэтому, чтобы попробовать это, я набираю в своем браузере http://127.0.0.1/api/test.php и в результате получается "Не удалось подключиться к базе данных". Я делаю это правильно?
А как насчет Community Server? Это лучше чем MAMP? Должен ли он работать для работы MAMP? Могу ли я просто использовать Сервер совместной работы? Если так, где я должен разместить сценарии PHP? Какая папка? Потому что, когда я пытаюсь выполнить тот же тест с Сервером совместной работы, вместо отображения сообщения об ошибке браузер начинает загрузку сценария php в мою папку загрузок. Почему так происходит?
Как вы можете видеть, у меня немного запутался этот сервер и мне нужна помощь, чтобы разобраться.
5 ответов
Ну, я сам отвечу так, что если кто-то столкнется с той же проблемой.
Ошибка пароля произошла, потому что у меня было две установки mysql на одном компьютере, поэтому я проверял пароли в одном из них, а браузер смотрел на другой.
Поэтому, если у вас есть проблемы с доступом по паролю, убедитесь, что у вас не установлены два mysql, а также проверьте файл config.inc.php
Я также изменил TCP/IP с помощью подключения сокетов, что повышает скорость, если вы используете свой локальный хост в качестве сервера.
Вам не нужно устанавливать MySQL Community Server. 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.
Это сработало для меня
sudo mkdir /var/mysql sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
Я столкнулся с этой проблемой и исправил ее, используя порт TCP/IP по умолчанию вместо порта сокета.
Так что в моем случае вместо 3306 я использовал 8889
$db = mysql_connect("127.0.0.1:8889","root", "");
Следуя ответу, который я давал user775263, я получаю эту таблицу пользователей:
+
--------------------+------+----------+
| 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 не отражает это? Это нормально? Должен ли я изменить это?
И тогда я сталкиваюсь с другой проблемой. Он не может выбрать базу данных 'pfc_db', которую я создал на MySQL Workbench. Я получаю сообщение об ошибке Неизвестная база данных 'pfc_db'. Тем не менее, когда я печатаю mysql> show databases;
упомянутая БД действительно появляется на столе:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| pfc_db |
| test |
+--------------------+
Так в чем может быть проблема здесь?