Java 我的spring boot应用程序的新版本无法连接到mysql
我的spring boot应用程序在localhost上运行良好,已经运行了几个月的第一个版本运行良好,但现在当我尝试上载新版本的应用程序或任何其他spring boot应用程序时,我遇到以下错误: 不符合自动代理的条件 2017-05-29 17:20:48.565错误618-[main]o.a.tomcat.jdbc.pool.ConnectionPool:无法创建池的初始连接。 java.sql.SQLException:使用密码拒绝用户“root”@“localhost”的访问:是 在com.mysql.jdbc.SQLError.createSQLExceptionSQLError.java:1055~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.SQLError.createSQLExceptionSQLError.java:956~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.MysqlIO.checkErrorPacketMysqlIO.java:3491~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.MysqlIO.checkErrorPacketMysqlIO.java:3423~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.MysqlIO.checkErrorPacketMysqlIO.java:910~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.MysqlIO.secureAuth411MysqlIO.java:3923~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.MysqlIO.doHandshakeMysqlIO.java:1273~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.ConnectionImpl.createNewIOConnectionImpl.java:2031~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.ConnectionImpl.ConnectionImpl.java:718~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.JDBC4Connection.JDBC4Connection.java:46~[mysql-connector-java-5.1.6.jar:na] 在sun.reflect.NativeConstructorAccessorImpl.newInstance0Native Method~[na:1.8.0131] 在sun.reflect.NativeConstructorAccessorImpl.newInstanceNativeConstructorAccessorImpl.java:62~[na:1.8.0131] 在sun.reflect.DelegatingConstructorAccessorImpl.newInstanceDelegatingConstructorAccessorImpl.java:45~[na:1.8.0131] java:423~[na:1.8.0131] 在com.mysql.jdbc.Util.handleNewInstanceUtil.java:406~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.ConnectionImpl.getInstanceConnectionImpl.java:302~[mysql-connector-java-5.1.6.jar:na] 在com.mysql.jdbc.NonRegisteringDriver.connectNonRegisteringDriver.java:282~[mysql-connector-java-5.1.6.jar:na] 在org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriverPooledConnection.java:310~[tomcat-jdbc-8.5.11.jar:na] 在org.apache.tomcat.jdbc.pool.PooledConnection.connectPooledConnection.java:203~[tomcat-jdbc-8.5.11.jar:na] 在org.apache.tomcat.jdbc.pool.ConnectionPool.createConnectionConnectionPool.java:732[tomcat-jdbc-8.5.11.jar:na] java.sql.SQLException:拒绝用户“root”@“localhost”的访问 使用密码:是 这是一个权限问题。您必须具有使用给定用户名和密码从该客户端连接到该主机的权限。我不建议授予任何应用程序对数据库的根访问权限。为应用程序的特定数据库创建应用程序凭据 你把事情弄得太复杂了。斯普林、詹金斯、雄猫等都不是你的问题。编写一个简单的main方法来建立JDBC连接,如下所示:Java 我的spring boot应用程序的新版本无法连接到mysql,java,mysql,spring,tomcat,jenkins,Java,Mysql,Spring,Tomcat,Jenkins,我的spring boot应用程序在localhost上运行良好,已经运行了几个月的第一个版本运行良好,但现在当我尝试上载新版本的应用程序或任何其他spring boot应用程序时,我遇到以下错误: 不符合自动代理的条件 2017-05-29 17:20:48.565错误618-[main]o.a.tomcat.jdbc.pool.ConnectionPool:无法创建池的初始连接。 java.sql.SQLException:使用密码拒绝用户“root”@“localhost”的访问:是 在
package database.util;
import org.mariadb.jdbc.MySQLDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Database utilities
* Created by Michael
* Creation date 5/3/2016.
* @link https://stackoverflow.com/questions/36999860/mysql-driver-problems/37000276#comment61553720_37000276
*/
public class DatabaseUtils {
public static final String DEFAULT_DRIVER = "org.mariadb.jdbc.Driver";
public static final String DEFAULT_URL = "jdbc:mariadb://localhost:3306/contact";
public static final String DEFAULT_USERNAME = "contact";
public static final String DEFAULT_PASSWORD = "contact";
public static final String DEFAULT_HOST = "localhost";
public static final int DEFAULT_PORT = 3306;
public static final String DEFAULT_DATABASE = "contact";
public static void main(String[] args) {
Connection connection = null;
try {
connection = createConnection(DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_USERNAME, DEFAULT_PASSWORD);
DatabaseMetaData meta = connection.getMetaData();
System.out.println(String.format("Connected to %s version %s", meta.getDatabaseProductName(), meta.getDatabaseProductVersion()));
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
close(connection);
}
}
public static DataSource createDataSource(String host, int port, String database) throws ClassNotFoundException, SQLException {
return new MySQLDataSource(host, port, database);
}
public static Connection createConnection(String driverClass, String url, String username, String password) throws ClassNotFoundException, SQLException {
Class.forName(driverClass);
return DriverManager.getConnection(url, username, password);
}
public static void close(Connection connection) {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(Statement st) {
try {
if (st != null) {
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我通过编辑mysqlId.cnf文件(位于/etc/mysql/mysql.conf.d/目录)中的绑定地址来修复它,如下所示: 绑定地址=0.0.0.0 然后重新加载mysql服务 然后,我创建了一个新用户,其授权如下: 创建由“mypass”标识的用户“myuser”@“localhost”; 创建由“mypass”标识的用户“myuser”@“%” 全力以赴。到“myuser”@“localhost”; 全力以赴。“我的用户”@“%” 和特权: 同花顺特权
积分转到@apesa这不是权限问题,ROOT拥有*grant。。已尝试创建并授予新用户,但仍然无效。尝试使用main方法时,再次出现错误。也许我应该提一下,我正在将应用程序从一台服务器部署到另一台服务器。我解决了这个问题,如果将来有人需要,我会在下面发布我做了什么。谢谢你的回复。