2012-02-13 2 views
6

У меня есть настройка mySQL на компьютере в локальной сети, как мне подключиться к нему? У меня также установлен mySQL на этом компьютере (который я хочу использовать для подключения к базе данных).подключение к серверу mysql на другом ПК в локальной сети

Я попытался следующие, но это не работает

mysql -u user -h 192.168.1.28:3306 -p password 
ERROR 2005 (HY000): Unknown MySQL server host '192.168.1.28:3306' (0) 

EDIT: Спасибо за вашу помощь. Во всяком случае, я подключаюсь без 3306, и у меня есть еще одна проблема. MACBOOK - это имя моего клиентского компьютера.

mysql -u user -ppassword -h 192.168.1.28 
ERROR 1045 (28000): Access denied for user 'user'@'MACBOOK' (using password: YES) 

Спасибо.

+2

Если у вас есть новый вопрос (и проблемы с аутентификацией - это нечто иное, чем проблемы с подключением), повторите исследование, и если вы не найдете ответа (который я очень сомневаюсь), задайте новый вопрос. Кроме того, пожалуйста, прочитайте одну из многих новинок, вводящих в MySQL, - которые должны сразу ответить на ваш вопрос. –

ответ

5

Следуйте простой перечень:

  1. пробуйте пинговать машину ping 192.168.1.2
  2. Убедитесь, что MySQL работает на указанном порту 3306 т.е. он не был изменен.
  3. Убедитесь, что другой компьютер не блокирует входящие соединения на этом порту. Если это так, добавьте исключение брандмауэра, чтобы разрешить подключения на порту 3306 и разрешить входящие соединения в целом.
  4. Было бы неплохо, если бы вы могли опубликовать точную ошибку, поскольку она отображается при попытке установить это соединение.
0

Вам не нужно указывать ': 3306' после IP, это порт по умолчанию для MySQL.

И если ваш сервер MySQL работает с другим портом, чем 3306, вам необходимо добавить '-P [port]' вместо добавления его на IP-адрес.

Клиент MySQL не распознает синтаксис «host: port», вместо этого вы должны использовать -P [порт].

И, кстати, если вы используете «-p пароль», это не сработает и снова запросит пароль. Вы должны вставить пароль в -p: -ppassword. (тем не менее, это очень плохая привычка, потому что любой, кто мог бы сделать PS на вашем сервере, мог видеть простой пароль ...)

0

Фактически вы не должны указывать порт в имени хоста. Mysql имеет специальную опцию для порта (если порт отличается от дефолта)

вид

mysql --host=192.168.1.2 --port=3306 
0

Вы должны использовать это:

>mysql -u user -h 192.168.1.2 -P 3306 -ppassword 

или это:

>mysql -u user -h 192.168.1.2 -ppassword 

.. . 3307 - номер порта по умолчанию.

mysql Options

2
mysql -u user -h 192.168.1.2 -p 

Это должно быть достаточно для подключения к серверу MySQL. Пожалуйста, проверьте брандмауэр 192.168.1.2, если включено удаленное подключение к серверу MySQL.

С уважением

+0

Не работает для меня. –

5

Поскольку у вас есть MySQL на локальном компьютере, вам не нужно возиться с IP-адресом компьютера. Просто используйте локальный:

mysql -u user -p 

или

mysql -hlocalhost -u user -p 

Если вы не можете войти с этим, вы должны выяснить, какие имена пользователей (пользователь @ хост) существуют в сервере MySQL locallly. Вот что вы делаете:

Шаг 01) Запуск MySQL, так что пароли не требуют никаких паролей и отрицает TCP/IP соединения

service mysql restart --skip-grant-tables --skip-networking 

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

Шаг 02) Показать пользователей и хостов

select concat(''',user,'''@''',host,'''') userhost,password from mysql.user; 

Шаг 03) Проверьте свой пароль, чтобы убедиться, что он работает

select user,host from mysql.user where password=password('YourMySQLPassword'); 

Если пароль не производит никакого вывода для этого запроса, у вас плохой пароль.

Если ваш пароль производит выходные данные для этого запроса, посмотрите на пользователей и хосты. Если ваше хост-значение равно «%», вы должны иметь возможность подключаться из любого места. Если ваш хост является «localhost», вы можете подключиться локально.

Укажите, что у вас есть «root» @ «localhost».

После того, как вы сделали то, что нужно, просто перезапустить MySQL обычно

service mysql restart 

Если вы можете успешно подключиться на MacBook, запустить этот запрос:

SELECT USER(),CURRENT_USER(); 

USER() отчеты, как вы пытались для аутентификации в MySQL

CURRENT_USER() сообщает, как вам разрешили пройти аутентификацию в MySQL

Дайте нам знать, что произойдет !!!

UPDATE 2012-02-13 20:47 EDT

Войти на удаленный сервер и повторите шаг 1-3

Смотрите, если любой пользователь предоставляет возможность удаленного доступа (т.е. хост в mysql.user является " % '). Если вы этого не сделаете, добавьте 'user' @ '%' в mysql.user.

+2

У меня есть mysql в моем localhost, но я хочу подключиться к mysql на другом ПК. – revolver

7

Это было очень полезно Вопрос! так как нам иногда нужно запускать приложение с централизованной БД. , в этом случае мы должны предоставить привилегии этим компьютерам в локальной сети для доступа к конкретной базе данных, размещенной на ПК локальной сети. так вот решение для этого!

1.перейти к серверу MySQL

2.Type следующий код, чтобы предоставить доступ к другим ПК

mysql> grant all privileges on *.* to 'root'@'%' identified by 'root_password'; 
mysql> flush privileges; 

заменить «%» на IP вы хотите предоставить доступ!

+3

Его довольно опасно, позволяя «root» использовать SuperUser из любого ip во вселенной. Было бы лучше создать новую учетную запись пользователя, имеющую доступ только к соответствующей базе данных, и с минимальными привилегиями делать то, что требуется удаленному доступу. – RiggsFolly

+0

Этот ответ действительно полезен! И да, поскольку @RiggsFolly сказал создать новую учетную запись сначала, тогда сделайте это. – user55924

+0

Я согласен, что это опасно, НО это безумно делать это на машине-разработчике в небольшом домашнем офисе? – mlissner

1

Подключение к любой базе данных MySQL должен быть таким:

$mysql -h hostname -Pportnumber -u username -p (введите)

Затем он запросит пароль. Примечание. Номер порта должен быть ближе к -P или будет отображаться ошибка. Убедитесь, что вы знаете, что такое ваш порт mysql. Значение по умолчанию - 3306 и необязательно указывать порт в этом случае. Если это что-то еще, вам нужно указать номер порта с -P, иначе он покажет ошибку.

Например: $mysql -h 10.20.40.5 -P3306 -u root -p (введите)

Password:My_Db_Password 

Gubrish о продукте вы используете.

mysql>_ 

Примечание: Если вы пытаетесь подключить БД в другом месте, убедитесь, что вы можете свистеть к этому серверу/компьютеру.

$ping 10.20.40.5 

Он должен вернуть TTL со временем, когда вы получили PONG. Если он говорит о недоступности назначения, то вы не можете подключиться к удаленному mysql независимо от того, что.

В таком случае свяжитесь с вашим сетевым администратором или проверьте подключение вашего кабеля к компьютеру до конца вашего целевого компьютера. Или проверьте работу LAN/WAN/MAN или интернет/интранет/экстрасеть.

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