Я понимаю, что этот вопрос задают много, но поскольку исправление является ситуационным, я задаю этот вопрос.mysql_connect(): Доступ запрещен для пользователя 'user' @ 'host' (с использованием пароля: НЕТ)
Ошибка: mysql_connect(): Доступ запрещен для пользователя «username'@'boscustweb0406.eigbox.net» (не используя пароль: NO)
Так у меня есть сценарий, который я хочу установить на моем общем сервер. Скрипт может создать базу данных самостоятельно, но мне не разрешено делать это на этом сервере, поэтому мне нужно ее вручную создать.
Он выделяет эту строку на странице ошибки:
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, а затем положить все, что вы хотите в других областях и вы получите ту же ошибку.
Я успешно получил скрипт, установленный на моей локальной машине, без каких-либо ошибок, поэтому, надеюсь, кто-то здесь поможет мне понять это.
Не используйте ['mysql_connect'] (http://php.net/manual/en/function.mysql-connect.php) - эти методы безнадежно устарели и устарели. Вместо этого посмотрите на [PDO] (http://www.php.net/manual/en/intro.pdo.php). И поскольку вы отметили свой вопрос с помощью 'yii', вы все равно не должны возиться с пользовательским кодом подключения. Вместо этого вы можете настроить компонент 'db' Yii и быть счастливым. –
У Yii есть абстракция DB, которая поставляется вместе с ней. Используйте это вместо устаревших 'mysql_ *' функций. Также base64 НЕ подходит для хранения паролей. –