Java2MySQL> Ошибка связи в связи с заново основанием исключения

Я делаю программу на Java, которая подключается к базе данных MySQL. Поскольку первый класс был классом с единственным статическим методом, возвращающим java.sql.Connection. После того, как он был отлажен и работала связь, я больше никогда не трогаю его. И несколько дней назад я обнаружил, что моя программа возвращала эту ошибку:

com.mysql.jdbc.CommunicationsException:
Ошибка связи из-за лежащего в основе исключения

НАЧАТЬ НЕПРЕДЕЛЕННОЕ ИСКЛЮЧЕНИЕ
com.mysql.jdbc.CommunicationsException

СООБЩЕНИЕ:
Связь отказ из-за основного исключения:

НАЧАТЬ НЕПРЕДЕЛЕННОЕ ИСКЛЮЧЕНИЕ
java.io.EOFException СООБЩЕНИЕ: Не удается прочитать ответ с сервера. Ожидаемые 4 байта, считанные 0 до того, как соединение было неожиданно потеряно.

StackTrace:

...

  • Я установил MySQL Server v. 5.1.62
  • Я использую соединитель MySQL/J v. 5.0.8 (загружен с mysql.com)
  • Также я помещаю в classpath в NetBeans sqljdbc4.jar

Вещь, которую я не могу понять, это факт, что я не менял имя пользователя и пароль на своем локальном хосте, так как я создал свою базу данных. Единственное, что я изменил: добавить в таблицы больше таблиц и изменить столбцы, но это не вызовет эту ошибку. И что я сделал с моим проектом, я изменил кодировку с UTF-8 на UTF-16, но, я думаю, это вряд ли повлияет на мой метод подключения.

Если я сменил соединитель и вставил в classpath-коннектор v. 5.1.22, он возвращает ошибку:
Доступ запрещен для пользователя "root @localhost" (с использованием пароля: ДА)
даже я объявил все привилегии для пользователя root.

Ответ 1

Я рекомендую следующее:

  • Во-первых, проверьте, нет ли между двумя серверами сети: a. ping с вашего сервера на ваш сервер базы данных. б. используйте инструмент MTR unix для обеспечить связь между двумя серверами.
  • Используете ли вы пул соединений? Если да, попробуйте перезагрузить сервер. Вероятно, несколько соединений в вашем пуле подключений находятся в закрытое состояние.

Сначала разрешим первую проблему. Другая проблема Доступ запрещен для пользователя "root @localhost" (с использованием пароля: ДА) - это независимая проблема, которую мы можем обсудить позже.

Ответ 2

Я забыл сказать, что использую машину Win 7. Спасибо за ответ. Я установил еще больше подключений в моем пуле, и это не сработало (у меня около 10 подключений к базе данных, когда приложение запускается и пул принимает 15).
НО!!
Я не забыл, что я изменил мою кодировку проекта из UTF-8 (с тех пор, как я начинал), в Юникод (потому что я хотел использовать восточно-европейский алфавит в окнах JOptionPane.showMessageDialog();, так как мой родной алфавит). Только для теста я изменил кодировку обратно на UTF-8, и мое соединение снова работает. Честно... Я этого не понимаю.