2013-07-16 2 views
-1

У меня есть JApplet, который подключается к базе данных с помощью этого кода:JDBC Connection: Доступ запрещен для пользователя, даже все Previlleges предоставляется

String url = "jdbc:mysql://localhost:3306/moodlele_survey"; 
    String user = "moodlele_garanti"; 
    String password = "garanti"; 



    try { 
     panel.add(new JLabel("before driver")); 
     Class.forName("com.mysql.jdbc.Driver"); 
     panel.add(new JLabel("failed")); 
     Connection con = DriverManager.getConnection(url, user, password); 

Апплета подписанный, поэтому он имеет право на подключение баз данных. Пользователю базы данных предоставляется все превалирования, а имя пользователя, пароль и имя базы данных верны, потому что я могу подключиться к базе данных через PHP с той же информацией. Как я могу это исправить?

Напечатанный ошибка стека: Доступ запрещен для пользователя «moodlele_garanti» @ «локальный» (используя пароль: ДА)

+0

Почему это было приостановлено? –

+0

Вы уверены, что используете правильный текст для своей базы данных, пользователя и пароля? –

+0

@RohitJain IMO нет необходимости в повышении или понижении. –

ответ

2

Вам не кажется, на самом деле, чтобы понять технологии, которые вы используете, или, как они Работа.

В комментариях вы заявляете:

My website's client machine is also a localhost for the codes that run inside it uploaded via ftp like the logic in PHP: you write localhost and upload to the server, then it connects

Это PHP работает на веб-сервере. То же самое происходит и с тем же хостом, что и ваш сервер mysql. Итак, да localhost верен на PHP. Ваш веб-браузер на вашем компьютере дома подключается к веб-серверу через TCP, PHP выполняется на веб-сервере, подключается к серверу mysql на тем же хостом, и все в порядке.

Java-апплеты запускают в вашем браузере на вашей машине. Апплет загружается с веб-сайта на ваш компьютер дома, и он работает на этой машине. Способ, которым ваш код написан в вашем вопросе, затем пытается подключиться к серверу mysql на вашей машине дома. localhost - ваш компьютер.

Для того, чтобы этот апплет подключался к серверу mysql у вашей хостинговой компании, ему необходимо попытаться подключиться к , что хост. Кроме того, порты должны быть открыты для/на этом сервере, позволяя удаленному подключению к серверу mysql, mysql должен прослушивать соединение на внешнем (общедоступном) IP-адресе, и вам необходимо предоставить привилегии для этого пользователя для подключения к удаленному хосту.

Возможно, стоит упомянуть, что в целом это очень плохая идея. Редко представляет вашу базу данных миру хорошую идею; одна небольшая ошибка при предоставлении доступа создает очень большую проблему. Существует множество других проблем безопасности. Люди это делают? Конечно. Тем не менее, это не очень хорошая идея.

Обычно апплет, предназначенный для общественного потребления, будет использовать промежуточную услугу (например, веб-API или даже RMI), чтобы дать вам шанс сразиться.

Смежные вопросы