Как подключиться к удаленной базе данных MySQL с помощью Java? - PullRequest
26 голосов
/ 23 февраля 2010

Я пытаюсь создать приложение JSF, используя Eclipse IDE. Я использую удаленный сервер MySQL в качестве базы данных. Как мне подключиться к этой удаленной базе данных для создания таблиц и доступа к ним?

Ответы [ 8 ]

41 голосов
/ 23 февраля 2010

Просто укажите IP / имя хоста удаленного компьютера в строке подключения к базе данных вместо localhost. Например:

jdbc:mysql://192.168.15.25:3306/yourdatabase

Убедитесь, что нет брандмауэра, блокирующего доступ к порту 3306

Кроме того, убедитесь, что пользователю, с которым вы подключаетесь, разрешено подключаться с этого конкретного имени хоста. Для сред разработки это безопасно сделать по 'username'@'%'. Проверьте руководство пользователя по созданию и GRANT руководство .

9 голосов
/ 23 февраля 2010

Вам необходимо передать IP / имя хоста удаленного компьютера в строке подключения.

import java.sql.*;
import javax.sql.*;

public class Connect
{
   public static void main (String[] args)
   {
       Connection conn = null;

       try
       {

           String url = "jdbc:mysql://localhost:3306/mydb";
           Class.forName ("com.mysql.jdbc.Driver");
           conn = DriverManager.getConnection (url,"root"," ");
           System.out.println ("Database connection established");
       }
       catch (Exception e)
       {
           e.printStackTrace();

       }
       finally
       {
           if (conn != null)
           {
               try
               {
                   conn.close ();
                   System.out.println ("Database connection terminated");
               }
               catch (Exception e) { /* ignore close errors */ }
           }
       }
   }
}
4 голосов
/ 12 марта 2013

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

запустите следующий скрипт для предоставления разрешений: ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА . ПОЛЬЗОВАТЕЛЮ @ '%', ОПРЕДЕЛЯЕМОМУ 'паролем';

2 голосов
/ 23 февраля 2010

Плюс, вы должны убедиться, что конфигурация сервера MySQL (/etc/mysql/my.cnf, / etc / default / mysql в Debian) не имеет активированной «пропускающей сети» и не привязана исключительно к петле интерфейс (127.0.0.1), а также интерфейс / IP-адрес, к которому вы хотите подключиться.

1 голос
/ 08 июля 2015

Закройте все соединения, которые открыты и подключены к порту прослушивания сервера, независимо от того, используется ли оно на стороне приложения или на стороне клиента (navicat) или на работающем сервере (apache или weblogic). Сначала закройте все соединения, затем перезапустите все инструменты MySQL, apache и т. Д.

1 голос
/ 13 октября 2014
  1. Создание нового пользователя в схеме «mysql» (mysql.user) Запустите этот код в вашем рабочем пространстве mysql “GRANT ALL ON <em>.</em> to user@'%'IDENTIFIED BY '';

  2. Откройте порт «3306» на машине с базой данных. Control Panel -> Windows Firewall -> Advance Settings -> Inbound Rules -> New Rule -> Port -> Next -> TCP & set port as 3306 -> Next -> Next -> Next -> Fill Name and Description -> Finish ->

  3. Попробуйте проверить с помощью telnet msg на cmd, включая IP-адрес сервера БД

0 голосов
/ 11 декабря 2018

В Ubuntu после создания версий localhost и '%' пользователя и предоставления соответствующего доступа к database.tables для обоих я должен был закомментировать 'bind-address' в /etc/mysql/mysql.conf. d / mysql.cnf и перезапустите mysql как sudo.

bind-address = 127.0.0.1

0 голосов
/ 06 декабря 2013

в файле my.cnf, пожалуйста, измените следующее

## Вместо пропуска сети по умолчанию теперь прослушивается только ## localhost, который более совместим и не менее безопасен. ## bind-address = 127.0.0.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...