Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сделать удаленный доступ к MySQL
 
 автор: Wyfinger   (27.07.2007 в 04:16)   письмо автору
 
 

Добрый день.

Есть сервер 192.168.0.1 (linux) c mySQL, мне нужно подключиться к mySQL серверу с компьютера 192.168.0.10. Как я прочел в этом форуме, для этого нужно создать пользователя user@192.168.0.10 на сервере.

Всвязи с этим у меня есть несколько вопросов:
1. Создать пользователя - имеется ввиду учетная запись OC, или пользователя mySQL ?
2. Если учетная запись OC, то как ее создать, если у меня есть root ?
3. Где можно почитать конкретно по этой теме по-русски?

   
 
 автор: Wyfinger   (27.07.2007 в 08:07)   письмо автору
 
   для: Wyfinger   (27.07.2007 в 04:16)
 

Так, я понял, что пользователь имеется ввиду mySQL.

Прочитал http://www.linuxcenter.ru/lib/articles/soft/mysql.phtml, там написанно запрос:

GRANT ALL PRIVILEGES ON *.* TO myname@192.168.0.10 IDENTIFIED BY ' some_password'  WITH GRANT OPTION;


создаст пользователя, myname, который может подключаться ко всем таблицам с адреса 192.168.0.10, запрос я выполнил, пользователь создался, но подключаться - не подключается.

Аналогично и с символом '%', т.е. myname@% - удаленно не подключается.

Что я неправильно делаю?

И еще одно, просканировал порты сервера с 3300 до 3400 - нет открытых портов (TCP), возможно где-то запрещено либо в настройках самого mySQL, либо файрволом...

Где могут быть эти настроики?...

   
 
 автор: Trianon   (27.07.2007 в 10:26)   письмо автору
 
   для: Wyfinger   (27.07.2007 в 08:07)
 

Пример сохдания пользователя удаленного доступа, которому разрешена только команда SELECT к таблицам базы some_db


CREATE USER 'myname'@'192.168.0.10' IDENTIFIED BY '*************';

GRANT 
    SELECT 
  ON `some_db` . * 
    TO 'myname'@'192.168.0.10'    IDENTIFIED BY '*************'
  WITH 
    MAX_QUERIES_PER_HOUR 0 
    MAX_CONNECTIONS_PER_HOUR 0 
    MAX_UPDATES_PER_HOUR 0 
    MAX_USER_CONNECTIONS 0 ;

   
 
 автор: Wyfinger   (27.07.2007 в 15:34)   письмо автору
 
   для: Trianon   (27.07.2007 в 10:26)
 

Спасибо что хоть Вы ответили.

Но все равно не работает.

phpMyAdmin пишет:

Пользователь | Хост | Пароль | Глобальные привилегии | Предоставлять | Действие
wyfinger | % | Да | INSERT | Да | Правка


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

Вкрадываются подозрения, что это отключено либо в настройказ самого mySQL Server'а, правда я о таких настройках не слышал, либо файрволом линукса, кажется это там называется iptables.

Кто знает где хранятся правила фильтрации пакетов?
Или я смотрю не в ту сторону...

   
 
 автор: Trianon   (27.07.2007 в 15:57)   письмо автору
 
   для: Wyfinger   (27.07.2007 в 15:34)
 

файрволл должен разрешать входящее TCP-соединение с хоста 192.168.0.10 к порту 3306 серверной машины.

   
 
 автор: Wyfinger   (28.07.2007 в 12:40)   письмо автору
 
   для: Trianon   (27.07.2007 в 15:57)
 

Это я понял, только не знаю как это делается - почитать мануалы по iptables, так сразу думается а не проще ли мне создавать базу на своем компе, делать дамп и обновлять им базу на сервере. Согласен, это неправильно, некрасиво, да и вообще тогда лучше оставить всю систему на моей машине, но это просто мысли вслух, я на грани нервного срыва, вот и апача не хочет с русской кодировкой работать.

Ладно, главное что, как я понял, в самом mySQL нет такой опции как отмена удаленной работы.

   
 
 автор: cheops   (28.07.2007 в 12:52)   письмо автору
 
   для: Wyfinger   (28.07.2007 в 12:40)
 

Попробуйте просто остановить его для начала на обоих машинах (из под root или sudo)
/sbin/service iptables stop

отладте соединение серверов, а потом настраивайте порт.

   
 
 автор: cheops   (28.07.2007 в 12:53)   письмо автору
 
   для: Wyfinger   (28.07.2007 в 12:40)
 

А какова цель? Т.е. что хотите сделать в конечном итоге?

   
 
 автор: Wyfinger   (29.07.2007 в 05:00)   письмо автору
 
   для: cheops   (28.07.2007 в 12:53)
 

