这是我第一次将网页上传到服务器,而且我对这个主题缺乏经验。 我下载xampp在生产环境中工作,通过phpmyadmin我配置了一个用户名,密码和host ='%' 但是当我用Filezila上传我的文件时,我抛出这个:
SQLSTATE [HY000] [1045]访问被拒绝用户' @' localhost' (使用 密码:是)
我尝试通过Mysql Shell和Workbench连接到我的服务器来创建用户" user"它具有访问我的数据库的所有权限,但在这两种情况下我都抛出了以下内容:
主机xxxx.xx.xx不允许连接到此MariaDB服务器。
我不明白为什么是MariaDB Server?我没有下载或其他东西。
我真的不知道如何将权限授予主机内的新用户,以便它可以访问我的数据库。我的连接代码如下:
try {
$dsn = 'mysql:host=%;dbname=db_name;charset=utf8';
$db = new PDO($dsn, 'user', 'contraseña');
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
答案 0 :(得分:2)
1)对于第一个错误,它表示您的mysql凭据无效。在PHP代码中更正数据库配置。安排用户名,密码等...您可以从您的托管服务提供商处获取此信息。尝试更改'%'到' localhost'。
2)对于第二个 Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server和
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
答案 1 :(得分:0)
MariaDB是MySQL的一个分支,默认情况下,许多托管服务提供商和Linux发行版都有MariaDB。使用MariaDB与MySQL完全相同。请注意,在您的连接字符串中,主机通常是localhost
而不是%
。
答案 2 :(得分:0)
对于第一个问题:如果您的服务器名称是localhost。请从托管服务提供商处验证所有信息(服务器名称,用户名,数据库密码)。试试这段代码:
<?php
$servername = "localhost";
$username = "yourusername";
$password = "yourpassword";
try {
$conn = new PDO("mysql:host=$servername;dbname=yourdatabase",
$username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>