Не удается подключиться к базе данных MySQL от Tomcat - PullRequest
3 голосов
/ 14 ноября 2009

Эй, я получаю эту ошибку:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
Could not create connection to database server. 
Attempted reconnect 3 times. Giving up.

Я просто пытаюсь подключиться к базе данных. С этим кодом

<%@page import="java.sql.*"%>

<%
try{
//  Class.forName("com.mysql.jdbc.Driver");
    Class.forName("org.gjt.mm.mysql.Driver");

    out.println("found");
} catch (ClassNotFoundException ex){
    out.println("Erro<br/>");
    out.println(ex.toString());
} catch (Exception e){
    out.println(e.toString());

}

Connection ocon;

try{
ocon = DriverManager.getConnection("jdbc:mysql://localhost/cpjcoimbra?autoReconnect=true", "*****", "*****"); //password matches
out.print("connected");
} catch (Exception e){
    out.println(e.toString()+"<br/>");
}

%>

Он находит драйвер, но я получаю эту ошибку при попытке подключиться к базе данных.

У меня есть это разрешение на каталину 50.local.policy

grant codeBase "file:/var/lib/tomcat6/WEB-INF/lib/-" {
  permission java.security.AllPermission;
};

Кто-нибудь знает, почему появляется эта ошибка?

Edit: Сервис MySQL статус дает это:

 * /usr/bin/mysqladmin  Ver 8.42 Distrib 5.1.37, for debian-linux-gnu on i486
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version      5.1.37-1ubuntu5
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         1 hour 32 min 21 sec

Threads: 1  Questions: 103  Slow queries: 0  Opens: 171  Flush tables: 1  Open tables: 41  Queries per second avg: 0.18

Ответы [ 2 ]

2 голосов
/ 14 ноября 2009

Драйвер неверен - используйте класс "com.mysql.jdbc.Driver".

Код Scriptlet в JSP? Ох, мой - это не хорошо.

Но это не причина вашей проблемы.

Вы предоставили разрешения для этого имени пользователя и пароля? Вот примеры шагов:

  1. Зарегистрируйтесь как root: mysql –h localhost –u root –p ; пароль = <ваш пароль администратора>
  2. «создать базу данных x;»
  3. «создать пользователя p, обозначенного как« q »;»
  4. «предоставить все на x. * To x’ @ ’%’; »

Укажите имя пользователя p и пароль q, которые вы использовали для создания пользователя при подключении к базе данных.

Убедитесь, что служба работает и прослушивает порт 3306. Откройте командную оболочку и введите 'netstat -a' и найдите прослушиватель на порту 3306.

Эта запись из базы данных ошибок MySQL также может иметь значение.

Для дальнейшего использования полезно вставить любое сообщение об ошибке в Google. Вполне вероятно, что я не первый, кто сталкивается с конкретной проблемой.

Даже если вам удастся решить эту проблему и заставить ее работать, это все равно фатальная ошибка. JSP подключается напрямую к базе данных - без защиты, за исключением имени пользователя и пароля, которые вы ввели в виде простого текста. Вы действительно не хотите этого делать.

У вас проблема с подключением. Отделите это от JSP для начинающих.

  1. Можно ли подключиться с помощью инструмента администрирования MySQL в командной оболочке?
  2. Можете ли вы написать простой класс Java для успешного подключения к базе данных?
0 голосов
/ 16 ноября 2009

Я понизил MySQL с 5.1 до 5.0, и теперь все работает. Должна быть какая-то ошибка в версии 5.1.

Ну спасибо за помощь:)

...