Member 13736800 Ответов: 2

Предупреждение: mysqli_connect(): (HY000/1045): доступ запрещен для пользователя 'map1user'@'localhost' (с использованием пароля: да) в C:\xampp\htdocs\projectgmaps\config.php на линии 7


Привет,

Я получаю сообщение об ошибке
Предупреждение: mysqli_connect(): (HY000/1045): Доступ запрещен для пользователя 'map1user'@'localhost' (с использованием пароля: да) в C:\xampp\htdocs\projectgmaps\config.php на линии 7

и

Предупреждение: mysqli_error() ожидает ровно 1 параметр, 0 задан в C:\xampp\htdocs\projectgmaps\config.php на линии 7
Не подключено : Ах черт возьми

config.php файл:
<?php
$host = "localhost"; 
$user = "map1user";
$password = "map1password";
$database = "map1";

$connection = mysqli_connect ($host, $user, $password) or die('Not connected : Ah sh*t ' . mysqli_error());
?>


Otherfile:
<?php
require("config.php");

function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}

// Opens a connection to a MySQL server
//$connection=mysqli_connect ('localhost', 'username', 'password');
//if (!$connection) {
//  die('Not connected : Ah sh*t ' . mysqli_error());
//}

// Set the active MySQL database
$db_selected = mysqli_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysqli_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysqli_query($query);
if (!$result) {
  die('Invalid query: ' . mysqli_error());
}

header("Content-type: text/xml");

// Start XML file, echo parent node
echo "<?xml version='1.0' ?>";
echo '<markers>';
$ind=0;
// Iterate through the rows, printing XML nodes for each
while ($row = @mysqli_fetch_assoc($result)){
  // Add to XML document node
  echo '<marker ';
  echo 'id="' . $row['id'] . '" ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
  $ind = $ind + 1;
}

// End XML file
echo '</markers>';

?>


На самом деле я следую руководству google по https://developers.google.com/maps/documentation/javascript/mysql-to-maps#echoxml

Но это дает мне эти ошибки. Кто-нибудь знает почему? (Im на проверке выходного бита XML с помощью опции echo)

Что я уже пробовал:

Я пробовал вводить имена пользователей и пароли напрямую и через переменную.
Вместо этого я попытался переместить функцию mysqli connect в конфигурационный файл
Я пытался создать новую базу данных, нового пользователя, новую таблицу.

Я не могу заставить это работать.

Любая помощь оценена по достоинству!

Simon_Whale

пробовали ли вы подключиться непосредственно к mysql с помощью предоставленных имени пользователя и паролей?

Member 13736800

Я новичок в этом - извините - как бы я это сделал?

Simon_Whale

У Йохена Арндта есть отличный ответ для вас.

2 Ответов

Рейтинг:
2

Jochen Arndt

Первый из них совершенно ясен:
При попытке подключиться к базе данных вы передали неверные учетные данные (имя пользователя и/или пароль). Что передать здесь нельзя ответить, потому что только вы (администратор базы данных) будете знать о существующих учетных записях пользователей.

Чтобы добавить учетную запись пользователя в базу данных MySQL см. MySQL :: MySQL 5.7 Справочное Руководство :: 6.3.2 Добавление Учетных Записей Пользователей[^]. Это требует подключения от имени root и предоставления пароля root, если он был установлен.

Второй является результатом первого и использования неправильной функции ошибки. Для mysqli_connect()- ты должен позвонить PHP: mysqli::$connect_error - руководство пользователя[^] вместо mysqli_error() в случае ошибки:

$connection = mysqli_connect ($host, $user, $password) or die('Not connected : Ah sh*t ' . mysqli_connect_error());


Member 13736800

Йохен -
Я уже создал учетную запись пользователя. Он просто не принимает их в качестве логина?

Jochen Arndt

Таким образом, вы можете использовать их с mysql в командной строке, как предложил Саймон?
Если да, то он также должен работать с PHP (при условии передачи правильного имени базы данных).

Если нет, проверьте привилегии для учетной записи(ов) пользователя. Смотрите ссылку MySQL из моего ответа и https://dev.mysql.com/doc/refman/5.7/en/grant.html-да. Пользователь должен иметь доступ к вашей базе данных map1.

Member 13736800

Я использую phpmyadmin, который является mariaDB. Это руководство MySQL (с кодом) по-прежнему применимы? Он придумывает "неправильный синтаксис" и ошибки, когда я пытаюсь использовать любой код

Jochen Arndt

Затем вы должны проверить документацию MariaDB для использования их интерфейса командной строки или использовать PhpMyAdmin для проверки и настройки вашей базы данных.

Рейтинг:
2

Rajatmohan Singh

Hi,
This error comes because you are using the wrong Database, Username or Password.
If you are the Database Administrator, you can go to your cPanel and check the Database, Username, and Password and mention correct information. 
One more thing to remember that the user should be connected to the same database and also have All Privileges. 


Ketzalkoatl Rosas A

Отличный ответ. При создании пользователя он имеет префикс midatabase_nombreurs. Просто добавьте префикс. Спасибо.