Отказ в доступе к привилегиям localhost / phpmyadmin (HY000 / 1130) - PullRequest
0 голосов
/ 27 июня 2019

У меня есть простая база данных на моем локальном хосте, и я слежу за книгой

Я создал в ней таблицы, но после того, как я использовал общие адреса файлов, т.е. включил ['SERVER_DOCUMENT'].'path of file', доступ к PHPMyAdmin запрещен.

ИТ говорит, что:

Невозможно подключиться: неверные настройки.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';
?>

Я ожидаю, что моя страница шутки будет загружена.

Вот изображение, показывающее перечисленные выше ошибки:

image

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Это тот случай, когда поможет внимательное прочтение сообщения об ошибке.

Возможно, сообщение phpMyadmin является наиболее полезным.Давайте разберем его.

phpMyAdmin попытался подключиться к серверу MySQL, и сервер отклонил соединение.

ОК, сервер localhost запущен.

Вы должны проверить хост, имя пользователя и пароль в вашей конфигурации

По какой-то причине заданная вами комбинация имени пользователя и пароля неверна.

и убедитесь, что они соответствуют информации, предоставленной администратором сервера MySQL.

ВЫ являетесь администратором этого сервера MySQL.Прочитайте документы xampp и найдите имя пользователя и пароль для использования.В новой установке xampp имя пользователя MySQL по умолчанию (или когда-то было) root.Пароль по умолчанию - строка нулевой длины.Если вы хотите использовать другую комбинацию имени пользователя и пароля из вашей php-программы, вы должны

  • добавить эту новую комбинацию имени пользователя / пароля на ваш сервер MySQL, выполнив вход из phpmyadmin со старым именем пользователя, чтобы сделать это., Вот предложение о том, что .
  • обновит ваш файл db.inc.php или все, что в вашем приложении php даст имя пользователя / пароль.

Ваша программа php входит в MySQL .MySQL - это серверное программное обеспечение, которое запускается на вашем локальном компьютере при использовании xampp.Поэтому и он, и MySQL должны согласовать комбинацию имени пользователя и пароля.

С уважением, я думаю, вам следует перечитать раздел книги о том, как все устроено.

0 голосов
/ 28 июня 2019

Я искал в интернете и нашел эту команду 'mysqld --skip-grant-tables'. Выполнение этой команды в оболочке xampp, вероятно, сбрасывает полномочия, хотя и не уверен, но вернул мою страницу phpmyadmin.

...