简体   繁体   中英

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 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';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM