2013-02-20 3 views
1

У меня установлена ​​удаленная установка сервера базы данных mysql на машине myuniversity.edu, а сервер имеет имя 'localhost'. На нем у меня есть база данных с именем «MyDatabase».Строка подключения базы данных для удаленного сервера базы данных с именем 'localhost'

I want to connect it through Java. 

The connection urls that I have tried are: 
    jdbc:mysql://myuniversity.edu/localhost 
    jdbc:mysql://myuniversity.edu/localhost/MyDatabase 
    jdbc:mysql://myuniversity.edu:3306/MyDatabase 

but I get the `Connection refused: connect` exception. 

Не могли бы вы рассказать, какой должен быть URL-адрес соединения?

+1

'localhost' или' 127.0.0.1' относится к текущему компьютеру (там даже шутки о нем, как [это] (HTTP: // nerdnirvana .org/WP-содержание/добавления/2010/05/нет места, как-localhost.jpg)). Имя сервера должно быть «myuniversity.edu». Если он недоступен в вашей сети, попробуйте использовать его IP (что-то вроде '10.0.0.15') –

+0

Я считаю, что' myuniversity.edu' является доменным именем, поэтому для удаленного доступа к mysql ** ** вам либо нужно знать ** имя домена ** (например, 'server') машины, на которой запущен mysql, а затем использовать полное доменное имя (например,' server.myuniversity.edu') или вам нужно знать IP-адрес этой машины. Вы можете использовать 'localhost' только для подключения к локальному (на той же машине) экземпляру mysql. – peterm

+0

Как отмечали другие, localhost на самом деле не является его именем. Если ваш сервер является Linux/Mac/Unix, имя можно найти с помощью команды «hostname», и вы можете найти его IP-адрес, указав интерфейсы (сетевые карты), используя 'ifconfig -a' –

ответ

0

Ok так вот что я сделал, чтобы исправить эту проблему:

  • В my.cnf файл, я изменил Bind-адрес от «127.0.0.1» на «хозяина» IPaddress в . Это позволяет подключиться к удаленному серверу mysql , но не разрешает доступ для любого удаленного хоста, пытающегося подключиться к .
  • Чтобы исправить это, я добавил запись в пользовательскую таблицу с хостом '%'. Это позволяет удаленным хостам подключаться к базе данных.

Теперь я могу подключиться к базе данных с jdbc:mysql://serverIpAddress:3306/MyDatabase

+0

ok. можете ли вы пометить вопрос как ответ. благодаря – greenkode

3

Не уверен, что ваше имя машины myuniversity.edu, вы можете вместо этого попробовать IP-адрес со строкой подключения, Localhost - это имя сетевого интерфейса loopback и доступного только на этом компьютере. Также убедитесь, что ваш порт по умолчанию для mysql (может быть 3306) открыт. С IP-адрес строка подключения будет выглядеть следующим образом:

jdbc:mysql://192.168.0.123/MyDatabase 

С IP и порт было бы:

jdbc:mysql://192.168.0.123:3306/MyDatabase 

(Вы должны заменить IP в строке выше)

+0

У меня есть попробовал это. Я попробовал 'jdbc: // mysql: // ipaddress: 3306/MyDatabase', но я получаю ту же ошибку. Я видел файл my.cnf и адрес привязки 127.0.0.1 Должен ли он быть ipaddress системы? –

+0

@neerajnarang, нет, это то же самое, что и localhost, его IP-адрес loopback. – Habib

+0

Я выполнил эту команду: 'netstat -atn', и это результат ' tcp'' 0' '0'' 127.0.0.1: 3306'' 0.0.0.0: *' 'LISTEN ' показывает, что сервер прослушивает 127.0.0.1 на порту 3306. Когда я пытаюсь подключиться через 'theipaddress: 3306', я получаю сообщение об ошибке отказа ... –

0

Я не могу подключиться удаленно без (IP) адреса попробуйте этот подход

, если вы хотите подключить его через Интернет:

  1. ОТКРЫТЫЙ CMD на вашем компьютере

  2. в CMD записи пинг myuniversity.edu (например пинг google.com) , то вы получите IP-адрес веб-сайта, и вы можете скопировать ф

попробуйте этот подход:

Connection con; 
try{ 
Class.forName("com.mysql.jdbc.Driver"); 
con = DriverManager.getConnection("jdbc:mysql://THE IP ADDRESS :3306/DatabaseName"); 
System.out.println("CONNECTED"); 
}catch(Exception ex) 
{ 
System.out.println(ex.getMessage()); 
} 
Смежные вопросы