我在本地主机上有一个简单的数据库,并且正在看书
我在其中创建了表,但是在使用共享文件地址(即包括['SERVER_DOCUMENT'].'path of file'
之后),对PHPMyAdmin的访问被拒绝。
IT表示:
无法连接:无效的设置。 mysqli_real_connect():(HY000 / 1130):不允许主机“ localhost”连接到此MariaDB服务器 在配置中定义的controluser的连接失败。 mysqli_real_connect():(HY000 / 1130):不允许主机“ localhost”连接到此MariaDB服务器 phpMyAdmin尝试连接到MySQL服务器,服务器拒绝连接。您应该检查配置中的主机,用户名和密码,并确保它们与MySQL服务器管理员提供的信息相对应。
我尝试卸载XAMPP,但是当我在书中再次达到同一点并从开始做起一切时,它仍然做同样的事情
<?php
try {
$pdo = new PDO('mysql:hostname=localhost;dbname=ijdb', 'ijdbuser', 'mypassword');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e) {
$error = 'Unable to connect to server' . $e->getMessage();
include 'error.html';
exit();
}
?>
index.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/magicquotes.inc.php';
if (isset($_GET['addjoke'])) {
include 'form.html';
exit();
}
include $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
if (isset($_POST['joketext'])) {
try {
$sql = 'INSERT INTO joke SET
joketext = :joketext,
jokedate = CURDATE()';
$s = $pdo->prepare($sql);
$s->bindValue(':joketext', $_POST['joketext']);
$s->execute();
} catch (PDOException $e) {
$error = 'Error adding submitted joke: ' . $e->getMessage();
include 'error.html';
exit();
}
header('Location: .');
exit();
}
if (isset($_GET['deletejoke'])) {
include $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
try {
$sql = 'DELETE FROM joke WHERE id = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e) {
$error = 'Error deleting joke: ' . $e->getMessage();
include 'error.html';
exit();
}
header('Location: .');
exit();
}
include $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
try {
$sql = 'SELECT joke.id,name,email,joketext FROM joke INNER JOIN author ON authorid=author.id';
$result = $pdo->query($sql);
} catch (PDOException $e) {
$error = 'Error fetching jokes: ' . $e->getMessage();
include 'error.html';
exit();
}
//while ($row = $result->fetch())
foreach ($result as $value) {
$jokes[] = array(
'id' => $value['id'], 'text' => $value['joketext'], 'email' => $value['email'], 'name' => $value['name']
);
}
include 'jokes.html';
?>
我希望我的笑话页面被加载。
这是显示我上面列出的错误的图像:
答案 0 :(得分:1)
在这种情况下,仔细阅读错误消息会有所帮助。
phpMyadmin消息可能是最有用的消息。让我们解析一下。
phpMyAdmin尝试连接到MySQL服务器,服务器拒绝了连接。
确定,localhost
服务器正在运行。
您应在配置中检查主机,用户名和密码
由于某些原因,您输入的用户名/密码组合错误。
并确保它们与MySQL服务器管理员提供的信息相对应。
您是该MySQL服务器的管理员。阅读xampp文档,并查找要使用的用户名和密码。在新的xampp安装中,默认的MySQL用户名是(或曾经是)root
。默认密码是长度为零的字符串。如果您希望使用与php程序不同的用户名/密码组合,则必须
您的php程序登录到MySQL 。 MySQL是服务器软件,当您使用xampp时,它恰巧在本地计算机上运行。因此,它和MySQL必须在用户名/密码组合上达成共识。
就我而言,我认为您应该重新阅读本书中有关如何设置内容的部分。
答案 1 :(得分:0)
我通过互联网搜索后发现此命令为“ mysqld --skip-grant-tables” 虽然在xampp shell中执行此操作可能不确定重置权限,但是却使我的phpmyadmin页面恢复。
答案 2 :(得分:0)
我尝试在xampp shell中使用“ mysqld --skip-grant-tables”,但这不是永久性的解决方案,因为每当我关闭shell命令窗口时,问题就会再次出现。然后我找到了一个很好的永久解决方案。
您可以看到此处描述了整个过程 https://www.youtube.com/watch?v=vzs9Z12OTE4
希望这将永久解决您的问题。