Есть небольшая дворовая сеть. Я хочу сделать поиск по расшаренным файлам, через web интерфейс. Подобных систем я видел много, но все меня неустраивали, например lan-crawler ищет только медиа, держит свой http сервер и работает под win, file-search точно так же работает на win, решил писать сам, ведь это еще и интересный опыт. Первоначально я писал систему на Access, но он работает слишком медленно (с вреднем в БД 300 тыс. записей), теперь переписал все заново на mySQL. PHP скрипт отлично работает - ищет в подготовленном индексе - БД mySQL. В системе есть несколько статусов пользователей, в том числе админ, я бы хотел, чтобы любой пользователь со статусом админ мог бы индексировать БД самостоятельно, для этого я написал спец-программу (на Delphi), которая подключается к mySQL и добавляет новые записи, она тоже отлично работает, проверено на локальном mySQL, но мне то надо, чтобы это все работало на сервере.

Проблема с файрволом усложняется еще и тем, что на сервере работает билинговая система, для ограничения выхода в интернет.

Проклинаю ликукс вместе со всеми кто его создал.

Кстати, я могу добавить эту свою систему в Вашу копилку? конечно все сначала отдам Вам на тестирование, я мог допустить кучу ошибок с фильтрацией поискового запроса, т.к. не совсем знаком с синтаксистом REGEXP mySQL.

   
 
 автор: cheops   (29.07.2007 в 10:39)   письмо автору
 
   для: Wyfinger   (29.07.2007 в 05:00)
 

>для этого я написал спец-программу (на Delphi), которая подключается к mySQL и добавляет
>новые записи
Так пусть эта программа напрямую соединяется с сервером. Да, если биллинговая система установлена - нужно рыться в ней и искать как разрешить из сети обращаться по 3306 порту и запретить такое обращение из вне.

   
 
 автор: Wyfinger   (29.07.2007 в 11:49)   письмо автору
 
   для: cheops   (29.07.2007 в 10:39)
 

Программа и подключается непосредственно к mySQL серверу, используя набор классов DirectMySQL, т.е. без libmysql.dll.

Билинговая система (stargazer) влияет на iptables, т.е. настраивает соответствующим образом правила файрвола, но сегодня я полностью отключил iptables и все-равно не смог подключиться с соседнего компа. Видимо все-таки удаленная работа отключена где-то в настройках самого mySQL сервера, проблема в том, что я никак не могу найти где эти настройки. И в сети не могу найти толкового мануала по конфигурированию mySQL.

   
 
 автор: cheops   (29.07.2007 в 11:58)   письмо автору
 
   для: Wyfinger   (29.07.2007 в 11:49)
 

Посмотрите в конфигурационных файлах my.ini и my.cnf нет ли в них директивы skip-networking, запрещающей сетевое обращение?

   
 
 автор: Wyfinger   (29.07.2007 в 13:17)   письмо автору
 
   для: cheops   (29.07.2007 в 11:58)
 

Все, проблема решена, наконец-то, прямо гора с плечь.

Итак расскажу для других:
Посмотрел - phpMyAdmin говорит, что эта переменная skip_networking установленна в ON, т.е. в ней все дело. Поиском в Midnight Commander (mc) нашел файл my.cnf в ./lib/mysql/. Сначала я думал, что нужно указывать значение переменной, т.е. например skip_networking=OFF, я так и написал, перезагружаю mysql (./sbin/service mysqld restart), а он говорит - ошибка. Выяснилось, что по-умолчанию skip_networking = off, и если ее прописать в my.cnf она будет ON, поэтому я удалил вообще эту строку из my.cnf и зпустил остановленный сервер.

Все нормально заработало.

   
 
 автор: Trianon   (29.07.2007 в 13:28)   письмо автору
 
   для: Wyfinger   (29.07.2007 в 13:17)
 

my.cnf обычно размещен в каталоге /etc
Или как минимум там его можно создать.
Альтернативные размещения - где установлен сам: /usr/local/mysql/data , /usr/local/var'

=====мануал===
В Unix считывание принятых по умолчанию параметров MySQL производится из следующих файлов:

Имя файла Назначение
/etc/my.cnf Общие параметры
DATADIR/my.cnf Параметры для сервера
defaults-extra-file Файл, указанный при помощи -defaults-extra-file=#
~/.my.cnf Параметры для пользователя


DATADIR является каталогом данных MySQL (обычно `/usr/local/mysql/data' для бинарной установки или `/usr/local/var' для установки из исходных текстов). Обратите внимание, что это тот каталог, который был задан во время настройки, а не указанный при помощи --datadir при запуске mysqld! (--datadir не оказывает влияния на просмотр файлов параметров сервером, так как их просмотр происходит до обработки аргументов командной строки).

=====

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования