使用Ant创建mysql数据库时出错
谢谢你的帮助 机器和背景:OSX 10.5.8 32位。MySQL密码为“”,即为空 目标:我正在尝试使用Java数据库连接器(JDBC)教程。我现在在 错误:当shell位于JDBC教程所在的目录下时,我输入使用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.
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时创建的) 然后它成功了