[MYSQL 8.0] Problème de connexion avec Java
Bonsoir, Bonjour,
Je viens d'installer MYSQL 8.0. Comme je fais des applications JSP/Servlets qui se connectent à des bases des données MYSQL, j'ai tenté de me connecter à ma BDD avec l'application en vain.
Je vous donne ici, mon code de connexion et le message d'exception que j'obtiens.
Code de connexion
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
public Connection seconecter(){
Connection con=null;
String url="jdbc:mysql://localhost:3306/bibliotheque";
String user="bibliothecaire";
String pwd="ig32018";
// chargement du pilote
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver compatible");
} catch (ClassNotFoundException e) {
System.out.println("Driver incompatible");
e.printStackTrace();
}
// ouverture de la connexion
try {
con=DriverManager.getConnection(url, user, pwd);
if(con!=null) System.out.println("Connexion établie");
} catch (SQLException e) {
System.out.println("Connexion non établie");
e.printStackTrace();
}
return con;
} // fin seconnecter() |
Message d'erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
Driver compatible
Connexion non établie
java.sql.SQLException: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at beans.Biblio.seconecter(Biblio.java:29)
at beans.Lecteur.enregistrerLecteur(Lecteur.java:51)
at servlets.EnregistrerLecteur.doPost(EnregistrerLecteur.java:56)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
juin 06, 2018 8:09:16 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet EnregistrerLecteur a généré une exception
java.lang.NullPointerException
at beans.Lecteur.enregistrerLecteur(Lecteur.java:54)
at servlets.EnregistrerLecteur.doPost(EnregistrerLecteur.java:56)
...... |
Comme recherche et travaux, j'ai eu à :
modifier la ligne
Code:
default_authentication_plugin=caching_sha2_password
en remplaçant caching_sha2_paasord par mysql_old_password
modifier le mode de passe avec set password, et à ma grande surprise,
Code:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
.
Je suis alors vraiment bloqué, mais décider à comprendre MYSQL 8.0.
Je vous prie de m'aider.
merci d'avance.