Php mysql#u connect():拒绝用户访问';用户'@';主机';(使用密码:否)
我知道这个问题被问了很多,但由于修复是情境性的,所以我要问这个问题 错误:mysql\u connect():拒绝用户“username”@'boscustweb0406.eigbox.net访问(使用密码:否) 因此,我有一个脚本,我想安装在我的共享服务器上。脚本可以自己创建一个数据库,但我不允许在这个服务器上这样做,所以我必须手动创建它 它会在错误页面上突出显示这一行: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
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是两种不同的东西。一个用于管理,一个用于数据库。用户名和名称也是如此。正如在文章中提到的,我能够在本地计算机上安装脚本。