使用Ant创建mysql数据库时出错

时间:2012-07-20 23:19:59

标签: mysql jdbc ant installation

感谢所有帮助人员!

机器和背景: OSX 10.5.8 32位。 MySQL密码为“”即为空

目标:我正在尝试使用Java数据库连接器(JDBC)教程。我目前在this step

错误:如果shell位于我有JDBC教程的目录中,我输入sudo ant create-mysql-database并收到以下错误:

  

Buildfile:/Users/adam/Desktop/JDBCTutorial/build.xml

     

创建MySQL的数据库:

     

BUILD FAILED /Users/adam/Desktop/JDBCTutorial/build.xml:73:   java.sql.SQLException:用户'root'@'localhost'拒绝访问   (使用密码:YES)at   com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)at at   com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)at at   com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)at at   com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)at at   com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)     在com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)at   com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397)     在   com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)     在   com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)     在com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:813)at   com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395)at at   com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)     在   org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:370)     在   org.apache.tools.ant.taskdefs.SQLExec.getConnection(SQLExec.java:942)     在org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:614)     在   org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)     在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     在java.lang.reflect.Method.invoke(Method.java:592)at   org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)     在org.apache.tools.ant.Task.perform(Task.java:348)at   org.apache.tools.ant.Target.execute(Target.java:390)at   org.apache.tools.ant.Target.performTasks(Target.java:411)at at   org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)     在org.apache.tools.ant.Project.executeTarget(Project.java:1368)at   org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)     在org.apache.tools.ant.Project.executeTargets(Project.java:1251)处   org.apache.tools.ant.Main.runBuild(Main.java:809)at   org.apache.tools.ant.Main.startAnt(Main.java:217)at   org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)at at   org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

自我纠正的努力:我尝试在每个this的命令末尾添加grant all on initdb.* to 'root'@'127.0.0.1' identified by ''。同样的错误。它似乎拒绝接受蚂蚁做事;也许如果我关闭使用密码选项为NO,它会工作;我试着用谷歌搜索但没有运气

再次感谢!

2 个答案:

答案 0 :(得分:0)

在JDBC教程文件夹的 build.xml 文件中,搜索字符串“create-mysql-database”;字符串标记 .xml 文件中定义的任务。确定该文本块中“password”参数的值(在使用突出显示程序(如 Dashcode )阅读文本时更容易),并将其更改为适用于系统数据库的内容(在我的情况下) “”)。

在编辑之前找到字符串在“密码”中的内容,在整个 .xml 文件中找到相同的字符串,并用正确的密码替换它

课程:显然 ant 获取调用时传入的字符串(即字符串“ant”后面的字符串),并在 build.xml 出现在您调用程序的目录中。没有错误的密码...

答案 1 :(得分:0)

根据 whearyou 建议,我也在同一个地方遇到同样的错误,根据 whearyou 建议,我刚刚在属性中添加了我的原始密码“YES”(我在创建MySQL时创建)位于第28行的mysql-build-properties.xml。

然后它工作了......!