[[SOLVED] MySql доступ по сети]

Всем привет
Возникла задача сделать доступ для пользователей к субд внутри сети напрямую через mysql клиент (не через апач)
Прогуглил этот вопрос и получил много ответов, но они не помогли
что сделал
1) закомментировал строку в файле /etc/mysql/my.cnf, а так же вбивал адрес машины с мускулом и оставлял нули

Цитата:
bind-address = 127.0.0.1

2) /etc/mysql/mysqlaccess.conf

Цитата:
# ----------------#
# Global settings #
# --------------- #
$Param{'host'} = '172.16.1.234'; - это адрес компа с мускулом
$Param{'user'} = 'nobody';
$Param{'db'} = 'test';
$Param{'password'} = '';
$Param{'debug'} = 0;

# --------------------------#
# Settings for Command-line #
# ------------------------- #
if ($CMD) {
$Param{'superuser'} = 'root';
$Param{'rhost'} = 'localhost';
# $Param{'rhost'} = '172.16.1.234';
$Param{'spassword'} = '';
$Param{'brief'} = 1;
}

# ---------------------#
# Settings for CGI-BIN #
# -------------------- #
if ($CGI) {
$Param{'superuser'} = 'root';
$Param{'rhost'} = 'localhost';
$Param{'spassword'} = '';
$Param{'table'} = 1;
}

3) netstat -a | grep mysql

Цитата:
tcp 0 0 172.16.1.234:mysql *:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 69483 /var/run/mysqld/mysqld.sock

4) пробую: mysql --host=172.16.1.234 --user=nobody --port=3306

Цитата:
ERROR 1130 (00000): Host '172.16.1.234' is not allowed to connect to this MySQL server

Не получается, хотя соединение создается при этих неудачных попытках

Цитата:
netstat -a | grep mysql
tcp 0 0 172.16.1.234:mysql *:* LISTEN
tcp 0 0 172.16.1.234:mysql 172.16.1.234:59303 TIME_WAIT
unix 2 [ ACC ] STREAM LISTENING 69483 /var/run/mysqld/mysqld.sock
unix 3 [ ] STREAM CONNECTED 69542 /var/run/mysqld/mysqld.sock

Подскажите пожалуйста, как открыть доступ к мускулу в сети
ЗЫ: iptables не включен, комп пингуется

Заранее благодарен за помощь

:)

bind-address = 0.0.0.0
В /etc/mysql/mysqlaccess.conf не надо ничего трогать.
Все. Открыто.
Теперь смотри на права пользователей муськи и базы на предмет разрешения
соединяния с твоих хостов.

права смотреть из терминала,

права смотреть из терминала, локально?
или туту?

Цитата:
# The following options will be passed to all MySQL clients
[client]
host = 172.16.0.1
user = some
#password = your_password
port = 3306
socket = /var/run/mysqld/mysqld.sock

к какому порту коннектится? который в LISTEN находится?

:)

порт - 3306, права смотреть или из терминала, или удаленно, или локально...
Смотрите в сторону GRANT PRIVILEGES
Почитайте http://www.mysql.ru/docs/man/Adding_users.html

Секцию [client] тоже не трогайте, тем более без понимания того что делаете.
Верните все конфиги в исходное состояние, кроме bind-address = 0.0.0.0

Извините, а "через апач это

Извините, а "через апач" это как? Ещё пару постов и в "аффтар пиши есчо" 0)

:)

Если "через апачь" - имелось ввиду наверное phpmyadmin - кстати, там тоже есть возможность управлять доступом (привилегии),
хотя с командной строки все-таки быстрей...

Оффтоп.
Как по мне, то тема не дотягивает сильно до "аффтар пешчи исче..."
Вообщем то все по теме и вполне нормально, единственное, я не даю сразу автору готовое решение,
а пытаюсь его наставить на тот путь, при котором он это один раз сделает сам (а не скопипастит)
и все поймет, что сделал. Но к сожалению так и не ясно, разобрался человек или нет.

bind-address = 127.0.0.1

поменял
bind-address = 127.0.0.1
на
bind-address = 192.168.1.1

у меня таким образом появилс доступ из сети через mysql клиент

