показывает ошибку: -
Tue Apr 09 14:34:46 IST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
java.sql.SQLException: Access denied for user 'sql12287303'@'localhost' (using password: YES)
Мне удалось использовать базы данных на моей локальной машине, но я не могу подключиться к своему удаленному серверу mysql.
public class JDBCDemo {
public static void main(String[] args) {
String TableName;
// TODO Auto-generated method stub
try{
String url = "jdbc:mysql://localhost:3306/sql12287303"; //3306/db1?autoReconnect=true&useSSL=false";
String username = "sql12287303";
String password = "54hBDtsfPg";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection(url, username, password);
System.out.println ("Database connection established");
System.out.println(con);
Statement smt = con.createStatement();
smt.execute("create database db1");
smt.execute("use db1");
smt.execute("create table flames(id Integer primary key,fname varchar(20),sname varchar(20)");
smt.execute("show tables");
ResultSet rs = smt.getResultSet();
while(rs.next()){
TableName = rs.getString(1);
System.out.println("Table Name:"+TableName);
}
}catch(Exception e){System.out.println(e);}
}
}
ИмяТаблицы:пламя
Привет Пурна! Вы предоставили доступ пользователю? grant all on sql12287303.* to 'sql12287303'@'localhost' identified by '54hBDtsfPg'
@ Джордж Это, конечно, не так. Это предупреждение: это ошибка. Это неаутентифицированный сервер: это неаутентифицированный клиент. Совершенно разные ситуации.
Ваши url
ссылки localhost
. Это то, что вы хотите? Я предполагаю, что, поскольку вы говорите «удаленный mysql», это не так.
@guest Хороший вопрос, но он не получил отказ в соединении, он получил отказ в доступе, что означает, что он получил соединение.
@OP Почему имя пользователя совпадает с именем базы данных?
Сервер: sql12.freemysqlhosting.net Имя: sql12287303 Имя пользователя: sql12287303 Пароль: 54hBDtsfPg Номер порта: 3306. Они генерируются в freemysqlhosting.net, когда я создал в нем базу данных.
Та же ошибка произошла при доступе к моей базе данных, созданной на 000webhost.
Думаю, намека было недостаточно.
Этот код указывает драйверу JDBC подключиться к базе данных с именем sql12287303
на localhost
:
String url = "jdbc:mysql://localhost:3306/sql12287303";
Сообщенная вами ошибка указывает на то, что вы на самом деле подключаетесь к localhost
, но с пользователем, который не известен на работающем там сервере базы данных.
Если вы хотите подключиться к удаленной базе данных, вам нужно изменить свой URL:
String url = "jdbc:mysql://sql12.freemysqlhosting.net:3306/sql12287303";
Это та же проблема, о которой сообщил stackoverflow.com/questions/34189756/….