Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 我的spring boot应用程序的新版本无法连接到mysql_Java_Mysql_Spring_Tomcat_Jenkins - Fatal编程技术网

Java 我的spring boot应用程序的新版本无法连接到mysql

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”的访问:是 在

我的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连接,如下所示:

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方法时,再次出现错误。也许我应该提一下,我正在将应用程序从一台服务器部署到另一台服务器。我解决了这个问题,如果将来有人需要,我会在下面发布我做了什么。谢谢你的回复。