Невозможно создать PoolableConnectionFactory (доступ запрещен для пользователя '' @ 'localhost' - PullRequest
7 голосов
/ 24 сентября 2010

Я пытался настроить DatabaseConnectionPool для веб-приложения последние пару дней, но безуспешно.Я прочитал соответствующие разделы документов Tomcat и много по этой теме и думаю, что я все делаю правильно, но, очевидно, не потому, что я продолжаю получать следующую ошибку:ошибка при запуске Tomcat, но при попытке запустить следующий сервлет:Я не понимаю, почему ошибка не говорит о том, что доступ запрещен «root» @ «localhost», когда я указал, что это пользователь.* У меня есть дубликат context.xml?Нет. Я удалил значение по умолчанию в Tomcat 6.0 / conf.Я попытался поместить context.xml в [mywebappname] /META-INF/context.xml, но это не только не сработало, но и привело к созданию файла с именем TwitterSearch.xml, который был автоматически сгенерирован и помещен в Tomcat 6.0 / conf.Каталог / Catalina / localhost.Так что теперь я просто редактирую это, и это единственное, что у меня есть.

Это версия Tomcat?Ну, я полностью переустановил последнюю версию Tomcat 6.0, так что я не думаю, что это так.

Нам не хватает нескольких банок?У меня есть tomcat-dbcp.jar, jconnector.jar и все остальные, которые, я думаю, должны быть в каталоге Tomcat 6.0 / lib.

Когда я смотрю на пароли в базе данных MySQLкажется, они были закодированы в целях безопасности в длинную буквенно-цифровую строку.Это нормально?Должен ли я иметь это в моем context.xml или просто в обычном пароле?

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

Джо

Ответы [ 2 ]

11 голосов
/ 24 сентября 2010

Ваша установка выглядит хорошо. Похоже, это проблема с правами доступа.

Вам необходимо предоставить этому пользователю доступ в mysql. Хотя Java будет подключаться к localhost, она будет делать это с помощью tcp / ip - однако в mysql localhost и 127.0.0.1 имеют разное значение. Выполнение этого SQL должно помочь.

grant all on twitter.* to 'root'@'127.0.0.1' identified by 'mypwd';

Это предполагает, что Java разрешает localhost в 127.0.0.1, если что-то все равно не работает, вы можете попробовать изменить строку подключения на "jdbc: mysql: //127.0.0.1: 3306 / twitter"

Должен ли я иметь это в моем context.xml или просто обычный пароль?

Как у вас есть, пароль в виде открытого текста.

2 голосов
/ 18 октября 2015

В вашей конфигурации context.xml для веб-приложения вы должны изменить user = "root" на username = "root"

...