tags:

views:

21

answers:

1

I hava the next task in my ant file:

<target name="initdb">  
  <sql driver="com.mysql.jdbc.Driver"
       url="jdbc:mysql://localhost:3306/dtest"
       userid="root" password="oksaoksaoksa" >
    <classpath>
      <pathelement path="./lib/mysql-connector-java-5.1.13-bin.jar"/>      
    </classpath>
    <transaction  src="./init.sql"/>
  </sql>
</target>

When I run it, I see the error:

BUILD FAILED
/home/sbos/projects/texterra-tests/deploy.xml:43: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

However, I can login with such login and password with mysql client:

mysql -u root -p
Enter password: <oksaoksaoksa>
Welcome to the MySQL monitor.  Commands end with ; or \g.
...

Why this happens? I've just installed mysql in ubuntu 10.10 if that matters

A: 

It happens because when you connect through localhost in the mysql client, it uses the unix socket to connect, which handles privileges a bit different, while ant connects to localhost through tcp/ip.

Try granting access to 127.0.0.1 (which is not the same as localhost as far as the mysql server is concerned)

grant all on initdb.* to 'root'@'127.0.0.1' identified by 'oksaoksaoksa';
nos