Ответ 1
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host='localhost', port='5432', dbname='Swiss',
user='postgres', password='123456')
Кроме того, должен быть установлен пакет RPostgreSQL в R.
У меня большой набор данных, и я предварительно подготовлю некоторый анализ в программном обеспечении R. Хотя я не мог правильно импортировать данные в R.
Я получаю эту ошибку:
Error in postgresqlNewConnection(drv, ...) : RS-DBI driver: (could not connect [email protected] on dbname "Intel"
Я использовал PostgreSQL, чтобы открывать данные и как-то управлять им. Как импортировать существующие данные в PostgreSQL в программное обеспечение R?
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host='localhost', port='5432', dbname='Swiss',
user='postgres', password='123456')
Кроме того, должен быть установлен пакет RPostgreSQL в R.
Попробуйте R-пакет RPostgreSQL http://cran.r-project.org/web/packages/RPostgreSQL/. Вы можете увидеть, как использовать его в http://code.google.com/p/rpostgresql/. Пример:
library(RPostgreSQL)
drv <- dbDriver("PostgreSQL") ## loads the PostgreSQL driver
con <- dbConnect(drv, dbname="R_Project") ## Open a connection
rs <- dbSendQuery(con, "select * from R_Users") ## Submits a statement
fetch(rs,n=-1) ## fetch all elements from the result set
dbGetQuery(con, "select * from R_packages") ## Submit and execute the query
dbDisconnect(con) ## Closes the connection
dbUnloadDriver(drv) # Frees all the resources on the driver
Вы должны настроить две вещи на сервере PostgreSQL, прежде чем сможете удаленно подключиться. Это инструкция по настройке этого в Linux:
find/-name "postgresql.conf"
В моей операционной системе Linux файл находится в /etc/postgresql/ 9.6/main/, поэтому я изменяю его там. Добавьте строку "listen_addresses = '*'" следующим образом:
/etc/postgresql/9.6/main/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# insert the following line
listen_addresses = '*'
sudo find/-name "pg_hba.conf"
В моей операционной системе Linux файл находится в /etc/postgresql/ 9.6/main/, поэтому я изменяю его там. Добавьте строку "all all 0.0.0.0/0" следующим образом:
sudo nano/etc/postgresql/9.6/main/pg_hba.conf
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
#
# insert the following line
host all all 0.0.0.0/0 trust
sudo service postgresql stop
sudo service postgresql start
УДАЧА!