开发者

Ant couldn't connect to mysql (access denied), but mysql client could

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 开发者_如何学JAVAend 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';
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