Dear Experts,
I'm using
"Talend Open Studio for Big Data"
Version: 5.5.1
Build id: r118616-20140617-1117
Both Talend and MYSQL are installed on my Linux server.
And it's just me on this machine.
I tried creating a: tMysqlConnection
Parameters:
DB Version: MYSQL 5
Host: "localhost"
Database" "enron"
- this is the database I use after I start mysql. ie
use enron;
Port: It defaulted to "3306"
- although, I don't see such a port in netstat -a
username: "oracle"
- this is the unix user that logs into Unix
Password: "thepassword"
- this is the unix password that logs into Unix
Additional JDBC parameters:
"noDatetimeStringSync=true"
The MYSQL database is running.
I only create this connection, and an object for a csv file.
But when I when I run the job, I get the errors below.
Questions:
1:
Is the username/password, referring to a unix login?
Or a login to MYSQL?
2:
I'm not interested in a more complex shared connection.
Just one simple connnection that works.
Is there a tutorial for such a simple connection?
Thanks a lot!
R.
Starting job TestjobMYSQL at 00:14 01/10/2014.
connecting to socket on port 3980
connected
Exception in component tMysqlConnection_1
java.sql.SQLException: Access denied for user 'oracle'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4732)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1340)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2506)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2539)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2321)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at data_integration_demos.testjobmysql_0_1.TestjobMYSQL.tMysqlConnection_1Process(TestjobMYSQL.java:456)
at data_integration_demos.testjobmysql_0_1.TestjobMYSQL.runJobInTOS(TestjobMYSQL.java:728)
at data_integration_demos.testjobmysql_0_1.TestjobMYSQL.main(TestjobMYSQL.java:575)
disconnected
Job TestjobMYSQL ended at 00:14 01/10/2014.
-------------
Starting job TestjobMYSQL at 00:24 01/10/2014.
connecting to socket on port 3943
connected
Exception in component tMysqlConnection_1
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4732)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1340)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2506)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2539)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2321)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at data_integration_demos.testjobmysql_0_1.TestjobMYSQL.tMysqlConnection_1Process(TestjobMYSQL.java:456)
at data_integration_demos.testjobmysql_0_1.TestjobMYSQL.runJobInTOS(TestjobMYSQL.java:728)
at data_integration_demos.testjobmysql_0_1.TestjobMYSQL.main(TestjobMYSQL.java:575)
disconnected
Job TestjobMYSQL ended at 00:24 01/10/2014.
First, you have to type in the username and password of the MySql database which regularly is a different login than your unix server. So your default user could be "root". To check that go to your server and "mysql -u root -p", type in your password and when it works, perfect. Another approach is to install an application like MySql workbench to connect via ssh to the sql database of your server. Default host and port should be: "localhost" and "3306" as you already outlined above. That's it. You find further information here: https://help.talend.com/search/all?query=tMysqlConnection&content-lang=en Just make sure, you have access to your database without a talend job.
Thanks. I got it to work.
What's odd is that there is is no "test connection" button, as I've seen in other products.
Getting the DB connections correct is important, and often a trial and error process.
You search for this button at the wrong place. Open the Connection edit dialog in the Metadata section (if you do not work with the Big Data edition) and here you will find the Test connection function.