Невозможно подключиться к локальному экземпляру SQL Server Express из CodeIgniter 2.1.3, чего мне не хватает? - PullRequest
1 голос
/ 20 марта 2019

Я начну с того, что попробовал почти все, что смог найти в Интернете, включая следующий список:

Что я еще не пробовал?Используйте расширение Microsoft SQL Server, как говорится в многих ответах.

Вот как выглядит моя database.php конфигурация:

$active_group = 'mssql_local';

$db['mssql_local']['hostname'] = 'localhost:1433'; // RNDPC\SQLEXPRESS:1433
$db['mssql_local']['username'] = 'ssUser';
$db['mssql_local']['password'] = '******';
$db['mssql_local']['database'] = 'ssDB';
$db['mssql_local']['dbdriver'] = 'mssql';
$db['mssql_local']['dbprefix'] = '';
$db['mssql_local']['pconnect'] = false;
$db['mssql_local']['db_debug'] = false;
$db['mssql_local']['cache_on'] = false;
$db['mssql_local']['cachedir'] = '';
$db['mssql_local']['char_set'] = 'utf8';
$db['mssql_local']['dbcollat'] = 'utf8_general_ci';
$db['mssql_local']['swap_pre'] = '';
$db['mssql_local']['autoinit'] = true;
$db['mssql_local']['stricton'] = false;
$db['mssql_local']['port']     = 1433;

Но я продолжаю видеть следующее «предупреждение» в моих журналах:

ОШИБКА - 2019-03-20 10:18:31 -> Серьезность: Предупреждение -> mssql_connect (): невозможно подключиться к серверу: localhost: 1433,1433 / var / www /html / sseditor / codeigniter / 2.1.3 / system / database / drivers / mssql / mssql_driver.php 63

Вот фрагмент кода mssql_driver.php:

56  function db_connect()
57  {
58      if ($this->port != '')
59      {
60          $this->hostname .= ','.$this->port;
61      }
62
63      return @mssql_connect($this->hostname, $this->username, $this->password);
64  }

У кого-нибудь есть идея получше?Я выбегаю из них: |

1 Ответ

1 голос
/ 20 марта 2019

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

Во-первых, и я совершенно забыл добавить эточасть к OP (извините за это) apache и PHP работают внутри CentOS VM (Vagrant + VBox).

Проблема: гость, где работает среда LAMP, незнать что-то о хосте и имеет смысл.

Решение: добавить IP-адрес хоста и NS в файл /etc/hosts на гостевой.

190.168.56.1    RNDPC\SQLEXPRESS SQLEXPRESS

Устранена проблема, связанная со следующим сообщением:

Невозможно подключиться к серверу: RNDPC \ SQLEXPRESS: 1433,1433

Вторая проблема связана с:

RNDPC\SQLEXPRESS:1433,1433

Поскольку драйвер, если указан параметр port, добавляет, что ,port.

Решение: удалить параметр порта из database.php и«жесткий код» порта в конце к host definition.

Теперь мой database.php выглядит так:

$db['mssql_common']['hostname'] = 'RNDPC\SQLEXPRESS:1433';
$db['mssql_common']['username'] = 'ssUser';
$db['mssql_common']['password'] = '*****';
$db['mssql_common']['database'] = 'ssDB';
$db['mssql_common']['dbdriver'] = 'mssql';
$db['mssql_common']['dbprefix'] = '';
$db['mssql_common']['pconnect'] = false;
$db['mssql_common']['db_debug'] = false;
$db['mssql_common']['cache_on'] = false;
$db['mssql_common']['cachedir'] = '';
$db['mssql_common']['char_set'] = 'utf8';
$db['mssql_common']['dbcollat'] = 'utf8_general_ci';
$db['mssql_common']['swap_pre'] = '';
$db['mssql_common']['autoinit'] = true;
$db['mssql_common']['stricton'] = false;

Надеюсь, это поможет кому-то в будущем:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...