Подключение к удаленной базе данных через CodeIgniter - PullRequest
7 голосов
/ 13 ноября 2011

Невозможно подключиться к серверу базы данных с использованием предоставленных настроек.

У меня были проблемы с подключением моего приложения к моей удаленной базе данных. При запуске приложения я получаю сообщение об ошибке, показанное выше. Я посмотрел предыдущие ответы на этот вопрос на этом сайте, но мне не повезло в решении этого вопроса. Из того, что я узнал, мне нужно заменить имя хоста и заставить мою базу данных mysql принимать внешние соединения, что я и сделал. Я пробовал те же значения в моем database.php через командную строку mysql, и это работает.

Так что еще я мог упустить?

Вот мои настройки в database.php:

$active_group = 'staging';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'myDatabase';
$db['default']['dbdriver'] = 'mysql';
$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;

$db['staging']['hostname'] = 'XX.XX.XXX.XXX';
$db['staging']['username'] = 'user';
$db['staging']['password'] = 'pwd';
$db['staging']['database'] = 'myDatabase';
$db['staging']['dbdriver'] = 'mysql';
$db['staging']['dbprefix'] = '';
$db['staging']['pconnect'] = TRUE;
$db['staging']['db_debug'] = TRUE;
$db['staging']['cache_on'] = FALSE;
$db['staging']['cachedir'] = '';
$db['staging']['char_set'] = 'utf8';
$db['staging']['dbcollat'] = 'utf8_general_ci';
$db['staging']['swap_pre'] = '';
$db['staging']['autoinit'] = TRUE;
$db['staging']['stricton'] = FALSE;

Ответы [ 4 ]

4 голосов
/ 13 ноября 2011

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

mysql -h HOSTNAME -uUSERNAME -p DATABASE

также проверьте, если у вас нет другого порта для подключения к MySQL, по умолчанию codeigniter будет подключаться к3306, если вы не определите фактический набор портов.это может быть проблемой.

удачи

3 голосов
/ 13 ноября 2011

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

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

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

1 голос
/ 07 февраля 2017
$active_group = 'staging';
$active_record = TRUE;

попробуйте изменить код выше

$active_group = 'default';
$active_record = TRUE;
0 голосов
/ 02 августа 2017

Если вы применили политику SELinux на своем сервере, убедитесь, что вы включили логический флаг httpd_can_network_connect

setsebool -P httpd_can_network_connect=1
...