Php mysql#u connect():拒绝用户访问';用户'@';主机';(使用密码:否)

Php mysql#u connect():拒绝用户访问';用户'@';主机';(使用密码:否),php,yii,access-denied,mysql-error-1045,database-installation,Php,Yii,Access Denied,Mysql Error 1045,Database Installation,我知道这个问题被问了很多,但由于修复是情境性的,所以我要问这个问题 错误:mysql\u connect():拒绝用户“username”@'boscustweb0406.eigbox.net访问(使用密码:否) 因此,我有一个脚本,我想安装在我的共享服务器上。脚本可以自己创建一个数据库,但我不允许在这个服务器上这样做,所以我必须手动创建它 它会在错误页面上突出显示这一行: 67 $userName = $this->userName; 68

我知道这个问题被问了很多,但由于修复是情境性的,所以我要问这个问题

错误:mysql\u 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';
您可以在此处复制此问题:

使用主机elionweb.ipagemysql.com,然后在其他字段中输入您想要的任何内容,您将得到相同的错误

我成功地在本地计算机上安装了脚本,没有出现任何错误,因此希望这里有人能帮助我解决这个问题。

使用密码:否”行告诉我$password变量为空

然后我查看了您的代码,发现表单上的属性名称与验证模型不匹配。在您的表单上(使用您提供的链接),我看到了:name=“InstallForm[password]”,但在您的验证模型中,这段代码看起来像:$userPassword=base64\u encode($\u POST['InstallForm']['userPassword']);仔细看一看,你会发现“密码”与“用户密码”不匹配

还有一些其他不匹配的属性。您的表单有:name=“InstallForm[userName]”。但是您的验证模型有:$name=$\u POST['InstallForm']['name']


此外,属性“compnyName”似乎拼写错误,但您似乎在整个代码中都拼错了,因此可能不会引起任何问题。

请勿使用-这些方法已经过时,不推荐使用。相反,请看。既然你已经用
yii
标记了你的问题,你无论如何也不应该乱用自定义连接代码。相反,您可以配置Yii的
db
组件,并且很高兴。Yii附带了一个db抽象。使用它,而不是过时的
mysql.*
函数。此外,base64不是存储密码的合适方式。userPassword和password是两种不同的东西。一个用于管理,一个用于数据库。用户名和名称也是如此。正如在文章中提到的,我能够在本地计算机上安装脚本。