Отображение ошибки: mysqli :: real_connect (): (28000/1045): доступ запрещен для пользователя ‘user’@’192.188.145.163’ (используется пароль: YES)

Это проект codeigniter. моя информация в базе данных верна. Она отлично работает в localhost. Но после загрузки моего проекта на хостинг сайт все равно показывает ошибку «доступ запрещен».

Это моя база данных:

 $db['default'] = array(
'dsn' => '',
'hostname' => 'telihatyhighschool.edu.bd',
'username' => 'db_username',
'password' => 'db_password',
'database' => 'db_name',
'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
);

Как я могу решить это?

3

Решение

В cpannel фактически имя пользователя и имя базы данных имеют префикс имени пользователя cpanel, например

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost'; //literaly put localhost
$db['default']['username'] = 'cpanelusername_root';
$db['default']['password'] = 'password';
$db['default']['database'] = 'cpanelusername_db name';
$db['default']['dbdriver'] = 'mysqli'; ///use this extension
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

в более простых словах

Host = localhost (literally put localhost)
Database name = (cpanelUsername_databaseName)
Database username = (cpanelUsername_databaseUsername)
Database password = (******)

НОТА:
При подключении к базе данных вам необходимо убедиться, что:

  1. Вы создали базу данных
  2. Вы создали имя пользователя базы данных
  3. Вы назначили этого пользователя с правами доступа к вашей базе данных

Ваши соединения MySQL могут использовать 127.0.0.1 или IP-адрес вашего сервера, и MySQL будет отклонять соединение, если доступ не предоставляется для определенного используемого IP-адреса.

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

Regrant Preveliges от:

GRANT ALL PRIVILEGES on *.* to 'user'@'IP' IDENTIFIED BY '*UserPass*';
3

Другие решения

Если ваш хостинг-сервер Linux,

+ Изменить hostname значение для localhost

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'user',
'password' => 'XXXXXXXX',
'database' => 'mydbname',
'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
);
0

Да, я решил эту проблему, меняя
$ db [‘default’] = array (‘dsn’ => », ‘hostname’ => ‘telihatyhighschool.edu.bd’,
в
$ db [‘default’] = array (‘dsn’ => », ‘hostname’ => ‘localhost’,

0

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

0

Попробуйте использовать простой пароль без специальных символов, ниже приведен пример:

$db['default'] = array(
'dsn'   => '',
'hostname' => 'localhost',
'username' => 'password',
'password' => 'Mynewpass@756',
'database' => 'database_name',
);
0