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

使用Ant创建mysql数据库时出错,mysql,jdbc,ant,installation,Mysql,Jdbc,Ant,Installation,谢谢你的帮助 机器和背景:OSX 10.5.8 32位。MySQL密码为“”,即为空 目标:我正在尝试使用Java数据库连接器(JDBC)教程。我现在在 错误:当shell位于JDBC教程所在的目录下时,我输入sudo-ant-create-mysql-database并得到以下错误: Buildfile:/Users/adam/Desktop/jdbtutorial/build.xml 创建mysql数据库: 构建失败/Users/adam/Desktop/jdbtutorial/BUILD.

谢谢你的帮助

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

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

错误:当shell位于JDBC教程所在的目录下时,我输入
sudo-ant-create-mysql-database
并得到以下错误:

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

创建mysql数据库:

构建失败/Users/adam/Desktop/jdbtutorial/BUILD.xml:73: java.sql.SQLException:拒绝用户“root”@“localhost”的访问 (使用密码:是)在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)位于 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)位于 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)位于 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)位于 com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694) 位于com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244) 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) com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395)位于 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.UnknowneElement.execute(unknowneElement.java:291) 位于的sun.reflect.GeneratedMethodAccessor4.invoke(未知源) reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 位于java.lang.reflect.Method.invoke(Method.java:592) org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 位于org.apache.tools.ant.Task.perform(Task.java:348) org.apache.tools.ant.Target.execute(Target.java:390)位于 org.apache.tools.ant.Target.performTasks(Target.java:411)位于 org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 位于org.apache.tools.ant.Project.executeTarget(Project.java:1368) 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)位于 org.apache.tools.ant.Main.startAnt(Main.java:217)位于 org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)位于 org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

自我纠正工作:我尝试将initdb.*上的
grant all添加到由“
标识的”root“@'127.0.0.1”中,添加到每个命令的末尾。同样的错误。它似乎拒绝让蚂蚁做事情;也许如果我把usingpassword选项关闭为NO,它会工作;我试着在谷歌上搜索,但没有成功


再次感谢

在JDBC tutorial文件夹的build.xml文件中,搜索字符串“create mysql database”;该字符串标记.xml文件中定义的任务。识别该文本块中“password”参数的值(使用突出显示程序(如Dashcode)读取文本时更容易),并将其更改为可与系统数据库一起使用的值(在我的示例中为“”)

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


教训:很明显,ant接受调用时传入的字符串(即字符串“ant”后的字符串),并在调用程序的目录中的build.xml中查找它。没有错误的密码…

我也在JDBC教程中的同一个地方被相同的错误击中,根据whearyou的建议,我只是在第28行的properties/MySQL-build-properties.xml中添加了我的原始密码“YES”(我在设置MySQL时创建的)

然后它成功了