DB2 не может подключиться к серверу
Я пытаюсь настроить сервер db2 на компьютере под управлением Windows 7, и я не могу подключиться к базе данных с удаленного компьютера, только с локального компьютера. Я думаю, что я мог бы пропустить некоторые настройки.
1) я отключил брандмауэр 2) моя база данных:
Запись базы данных 2:
Database alias = SAMPLE
Database name = SAMPLE
Local database directory = C:
Database release level = f.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =
Часть вывода из netstat -a
команда:
TCP [::]:49155 WIN-whatever:0 LISTENING
TCP [::]:49164 WIN-whatever:0 LISTENING
TCP [::]:49165 WIN-whatever:0 LISTENING
TCP [::]:50000 WIN-whatever:0 LISTENING
С клиента, если я пингую свой сервер, он не отвечает. Также, если я сканирую его nmap -sV <server_ip_address>
он не возвращает мне открытые порты и сервисы, которые его используют
С клиента, для подключения, я запускаю следующие команды:
db2 list node directory
SQL1027N The node directory cannot be found.
catalog tcpip node <i am not sure what does here> remote <server_ip_address> server <port_number>
no output
это подразумевает, что что-то не так. Я попробовал пару вещей для узла, и ничего не работает. Я понятия не имею, что происходит и как это исправить.
Спасибо за помощь
2 ответа
Прежде всего, тот факт, что вы не можете пинговать сервер и nmap
не видит открытых портов означает, что ваша проблема, по крайней мере на данный момент, лежит за пределами DB2. Как только вы исправите свои проблемы с сетью, вот процедура, которой вы можете следовать, чтобы установить удаленное соединение с базой данных DB2 через TCP / IP.
1) Необязательно. Вы можете использовать имя службы или номер порта для настройки экземпляра DB2. Если вы хотите использовать имя сервиса, на сервере добавьте строку /etc/services
похожий на db2c_db2inst1 50000/tcp
, который назначает имя службы "db2c_db2inst1" для порта 50000.
2) На сервере обновите конфигурацию экземпляра DB2: db2 update dbm cfg using svcename db2c_db2inst1
(или же db2 update dbm cfg using svcename 50000
если не используете название сервиса). Проверять: db2 get dbm cfg | grep SVCENAME
,
3) На сервере обновите переменную реестра DB2: db2set DB2COMM=TCPIP
, Проверять: db2set DB2COMM
,
4) На сервере перезапустите экземпляр: проблема db2stop force
, затем db2start
,
5) На удаленном клиенте, если установлено, что клиентское программное обеспечение DB2 установлено, выполните команду db2 catalog tcpip node whatever remote <your server IP address> service <your DB2 port number>
, Обратите внимание, что имя узла ("что угодно" в этом примере) ограничено 8 символами ASCII.
6) По вопросу удаленного клиента db2 catalog database <your database name> at node whatever
, ссылаясь на имя узла ("что угодно"), которое вы определили на шаге 5.
7) На удаленном клиенте проверьте подключение: db2 connect to <your database name> user <user name> using <password>
Попробуйте сделать telnet на порту экземпляра, чтобы убедиться, что все правильно, от клиента до сервера
telnet DB2-Server-name 50000
Где DB2-Server-name - это имя сервера или IP-адрес. Убедитесь, что вы можете получить сервер. 50000 - это наиболее часто используемый порт DB2, но вы должны проверить конфигурацию.
Как только вы получите соединение с сервером, вы можете настроить узел с предыдущим ответом.