it-swarm.com.ru

Предупреждение: mysqli_connect (): (HY000/1045): доступ запрещен для пользователя 'username' @ 'localhost' (с использованием пароля: YES)

Предупреждение: mysqli_connect (): (HY000/1045): доступ запрещен для пользователя 'username' @ 'localhost' (используется пароль: YES) в C:\Users\xampp\htdocs\PHP_Login_Script\config.php в строке 6

Предупреждение: mysqli_real_escape_string () ожидает, что параметр 1 будет mysqli, логическое значение указано в C:\Users\xampp\htdocs\PHP_Login_Script\login.php в строке 10

Предупреждение: mysqli_real_escape_string () ожидает, что параметр 1 будет mysqli, логическое значение указано в C:\Users\xampp\htdocs\PHP_Login_Script\login.php в строке 11

Предупреждение: mysqli_query () ожидает, что параметр 1 будет mysqli, логическое значение указано в C:\Users\xampp\htdocs\PHP_Login_Script\login.php в строке 15

Предупреждение: mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_result, значение NULL указано в C:\Users\xampp\htdocs\PHP_Login_Script\login.php в строке 16

Предупреждение: mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, ноль указан в C:\Users\xampp\htdocs\PHP_Login_Script\login.php в строке 19

Я получаю эту ошибку выше на localhost, даже если мой конфигурационный файл выглядит так: 

<?php

    define("DB_Host", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");

    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>

Раньше это работало, но теперь это не так. Есть ли проблемы с этим кодом или он не работает сейчас? Это это учебник, над которым я сейчас работаю.

25
user2805663

Эта комбинация имени пользователя, хоста и пароля не может подключаться к серверу. Проверьте таблицы разрешений (при необходимости перезагрузите гранты) на сервере и убедитесь, что вы подключаетесь к нужному серверу.

14
Ignacio Vazquez-Abrams

Если вы используете обновление Wamp 

define("DB_Host", "localhost");

На твои машины ip адрес (у меня 192.168.0.25);

define("DB_Host", "192.168.0.25");

Вы можете найти его в окне, набрав ipconfig в консоли или ifconfig в mac/linux

12
hooligan

mysqli_connect (DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE); 

использовать DB_Host вместо DB_SERVER 

7
moez

Посмотрите на ваш код Вы определили DB_Host и запросили DB_SERVER. DB_USER и DB_USERNAME Используйте этот код

define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");

$connect = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);
6
hemanth kumar

Убедитесь, что ваш пароль не содержит специальных символов, и просто сохраните простой пароль (например, 12345), он будет работать. Это самая странная вещь, которую я когда-либо видел. Я потратил около 2 часов, чтобы понять это.

Примечание: 12345, указанное ниже, является вашим простым паролем.

GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345';
5
Sathya

вы определяете как DB_USER, но используете как DB_USERNAME. Также php говорит, что username @ localhost не может получить доступ. Не root @ localhost. 

Измените свое определение или подключите параметр.

3
headersalreadysent

Та же проблема возникла у меня с XAMPP 7 и opencart Arabic 3. Замена localhost фактическим именем машины устранила проблему.

1
Ahmed Bahtity

Это ваш код:

<?php

    define("DB_Host", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");

    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>

Единственная ошибка, которая вызывает это сообщение:

  1. вы определяете DB_USER, но звоните после как DB_USERNAME.

Пожалуйста, будьте осторожнее в следующий раз.

Для программиста начального уровня лучше начать программирование в PHP, чтобы не использовать то, что он или она не очень хорошо знают. 

ТОЛЬКО в качестве совета, пожалуйста, попробуйте использовать (впервые) код более вездесущий.

пример: не используйте оператор define(), попробуйте использовать объявление переменных как $db_user = 'root';

Приятного опыта :)

1
Victor-Andrei Stanculescu

В моем случае проблема была:

define ('DB_PASSWORD', "MyPassw0rd!'");

(нечетный сингл перед двойником)

0
Andrews32

Та же проблема произошла со мной, с AWS RDS MySQL. Только сейчас, ответил похоже вопрос здесь. Посмотрел различные источники, но по состоянию на эту ветку почти все отсутствие ответа . Хотя эта ветка помогла мне, твик имел в виду обновить имена хостов на сервере. Получите доступ к вашему SSH и выполните следующие действия:

cd /etc/
Sudo nano hosts

Теперь, добавив сюда ваши имена хостов: Например:

127.0.0.1 localhost
127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]

и теперь настраиваем config/database.php следующим образом:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => '35.150.12.345',
    'username' => 'user-name-here',
    'password' => 'password-here',
    'database' => 'database-name-here',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

где 35.150.12.345 - это ваш публичный IPv4, расположенный там по адресу ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public IP ('35 .150.12.345 ').

Примечание. Обратите внимание, что только опция IPV4 будет работать с опцией «hostname». hostname, cname, domains выдаст ошибку соединения с базой данных.

0
Asharam Seervi

При попытке установить соединение с другим пользователем, отличным от root, я настроил ограничение доступа.

В mysql я бы настроил пользователя MofX с Host %, и он не будет подключаться.

Когда я изменил Хост пользователя на 127.0.0.1, как в 'MofX'@'127.0.0.1', это сработало.

0
ourmandave

На вопрос был дан ответ выше, просто чтобы вы чувствовали себя комфортно, используя все четыре строки одновременно в соединении

<?php
  define("DB_Host", "localhost");
  define("DB_USER", "root");
  define("DB_PASSWORD", "");
  define("DB_DATABASE", "databasename");

  $db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
  // you could test connection eventually using a if and else conditional statement, 
  // feel free to take out the code below once you see Connected!
  if ($db) {
    echo "Connected!";
  } else {
    echo "Connection Failed";
  }
?>
0
Precious Tom

Существует ошибка опечатки в определении аргументов, измените DB_Host на DB_SERVER и DB_USER на DB_USERNAME :

<?php

    define("DB_SERVER", "localhost");
    define("DB_USERNAME", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");
    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>
0
Sajan