Подтвердить что ты не робот

Как подключиться к удаленной базе данных MySQL с помощью Java?

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

4b9b3361

Ответ 1

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

jdbc:mysql://192.168.15.25:3306/yourdatabase

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

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

Ответ 2

Вам нужно передать IP/hostname машины репота в строку подключения.

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 */ }
           }
       }
   }
}

Ответ 3

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

запустите следующий script, чтобы предоставить разрешения: ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ. К пользователю @'%' IDENTIFIED BY 'password';

Ответ 4

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

Ответ 5

  • Создайте нового пользователя в схеме mysql (mysql.user) Запустите этот код в рабочем пространстве mysql "GRANT ALL ON . to [email protected]'%'IDENTIFIED BY '';

  • Откройте "порт 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 ->

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

bind-address = 127.0.0.1