mysql_connect(): доступ запрещен для пользователя 'user'@'host' (с использованием пароля: НЕТ)
Я понимаю, что этот вопрос часто задают, но, поскольку исправление носит ситуационный характер, я задаю этот вопрос.
Ошибка: mysql_connect (): доступ запрещен для пользователя 'username'@'boscustweb0406.eigbox.net' (используя пароль: НЕТ)
Итак, у меня есть скрипт, который я хочу установить на свой общий сервер. Сценарий может создать базу данных самостоятельно, но мне не разрешено делать это на этом сервере, поэтому я должен создать ее вручную.
Это выделяет эту строку на странице ошибок:
67 $userName = $this->userName;
68 $password = $this->password;
69 $databaseName = $this->databaseName;
70
71 /*$connection = new CDbConnection($localhost,$userName,$password);
72 $connection->active=true;
73 $sql = "SHOW DATABASES LIKE $databaseName";
74 $command = $connection->createCommand($sql);
75 $rowCount=$command->execute(); */
76
77 //$command = $connection->createCommand($sql);
78
79 $con = mysql_connect($localhost,$userName,$password);
80 if (!$con)
81 {
82 $this->addError('databaseName','Database already exist');
83 }
84 else
85 {
86 if(mysql_select_db($databaseName))
87 {
88 $this->addError('databaseName','Database already exist');
89 return false;
90 }
91 }
Я проверил и перепроверил все детали, и они верны.
Вот моя модель проверки:
50 $userPassword = base64_encode($_POST['InstallForm']['userPassword']);
51 $name = $_POST['InstallForm']['name'];
52 $compnyName = $_POST['InstallForm']['compnyName'];
53 $language = $_POST['InstallForm']['language'];
54 $timeZone = $_POST['InstallForm']['timeZone'];
55 if($model->validate())
56 {
57 $con = mysql_connect($hostName,$userName,$password);
58 $dat = "CREATE database $databaseName";
59
60 $controlVal = '$controllername';
Вы можете повторить проблему здесь: http://staging-sendy.elionweb.com/
Используйте хост elionweb.ipagemysql.com, затем поместите все остальные данные в другие поля, и вы получите ту же ошибку.
Я успешно установил скрипт на моей локальной машине без каких-либо ошибок, так что, надеюсь, кто-то здесь может помочь мне разобраться в этом.
1 ответ
Строка "using password: NO" говорит мне, что ваша переменная $ password пуста.
Затем я изучил ваш код, и кажется, что имена атрибутов в форме и вашей модели проверки не совпадают. В вашей форме (используя предоставленную вами ссылку) я вижу: name = "InstallForm [пароль]", но в вашей модели проверки этот код выглядит следующим образом: $userPassword = base64_encode($_POST['InstallForm']['userPassword']); Посмотрите немного ближе, и вы увидите, что "пароль" не совпадает с "userPassword".
Есть также несколько других несовпадающих атрибутов. Ваша форма имеет: name="InstallForm[userName]". Но ваша модель проверки имеет: $name = $_POST['InstallForm']['name'];
Кроме того, атрибут "compnyName", похоже, написан с ошибкой, но кажется, что вы неправильно написали его в коде, так что это может не вызвать никаких проблем.