как подключиться к mysql на хосте на другом компьютере в сети

Для

$conn = mysql_connect("192.168.0.235", "root", "") or
    die("Could not connect: " . mysql_error());

mysql_select_db("crossdomaintest");

$result = mysql_query("SELECT * FROM testing");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    echo $row[1].$row[2].$row[3]."<br/>"; 
}

mysql_free_result($result);

я осознаю

Предупреждение: mysql_connect () [function.mysql-connect]: хосту «192.168.0.167» не разрешено подключаться к этому серверу MySQL в /var/www/test.php в строке 3. Не удалось подключиться: хосту «192.168.0.167» не разрешено подключаться к этому серверу MySQL

И мой IP-адрес 192.168.0.168, и я использую LAMP на Ubuntu 10.10, а 192.168.0.235 использую XAMPP на windows 7. Я могу получить доступ ко всем сайтам на ...235, но не могу получить доступ к базе данных с моего локального сервера.

Есть идеи?


person Santosh Linkha    schedule 20.03.2011    source источник
comment
проверьте, можете ли вы получить доступ к порту mysql в Windows.   -  person Hossein    schedule 20.03.2011
comment
В настоящее время работа в автономном режиме будет оценена по достоинству.   -  person Santosh Linkha    schedule 20.03.2011
comment
Используйте хорошую программу управления базой данных в Linux и посмотрите, сможете ли вы подключиться к базе данных Windows, используя ее. Полковник Шрапнель также прав, соответствующие привилегии на компьютере вашего друга должны быть установлены для IP-адреса вашего компьютера, чтобы вы могли подключиться к нему. (Нет, я не знаю программ db для Linux и понятия не имею, где в Windows вы должны установить привилегии.)   -  person Hossein    schedule 20.03.2011


Ответы (2)


дело не в том "как подключиться". подключение будет одинаковым.
речь идет о том, как настроить удаленный сервер, чтобы разрешить подключения с вашего IP-адреса.
у вас есть привилегии суперпользователя на сервере db на 192.168.0.235? если это так, вы должны выполнить соответствующий запрос GRANT PRIVILEGES для него.
Если нет, попросите администратора базы данных сделать это.

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

person Your Common Sense    schedule 20.03.2011
comment
хорошо, я знаю корень username и password я подключаюсь просто как веб-запрос. но, честно говоря, я не знаю много вещей для работы в сети - person Santosh Linkha; 20.03.2011
comment
@experimentX, вы не подключаетесь как веб-запрос, MySQL так не работает. Вы подключаетесь к протоколу MySQL через TCP/IP. Кроме того, это не имеет ничего общего с сетью (кроме того, что вы ее используете). Это связано с правильными разрешениями на вашу установку MySQL. Полковник Шрапнель прав. - person Brad; 20.03.2011
comment
GRANT ALL ON * TO 'root'@'%' IDENTIFIED BY 'somepassword'; должен это сделать. Но будь осторожен, ты навлекаешь на себя неприятности. Протокол MySQL представляет собой простой текст и, конечно же, не зашифрован, если только вы не подключаетесь через SSL, чего вы не делаете. Удаленный root-доступ, как правило, плохая идея. Вместо этого вам следует настроить отдельную учетную запись пользователя, которая имеет доступ только к тому, что вам нужно. - person Brad; 20.03.2011
comment
@Brad @Col.Shrapnel спасибо за информацию, но у меня есть один вопрос, я могу получить доступ к mysql с терминала, а также с локального хоста, то есть apache, и я использую username и password для подключения к нему, я все еще подключаюсь через TCP/IP из моего локальный сервер для mysqldb? - person Santosh Linkha; 20.03.2011
comment
Это зависит. Вы можете, но обычно вместо этого используются именованные каналы/сокеты. Если вы укажете 127.0.0.1 вместо localhost, это гарантирует, что вы подключаетесь через петлю с использованием TCP/IP. - person Brad; 20.03.2011
comment
@Brad, мне поручили разработать систему, которая также позволяла бы работать в автономном режиме. - person Santosh Linkha; 20.03.2011
comment
@experimentX ... Какое отношение это имеет к вашему вопросу. Если у вас есть отдельный вопрос для работы в автономном режиме, пожалуйста, объясните, что вам нужно в новом вопросе. Обычно, если вам нужно, чтобы пара систем работала в отключенном состоянии, а затем синхронизировалась, вам нужны локальные серверы на каждой стороне и репликация. Вы не должны возиться с репликацией на этом этапе. Сначала освойте основы. - person Brad; 20.03.2011

Вы изменили доступ пользователя root к хосту "%"?

Извините за мой английский, я французский.

  • Космик.
person Cosmik    schedule 20.03.2011
comment
иметь в виду?? я вхожу в систему как пользователь root, это компьютер моего друга - person Santosh Linkha; 20.03.2011
comment
@experimentX, каждому пользователю в MySQL предоставляется хост. Обычно пользователю root разрешается входить в систему только с локального хоста. Если вы не предоставите разрешения хосту с подстановочным знаком (%, что означает любой хост), вы не сможете войти в систему. - person Brad; 20.03.2011