I hava the next task in my ant file:
url="jdbc:mysql://localhost:3306/dtest"
userid="root" password="oksaoksaoksa" >
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:
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
解决方案
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';