Проблема с MySQL при переходе с Dreamhost на HostGator - PullRequest
0 голосов
/ 07 июня 2011

Во-первых, позвольте мне начать с того, что сайт отлично работает на Dreamhost (за исключением последней недели с ужасными задержками и простоями - но это не то, что заставило меня отойти от них, читайте ниже).

Я размещал свой сайт на Dreamhost.Мне пришлось переехать из-за проблемы с владельцем доходного хостинга (он не позволил мне изменить конфигурацию dns на панели и не сделал бы это для меня).Поэтому я подписал с HostGator, и теперь я застрял с этой проблемой MySQL.Вот что я сделал до сих пор:

Сначала я загрузил все файлы через ftp на сервер HostGator.Затем я экспортировал базу данных со старого сервера и импортировал ее на новый.Затем я изменил сервер имен на регистраторе домена и, наконец, через некоторое время нажал клавишу F5 в браузере.

И затем появилось огромное количество строк ошибок.Поэтому я искал Портал Поддержки HostGator и обнаружил, что мне пришлось изменить это (код, который я использовал ранее):

<?
date_default_timezone_set('America/Sao_paulo');

if ($_SERVER['HTTP_HOST']=='localhost') {
    $conexao = mysql_connect("localhost");
    $bd = mysql_select_db("tablename");     
} else {
    $conexao = mysql_connect("mysite.phpmyadmin.com","mylogin","mypassword");
    $bd = mysql_select_db("mydatabasename");
}
mysql_query("SET time_zone='-3:00'");
?>

На что-то вроде этого:

<?
define('DB_NAME', 'mydatabasename');
define('DB_USER', 'mylogin');
define('DB_PASSWORD', 'mypassword');
define('DB_HOST', 'localhost');
?>

Дело в том, что я не эксперт по PHP или MySQL.Программист пускает меня без поддержки, поэтому я сам по себе.

Когда я пытаюсь загрузить свой сайт, он выдает следующие ошибки:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'mylogin'@'localhost' (using password: NO) in /home/mylogin/public_html/index.php on line 42

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/mylogin/public_html/index.php on line 42

ERROR 40 >Access denied for user 'mylogin'@'localhost' (using password: NO)

В файле index.phpстрока 42 такова:

$sqlo = mysql_query("select *, max-buyers as left from offers inner join rel_city on rel_city.id_offer = offers.id  where id_city=$city and startdate <= now() and enddate >= now() order by  priority desc, left desc, enddate asc") or die("ERROR 40 >".mysql_error());

Одна важная деталь заключается в том, что мне нужны эти две строки для работы с новым хостингом, но всякий раз, когда я пытаюсь их вставить, появляются новые ошибки:

date_default_timezone_set('America/Sao_paulo');
mysql_query("SET time_zone='-3:00'");

Есть идеи, как мне это сделать?

Ответы [ 4 ]

2 голосов
/ 07 июня 2011

Попробуйте это:

<?
date_default_timezone_set('America/Sao_paulo');
$conexao = mysql_connect("localhost","mylogin","mypassword");
$bd = mysql_select_db("mydatabasename");
mysql_query("SET time_zone='-3:00'");
?>

Я упростил исходный код, чтобы удалить оператор IF / ELSE, который выглядит так, как будто он может использоваться для разработки.

Если вы получаете другие ошибки, не опубликованные, пожалуйста, включите их.

0 голосов
/ 07 июня 2011

Судя по ошибкам, в MySQL не настроены пользователь и пароль БД.

0 голосов
/ 07 июня 2011

Ваша база данных имеет имя пользователя и пароль.Убедитесь, что вы указали их правильно, иначе вы не сможете подключиться к своей базе данных.

Сообщения об ошибках, которые вы видите, связаны с тем, что ваш программист использует функцию PHP die(), котораяЭто не очень хорошая практика.

Проверьте у своего хоста и убедитесь, что у вас есть разрешения и для ваших таблиц.Вы должны, но вы никогда не знаете.

0 голосов
/ 07 июня 2011

Я не знаком с настройкой HostGator, но, похоже, проблема заключается в адресе или учетных данных, с которыми вы пытаетесь получить доступ к серверу.

Возможно, HostGator добавляет префикс к именам пользователей и базам данных? (напр., может быть, это должно быть что-то имя-базы-данных, а не просто имя-базы-данных)

Или, возможно, их установка не поддерживает использование localhost в качестве адреса базы данных; возможно, у них есть определенный и изолированный адрес для подключения.

Я бы поддержал вас или дважды проверил адреса, имена пользователей и имена баз данных в ваших настройках cPanel. Это может дать вам хорошее начало.

(Этот совет, конечно, предполагает, что у вас есть правильное имя пользователя и пароль для базы данных, что указывает на ошибку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...