Java Tomcat Calendar Webapp mysql:MySQLNonTransientConnectionException:
伙计们,我得为我的新工作做个评估。请不要说我是一个noob,他们愿意雇用我作为实习生,他们不需要一个完整的解决方案,但想看看我如何处理这个问题。我必须用以下工具修复一个坏掉的webapp(日历、Java后端、JS前端)。Maven、Eclipse、Tomcat9、JDK1.8和MYSQL。我已经在webapp中修复了损坏的Javacode(方法未定义),它正在tomcat中运行。有一个events.sql文件,其中包含与牙医等的一些约会。所以很明显,这些约会需要出现在日历上,而他们不需要。我不了解mysql,所以安装了最新版本8.0。我导入了.sql文件,当前数据库是events。在eclipse中,我尝试使用数据源浏览器和Java连接器5.1.6连接数据库,得到以下错误代码。是因为8.0版吗?通过导入.sql文件并尝试将eclipse与mysql连接以修复我的评估,我是否采取了正确的步骤?因为我只是即兴创作。也是不可接近的错误连接被拒绝 问题Java Tomcat Calendar Webapp mysql:MySQLNonTransientConnectionException:,java,mysql,eclipse,maven,tomcat,Java,Mysql,Eclipse,Maven,Tomcat,伙计们,我得为我的新工作做个评估。请不要说我是一个noob,他们愿意雇用我作为实习生,他们不需要一个完整的解决方案,但想看看我如何处理这个问题。我必须用以下工具修复一个坏掉的webapp(日历、Java后端、JS前端)。Maven、Eclipse、Tomcat9、JDK1.8和MYSQL。我已经在webapp中修复了损坏的Javacode(方法未定义),它正在tomcat中运行。有一个events.sql文件,其中包含与牙医等的一些约会。所以很明显,这些约会需要出现在日历上,而他们不需要。我不了
MySQLNonTransientConnectionException: Client does not support authentication
protocol requested by server; consider upgrading MySQL client
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.createConnection(JDBCConnection.java:328)
at org.eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBase.java:105)
at org.eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.java:54)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.open(JDBCConnection.java:96)
at org.eclipse.datatools.enablement.internal.mysql.connection.JDBCMySQLConnectionFactory.createConnection(JDBCMySQLConnectionFactory.java:28)
at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)
at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)
at org.eclipse.datatools.connectivity.ui.PingJob.createTestConnection(PingJob.java:76)
at org.eclipse.datatools.connectivity.ui.PingJob.run(PingJob.java:59)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
我降级到mysql 5.7,并将其添加到context.xml
url=“jdbc:mysql://localhost:3306/events?serverTimezone=UTC“Connector/J(MySQL的JDBC驱动程序)的版本为8.0.11。是的,我查过了,但是没有适用于Windows的。或者我需要独立于平台的吗?有一个mysql连接器java。jar文件在平台独立下载。这就是你想要的。(我不知道应该把它放在哪里,这样eclipse和tomcat就可以使用它了。但是你一定会通过搜索找到答案。)或者回到MySQL 5.7。谢谢!我要先试试连接器。否则,我将使用8.0.11连接器降级到MySQL5.7,我将得到错误:java.sql.SQLException:服务器时区值“West Europa(zomertijd)”无法识别或表示多个时区。如果要利用时区支持,必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。
DROP TABLE IF EXISTS `events`;
CREATE TABLE `events` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8_bin NOT NULL,
`start` datetime NOT NULL,
`end` datetime DEFAULT NULL,
`public` int(1) NOT NULL,
`type` varchar(20) COLLATE utf8_bin NOT NULL,
`remark` text COLLATE utf8_bin NOT NULL,
`option` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
LOCK TABLES `events` WRITE;
/*!40000 ALTER TABLE `events` DISABLE KEYS */;
INSERT INTO `events` VALUES (49,'Mechanica Beurs','2018-06-20
08:00:00','2016-06-24 17:00:00',0,'event','',0);
INSERT INTO `events` VALUES (50,'Tandarts','2018-06-16 10:00:00','2016-06-16
11:30:00',0,'private','',0);
INSERT INTO `events` VALUES (51,'Ronald Goedemondt','2018-06-11
19:00:00','2016-06-11 22:00:00',0,'show','',0);
/*!40000 ALTER TABLE `events` ENABLE KEYS */;
UNLOCK TABLES;