I am trying to use SAS v9.0 to connect to a MySQL database on a Windows 7 machine. Below is the code I am using.
proc sql;
connect to odbc(datasrc=localhost user= root password=password);
create table tmp as
select *
from connection to odbc
(
select * from mysql.time_zone
)
;
quit;
This is giving me following error.
ERROR: CLI error trying to establish connection: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
I am using the MySQL ODBC 5.1 Driver.
Looks like you haven't set your ODBC data source in windows. Go to start->control panel->system and security->administration->ODBC data sources. Select "add", provide all information asked. Then you should provided ODBC data source name when you submit your proc sql datasrc option.
Related
I can use the following code successfully in the R GUI to connect to a Microsoft Access database:
library(RODBC)
#ODBC connection
scallopchannel<-odbcDriverConnect("scallop_2016")
"scallop_2016" is a DSN for the Access database I connect to.
In RStudio I have to specify to path to the Access database like this:
ODBC connection
scallopchannel<-odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=S://Adv/Scallop Central/2015 RSA/2015 RSA Database/2015 RSA Database_9-4-2015.accdb")
Otherwise I get an error message:
Warning messages:
1: In RODBC::odbcDriverConnect("DSN=db2017") :
[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
2: In RODBC::odbcDriverConnect("DSN=db2017") : ODBC connection failed
When I type to troubleshoot the problem
odbcDataSources ()
RStudio indicates that the Access datasource is there.
This is a pain since I sometimes connect to multiple databases within a session and I prefer to be able to code for just the DSN.
I am using RStudio 1.0.153 and R GUI 3.3.2.
I am also using 32 bit R and 32 bit RStudio.
I am trying to connect to MySQL 5.6 on a Windows Server 2008 R2 localhost with pyodbc. I used the full installation for the MySQL instance on the localhost, including the ODBC connector. I have it connecting to a remote SQL Server instance beautifully, but for the life of me I can't get it to connect to the local MySQL instance. I am using this guide from connectionstrings.com as reference.
Here's some code:
import pyodbc
def create_mssql_conn():
return pyodbc.connect(r'Driver={SQL Server};Server=MSSQLSRV;Database=ecomm;Trusted_Connection=yes;')
def create_mysql_conn():
return pyodbc.connect(r'Provider=MSDASQL;Driver={MySQL ODBC 5.6 UNICODE Driver};Server=127.0.0.1;Database=ecomm;User=root;Password=myP#$$w0rd;Option=3;')
# conn = create_mssql_conn() # This one works
conn = create_mysql_conn() # This one breaks
cursor = conn.cursor()
cursor.execute('SELECT * FROM inventory')
while 1:
row = cursor.fetchone()
if not row:
break
print row
Here is the error:
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
I tried everything from adding Provider=MSDASQL; to changing ANSI to UNICODE in the connection string. Any suggestions?
I was having a similar issue. I am using windows 8, and mysql.
The way I solved the problem was by going into my
control panel>Systems and Security>Administrative Tools.>ODBC Data Sources
Either the 32 bit or 64 bit version depending on your computer.
Then you click on the System DNS file. If you do not see any MySQL driver you have to click ADD. It brings up a list, from that list select the MySQL driver.
For me it was MySQL ODBC 5.3 ANSI(they have a unicode driver also). Click finish. Once you do that then you have to change your connection line in your code to the corresponding Driver that you just filled out.
Ex:
def create_mysql_conn():
return pyodbc.connect(r'Driver={MySQL ODBC 5.3 ANSI Driver};Server=MSSQLSRV;Database=ecomm;Trusted_Connection=yes;')
This should work, or at least it solved my connection issue because I was getting all sorts of different errors with everything I tried. This was what solved the issue for me.
In Win64 there are two ODBC environments: 32 and 64 bit and you can work with Python 32 bit or Python 64 bit. Check what version of Python you use and then use proper version of odbcad32.exe (32 bit version is located in the SysWoW64 directory) to create SystemDSN. With SystemDSN you can check if you can connect to the database. Then try to connect to DB from Python code.
You can list ODBC datasources available to pyodbc via my code recipe: https://code.activestate.com/recipes/578815-printing-list-of-odbc-data-sources-with-pyodbc-mod/
Head to Administrative Tools and the ODBC Data Sources. You should click on the DNS file. Most likely you'd see Microsoft Access and excel as the only data sources available, so you need to add your SQL Server. Mine was SQL Server 2008 R2, and so far, it has worked.
For the error mentioned
"pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')"
I installed the 'Microsoft Access Database Engine 2010 Redistributable 64-bit' as I have 64-bit system and then added the DSN in the directory of MS Access database and it's working now.
Here is the link of the video for how to create DSN and connect to python.
https://www.youtube.com/watch?v=zw9P2wSnoIo
actually i am trying to connect HIVE table and Tableau through HIVE ODBC driver , for this i create HIVE ODBC DSN and i am able to see in Tableau all table which i had created in hive but while accessing those table i am getting error like
"[Cloudera][HiveODBC] (35) Error from Hive: error code: '0' error message: 'ExecuteStatement finished with operation state: ERROR_STATE'."
and i am not getting any Table value in Tableau
i already tried following
--tried to select the option "Use Native Query" (in advance option) when creating HIVE ODBC DSN and checked but still get errors.
--installed latest HIVE ODBC driver but still get errors
any help ???
connect method : Amazon Hive ODBC Driver
connect specitication: port 10000, database : hive
and write a username, password
Test Connect
Congratuation > then you can click the submit button
Problem:
I use SQL Server 2008.
We have here a linked server, linking to a MySql Database.
But since today, when I click "test connection", it shows me this error:
( I can't post images yet):
The test connection to the linked server failed.
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "MANTIS".
OLE DB provider "MSDASQL" for linked server "MANTIS" returned message "[Microsoft][ODBC Driver
Manager] Data source name not found and no default driver specified". (Microsoft SQL Server,
Error: 7303)
What should I do?
It was working yesterday. I thought about "data sources ( ODBC)". Yes, There is no DataSources for MySql ( it doesn't even show me the option to add a mySql odbc when I click ADD), but it was working yesterday !!
I didn't find a reasonable solution from any post.
answer, taken from the question
Restart server + Install MYSQL ODBC DRIVER 51 ( MySql connector )
Start - control panel > Administrative Tools > Data Sources (ODBC) > System DSN > ADD
MySql ODBC 501 Driver
Somehow I'm having a lot of trouble establishing an ODBC connection to MySQL from within MSSQL Management Studio. I have 64-bit versions of MSSQL and MySQL ODBC connector installed.
The local MySQL database already has a DSN assigned to it. I've used this DSN with Excel in the past and had no problems.
Now, (in SQL Man. Studio) when I access:
'Tasks' -> 'Import Data' -> '.Net Framework Provider for ODBC'
I get a helpful form asking me to enter all the connection details even though I've already registed the DSN in 'Control Panel\Data Sources'.
So, after a brief 'wait, what?", I enter:
Dsn: My_Dsn
Driver: MySQL ODBC 5.2 ANSI Driver
... and get: ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
#
PS.
I've also tried creating a linked MySQL server in MS Studio like so: http://www.sqlservercentral.com/Forums/Topic340912-146-1.aspx
and get:
'contains no columns that can be selected or the current user
does not have permissions on that object.'
In short: no access to MySQL from within MSSQL Studio whatsoever
Thanks in advance!