Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat Calendar Webapp mysql:MySQLNonTransientConnectionException:_Java_Mysql_Eclipse_Maven_Tomcat - Fatal编程技术网

Java Tomcat Calendar Webapp mysql:MySQLNonTransientConnectionException:

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文件,其中包含与牙医等的一些约会。所以很明显,这些约会需要出现在日历上,而他们不需要。我不了

伙计们,我得为我的新工作做个评估。请不要说我是一个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连接以修复我的评估,我是否采取了正确的步骤?因为我只是即兴创作。也是不可接近的错误连接被拒绝

问题

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;