Прежде всего: мой единственный опыт работы с SQL связан с SQLite, который является бессерверным движком. Я новичок во всей этой истории клиент/сервер.
Подводя итог моей цели: мне нужно читать/записывать из/в базу данных PosgreSQL с разных компьютеров. Эти компьютеры (все с установленной Windows 7 или 10) находятся в одной сети, но я не могу установить на них какое-либо программное обеспечение.
Моя идея заключалась в том, чтобы загрузить портативный сервер PostgreSQL и сохранить его в общем сетевом каталоге (например, Y:\PortableProject), чтобы все компьютеры имели доступ к исполняемым файлам и к папке Data, содержащей базы данных. Предположим, что сетевой IP-адрес 192.170.1.200 (из команды ipconfig
), вот шаги, которые я пытался сделать до сих пор:
Чтобы разрешить IP 192.170.1.200 быть хостом, откройте файл
pg_hba.conf
и добавьте следующую строку в EOFhost all all 192.170.1.200/32 trust
Чтобы разрешить доступ к серверу всем компьютерам, откройте
postgresql.conf
и обновитеlisten_addresses
до*
.listen_addresses = '*'
Откройте командную строку на одном компьютере (например, на компьютере A) и запустите сервер из командной строки с помощью следующей команды:
"Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\pg_ctl.exe" start -D "Y:\PortableProject\PostgreSQLPortable\Data\data"
Продолжайте писать и читать на всех компьютерах. Например, на компьютере B откройте его команду приглашения и прочитайте всю информацию о таблице
tabtest
из базы данныхdbtest
(предположим, что они существуют) с помощью команды:"Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\psql.exe" -h 192.170.1.200 -p 5432 -U postgres -d dbtest -c "SELECT * FROM tabtest"
Закройте соединение на компьютере A:
"Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\pg_ctl.exe" stop -D "Y:\PortableProject\PostgreSQLPortable\Data\data"
Проблема возникает на шаге 4. Даже если я запускаю ее с компьютера А, я получаю следующую ошибку
psql: could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "192.170.1.200" and accepting
TCP/IP connections on port 5432?
Я делаю это совершенно неправильно? Возможно ли вообще достичь моей цели?