У меня есть старое устройство Synology (DSM v5.2-5967 Update 4, phpmyadmin v4.4.7-0103), на котором есть несколько локальных веб-сайтов с рабочими страницами php. Я хочу перенести это на мое новое устройство Synology (DSM V6.1.3-15152, обновление 1, phpmyadmin v4.6.6-0172). При установке новой версии phpmyadmin из Package Center мне необходимо также загрузить Maria DB и PHP 5.6, хотя это не является обязательным требованием в DSM 5. Кроме того, DSM 6 теперь поддерживает параметры в Web Station, где я могу настроить Бэк-сервер http и версия PHP. Я установил это на 5.6, тот, который установлен вместе с phpmyadmin.
Вот код, который работал для меня в старом DSM:
<?php
define ("DB_HOST", "localhost"); // Your database host name
define ("DB_USER", "root"); // Your database user
define ("DB_PASS", ""); // Your database password
define ("DB_NAME", "groceries"); // Your database name
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
?>
Этот код теперь возвращает «Не удалось установить соединение». Другие сайты, которые не обрабатывают это, возвращают 500 ошибок сервера. Я попытался заменить localhost именем устройства Synology, но безрезультатно. Сами файлы PHP работают нормально, но я не могу подключиться к базе данных. Я нигде не вижу панель управления Maria DB, поэтому не знаю, пропустил ли я какие-либо настройки. Это новое устройство со свежей установкой пакетов, поэтому я даже не изменил пароль root.
Я даже попытался установить Apache 2.4 из Package Center и установить его в качестве внутреннего сервера в новых настройках Web Station, а также перезагрузить NAS. Но phpyadmin по-прежнему показывает «nginx / 1.11.10» в качестве веб-сервера. Для справки, мой старый NAS показывает Apache под веб-сервером, но у меня не установлен пакет Apache.
Я в недоумении. Кто-нибудь пытался подключиться к базе данных mysql с помощью Synology DSM 6 и жил, чтобы рассказать об этом?
Я использую DSM6 с DS716 +, и следующий код работает для меня. Существует слишком много причин для достижения проблемы с подключением. Например, расширение не включается и т. Д. Пожалуйста, используйте phpinfo () для проверки перед любыми другими шагами. Попробуй использовать расширение MySQL вместо mysql приложите пример кода для вас:
<?php
$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");
$query = "SHOW TABLES";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_row()) {
printf("%s <br />\n", $row[0]);
}
$result->close();
}
$mysqli->close();
?>
PS: Пожалуйста, оставьте комментарий для кого дать мне downvote
MySQL-сервер работает? #service mysql status
или же #mysql
в командной строке. Вы также можете использовать #mysql -u USERNAME -p
или же #mysql -u USERNAME -h localhost -p
проверить логин. Увидеть MySQL человек
вам нужно добавить порт.
я использую PDO
но вы можете использовать mysql_connect
try
{
$pdo = new PDO("mysql:host=servernameport=3307;dbname=database", "username", "password");
}
catch(PDOException $e)
{
echo $e->getMessage();
}
return $pdo;
Чтобы узнать, какой порт вам нужен, перейдите на maria db
если я прав, этот пакет устанавливается автоматически при установке phpmyadmin