По умолчанию, юзеру root

По умолчанию, юзеру root разрешен только локальный вход.
Дабы это побороть, надо войти локально под рутом и поправить права доступа (вот тут курить маны по муське, гуглить и еще раз курить маны по муське)

server ~ #

server ~ # mysql_setpermission
Password for user  to connect to MySQL: 
******
######################################################################
## Welcome to the permission setter 1.4 for MySQL.
## made by Luuk de Boer
######################################################################
What would you like to do:
  1. Set password for an existing user.
  2. Create a database + user privilege for that database
     and host combination (user can only do SELECT)
  3. Create/append user privilege for an existing database
     and host combination (user can only do SELECT)
  4. Create/append broader user privileges for an existing
     database and host combination
     (user can do SELECT,INSERT,UPDATE,DELETE)
  5. Create/append quite extended user privileges for an
     existing database and host combination (user can do
     SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,
     LOCK TABLES,CREATE TEMPORARY TABLES)
  6. Create/append full privileges for an existing database
     and host combination (user has FULL privilege)
  7. Remove all privileges for for an existing database and
     host combination.
     (user will have all permission fields set to N)
  0. exit this program

Make your choice [1,2,3,4,5,6,7,0]: 6


Which database from existing databases would you like to select:
You can choose from:
  - information_schema
  - adsa
  - mailsql
  - mysql
Which database will it be (case sensitive). Type * for any:
*
OK, the user entry will NOT be limited to any database
What username is to be created: newuser
Username = newuser
Would you like to set a password for newuser [y/n]: y
What password do you want to specify for newuser:
Type the password again:
We now need to know from what host(s) the user will connect.
Keep in mind that % means 'from any host' ...
The host please: 192.168.1.4
Would you like to add another host [yes/no]: y
Okay, give us the host please: *
Would you like to add another host [yes/no]: n
Okay we keep it with this ...
The following host(s) will be used: 192.168.1.4,*.
######################################################################

That was it ... here is an overview of what you gave to me:
The database name       : *
The username            : newuser
The host(s)             : 192.168.1.4,*
######################################################################

Are you pretty sure you would like to implement this [yes/no]: y
Okay ... let's go then ...

Everything is inserted and mysql privileges have been reloaded.

ну и еще раз повтарюсь поставл bind-adress 192.168.1.1

в моем случае 192,168,1,1 - Гентоо
192,168,1,4 - Клиент который заходит через мускул клиент на гентоо используя созданный только что логин NEWUSER

Извиняюсь... решил проблему и

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

Я прочитал мануал про привелегии пользователей в мускуле и узнал много нового...
1) Весь доступ к серверу происходит в два этапа: авторизация и дальнейшая обработка каждого запроса
2) Привелегии хранятся в скрытой (по умолчанию) базе данных с именем mysql
3) Авторизация (или первый этап) происходит на основании таблицы mysql.user (user в базе mysql)
...
еще много чего интересного, но на этом мне вполне оказалось достаточно, чтобы решить мою проблему

Решение
1) на основании вышесказанного, надо добавить в таблицу mysql.user нового пользователя, который мог бы коннектиться с любого хоста

GRANT ALL ON * TO <имя пользователя>;

можно добавить сразу и пароль с этой командой, но заморачиваться не стал, это можно сделать и позже

2) связать запускаемый демон со всеми доступными адресами сетевых интерфейсов системы

bind-address                                    = 0.0.0.0

3) перезапустить демон, если ранее был выставлен другой bind

Цитата:
Секцию [client] тоже не трогайте, тем более без понимания того что делаете.

согласен, но про нее тоже прочел - это оказывается настройки по умолчанию для соединений без указанных имен и другой инфы

Цитата:
Если "через апачь" - имелось ввиду наверное phpmyadmin - кстати, там тоже есть возможность управлять доступом (привилегии),

да, выразился не очень удачно... но вы поняли правильно, я имел в виду доступ через веб, как вариант phpmyadmin

Цитата:
mysql_setpermission

Stinkybob, тоже вариант интересный, не знал о нем

Спасибо огромное всем за помощь

ЗЫ: не совсем понятно для чего же файлик /etc/mysql/mysqlaccess.conf

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".