感谢所有帮助人员!
机器和背景: 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,它会工作;我试着用谷歌搜索但没有运气
再次感谢!
答案 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。
然后它工作了......!