2011-03-25 11 views
12

Tôi đang di chuyển từ RSQLite đến RMySQL và tôi bị nhầm lẫn bởi các trường userpassword. FWIW, tôi đang chạy Windows 7, R 2.12.2, MySQL 5.5 (tất cả 64 bit) và RMySQL 0.7-5.Kết nối với cơ sở dữ liệu MySQL với RMySQL

Tôi đã cài đặt RMySQL như được quy định trong số previous SO question này và theo như tôi biết nó hoạt động (tức là tôi có thể tải gói với library(RMySQL)). Nhưng khi tôi cố gắng chạy hướng dẫn từ R data import guide, tôi nhận được lỗi "không kết nối được với cơ sở dữ liệu ...". Đây là mã từ hướng dẫn từ hướng dẫn:

library(RMySQL) # will load DBI as well 
## open a connection to a MySQL database 
con <- dbConnect(dbDriver("MySQL"), user = "root", password = "root", dbname = "pookas") 
## list the tables in the database 
dbListTables(con) 
## load a data frame into the database, deleting any existing copy 
data(USArrests) 
dbWriteTable(con, "arrests", USArrests, overwrite = TRUE) 
dbListTables(con) 
## get the whole table 
dbReadTable(con, "arrests") 
## Select from the loaded table 
dbGetQuery(con, paste("select row_names, Murder from arrests", 
         "where Rape > 30 order by Murder")) 
dbRemoveTable(con, "arrests") 
dbDisconnect(con) 

Trên dòng thứ hai tôi nhận được lỗi sau:

> con <- dbConnect(dbDriver("MySQL"), user = "richard", password = "root", dbname = "pookas") 
Error in mysqlNewConnection(drv, ...) : 
    RS-DBI driver: (Failed to connect to database: Error: Access denied for user 'richard'@'localhost' (using password: NO) 
) 

Tôi đã cố gắng có và không có userpassword và với admin như user. Tôi cũng đã thử sử dụng một dbname mà tôi đã thực hiện trước đó với dòng lệnh và với một trong đó không tồn tại.

Bất kỳ mẹo nào? Có một tài liệu tham khảo tốt ở đây? Cảm ơn!

Trả lời

5

Đó rất có thể là sự cố thiết lập ở phía máy chủ. Đảm bảo rằng truy cập mạng được bật.

Ngoài ra, thử nghiệm cục bộ với ứng dụng dòng lệnh là không tương đương như thường sử dụng ổ cắm. Các bản ghi máy chủ mysql có thể hữu ích.

+1

Tôi đã thực hiện tất cả các cài đặt và mọi thứ đều tốt. Tôi đã cố gắng báo giá duy nhất 'thay vì dấu ngoặc kép' và nó làm việc! Tôi luôn luôn nghĩ rằng hai đã hoán đổi cho nhau. –

2

Đầu tiên hãy thử kết nối với máy chủ MySQL bằng cách sử dụng MySQL Workbench hoặc dòng lệnh mysql sử dụng cùng một tham số. Nếu nó kết nối thì R cũng sẽ có thể kết nối.

Thông thường vấn đề này xảy ra khi máy chủ MySQL không cho phép kết nối từ máy từ xa.

0

Khi mọi người đã nói với bạn, bạn có thể thử kết nối với máy chủ với ứng dụng khác dưới dạng bàn làm việc mysql. Thật lạ lùng! Khi tôi đã thử trong RStudio để kết nối với db của tôi với mã của bạn mà không cho biết máy chủ trong lệnh tôi đã không thể kết nối.

Tôi cần phải chỉ định máy chủ lưu trữ (host = 'localhost') trong lệnh.