#php #mysql #codeigniter #cpanel
#php #mysql #codeigniter #cpanel
Вопрос:
Это мой текущий сценарий
1. Я нахожусь на виртуальном хостинге с использованием Cpanel.
2. когда я попытался подключиться к базе данных, используя следующую конфигурацию
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'user_dbuser';
$db['default']['password'] = 'password';
$db['default']['database'] = 'user_dbname';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['port'] = '3306';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;
$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'] = FALSE;
$db['default']['stricton'] = FALSE;
это выдало сообщение об ошибке, подобное :
An Error Was Encountered
Your application/config/database.php file does not appear to contain a valid configuration array.
Итак, чтобы найти ошибку, я поместил следующий код ближе к концу config/database.php .
$OK = mysql_select_db ($db['default']['database']);
if ($OK) //
{
// Nothing required, everything OK
// fred($db['default'], 'Database setting --> $db["default"]');
}else{
echo '<h1>Something terrible has happened</h1>';
echo '<pre>';
echo $db['default'];
echo '</pre>';
die;
}
Это дает следующий результат.
A PHP Error was encountered
Severity: Warning
Message: mysql_select_db(): Access denied for user 'taxac'@'localhost' (using password: NO)
Filename: config/database.php
Line Number: 69
A PHP Error was encountered
Severity: Warning
Message: mysql_select_db(): A link to the server could not be established
Filename: config/database.php
Line Number: 69
Something terrible has happened
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: config/database.php
Line Number: 77
Array
Я прошу вас, пожалуйста, обратить внимание на строки в приведенной выше ошибке
«Доступ запрещен для пользователя ‘taxac’ @’localhost’ (с использованием пароля: НЕТ)»
почему он не использует пароль и как заставить его использовать «Пароль».
чтобы проверить учетные данные, я попытался подключиться к mysql с помощью следующего скрипта
// TRY TO LOGIN WITH SIMPLE PHP NATIVE SCRIPT
$link = mysql_connect
(
$db['default']['hostname'],
$db['default']['username'],
$db['default']['password']
);
if (!$link) {
die('Not connected : ' . mysql_error());
}
else echo "MySQL connected";
// check the current db
$db_selected = mysql_select_db($db['default']['database'], $link);
if (!$db_selected) {
die ('Can't use <b>' .$db['default']['database'] .'</b> : ' . mysql_error());
}
else die('database is selected');
и успешно со следующим выводом
MySQL Connected.
database is selected
Итак, я уверен, что
1. Предоставленные мной учетные данные БД верны **
** 2. Я выбрал правильное расширение sql
**3. Ошибка каким-то образом связана со следующей строкой ошибки в четвертом выводе выше **
«Доступ запрещен для пользователя ‘taxac’ @’localhost’ (с использованием пароля: НЕТ)»
Поэтому, пожалуйста, помогите, как сделать так, чтобы для подключения к БД использовался пароль.
Комментарии:
1. этот вывод с localhost или из live?
2. если вы подключаетесь на реальном сервере, то вы увидите, что для имени базы данных, пользователя базы данных, уже был сгенерирован некоторый префикс, прежде чем вы введете свое имя базы данных, имя пользователя базы данных. Поэтому используйте имя базы данных, имя пользователя базы данных с полным префиксом. Вам не нужно комментировать порт. Это будет работать. Если это не сработает, дайте мне знать.
3. Приведенный выше вывод получен с действующего хоста, и я использую имя базы данных и пользователя DB с правильными и полными префиксами, как вы можете видеть, я могу подключиться с помощью простого php-скрипта.
Ответ №1:
Попробуйте прокомментировать
$db['default']['port'] = '3306';
и если это не сработает, проверьте параметры сортировки и настройки символов.
Комментарии:
1. не нужно комментировать номер порта, скорее нужно использовать имя базы данных, имя пользователя базы данных, что угодно, с полным префиксом.