Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] Debian 7 MySQL подключение (http://forum.oszone.net/showthread.php?t=260486)

exo 13-05-2013 20:34 2149482

Debian 7 MySQL подключение
 
Вообщем есть что:
Код:

root@debian7:~# uname -a
Linux debian7 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
root@debian7:~# mysql -V
mysql  Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (x86_64) using readline 6.2
root@debian7:~# mysql -h debian7 -u root -p inv
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 56
Server version: 5.5.31-0+wheezy1 (Debian)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

а вот когда делаю так с самого хоста, или удалённого хоста, то не получается подключится:
r
Код:

oot@debian7:~# telnet debian7 3306
Trying 127.0.1.1...
Trying 192.168.10.174...
Connected to debian7.
Escape character is '^]'.
T
5.5.31-0+wheezy19O^it-~W─pMnc&0^iu10?mysql_native_password

!#08S01Got packets out of orderConnection closed by foreign host.
root@debian7:~# telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Вроде грант дал для рута и удалённого IP (через phpmyadmin делал), но доже с локального хоста не пускает. Куда смотреть? IPTABLES смотреть?
Рядом стоит debian 6 , там не помню, чтобы IPTABLES настраивал, только гранты давал.
Спасибо.

vadblm 13-05-2013 21:35 2149518


Цитата:

Цитата exo
telnet debian7 3306 »

Ну и извращенец вы, батенька.

exo 13-05-2013 22:22 2149560

vadblm, а как ещё проверить подключение к базе? на 6-ке всё норм работает, а тут чот не зочет.

vadblm 13-05-2013 22:46 2149581

Ну я не знаю, может вы протокол MySQL настолько знаете, что в бинарном виде с ним по телнету переговариваться умеете... Собсно, фаервол ни при чём, вы удачно подключаетесь и получаете кракозяблы - соединение установлено.
Проверять клиентом MySQL. Любым. От штатного терминального mysql до ODBC/JDBC коннекторов через эксель или ещё какую задницу. :)

exo 13-05-2013 23:40 2149613

Цитата:

Цитата vadblm
по телнету переговариваться умеете »

ну вообще-то любая сетевая служба имеет порт, который легко проверяется telnet-ом. для Mysql это 3306 как и для MS SQL.

ладно, я понял, проехали.

exo 18-05-2013 02:47 2151870

Цитата:

Цитата vadblm
Проверять клиентом MySQL »

Connector /Net и есть клиент. Но если будет легче от другого клиента: пожалуйста. Рабочий и не рабочий сервер (((


вообщем, фигня пока какая-то.
При этом, если делать коннект из другого линукса - то всё ок:
Цитата:

root@doc:~# echo "status" | mysql -uroot -p -h debian7
Enter password:
--------------
mysql Ver 14.14 Distrib 5.1.63, for debian-linux-gnu (x86_64) using readline 6.1

Connection id: 50
Current database:
Current user: root@doc.domain.local
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.31-0+wheezy1 (Debian)
Protocol version: 10
Connection: debian7 via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
TCP port: 3306
Uptime: 2 min 57 sec

Threads: 1 Questions: 142 Slow queries: 0 Opens: 215 Flush tables: 1 Open tables: 52 Queries per second avg: 0.802
--------------

root@doc:~# mysql -uroot -p -h debian7
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 81
Server version: 5.5.31-0+wheezy1 (Debian)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


SharkyUA 18-05-2013 11:19 2151963

Проверьте доступ по IP:

Код:

mysql -u root -p -h debian7
select User,Host from mysql.user;


exo 18-05-2013 17:26 2152147

Цитата:

Цитата SharkyUA
select User,Host from mysql.user; »

Код:

mysql> select User,Host from mysql.user;
+------------------+----------------------+
| User            | Host                |
+------------------+----------------------+
| root            | 127.0.0.1            |
| root            | 192.168.10.10        |
| root            | 192.168.10.19        |
| root            | 192.168.10.20        |
| root            | ::1                  |
| debian-sys-maint | localhost            |
| phpmyadmin      | localhost            |
| root            | localhost            |
| root            | pc11                |
| root            | pc11.domain.local |
+------------------+----------------------+
10 rows in set (0.00 sec)

где, pc11 и 192.168.10.19 - мой хост, с которого я запускаю скрипт PowerShell.
192.168.10.20 - это другой сервер с Дебиан 6 и базой 5.1. с него доступ к базе есть:
Код:

root@doc:~# mysql -uroot -p -h debian7
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 48
Server version: 5.5.31-0+wheezy1 (Debian)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

и вот, кстати, настройка для работающего сервера. и с 19, и с 10 и со 2-го доступ есть.
Код:

mysql> select User,Host from mysql.user;
+------------------+---------------+
| User            | Host          |
+------------------+---------------+
| root            | 127.0.0.1    |
| root            | 192.168.10.10 |
| root            | 192.168.10.19 |
| root            | 192.168.10.2  |
| root            | doc          |
| cacti            | localhost    |
| debian-sys-maint | localhost    |
| phpmyadmin      | localhost    |
| root            | localhost    |
+------------------+---------------+
9 rows in set (0.00 sec)


vadblm 18-05-2013 17:47 2152151

Ну и? IP адрес, с которого не получается подключение в списке есть?
Вы зачем-то замазали выхлоп ошибки, где отказ в подключении 'root'@'pc11<замазано>
Вопрос такой. Сервер MySQL может резольвить pc11<замазано>?

Хинт: если нужно дать, скажем, полный доступ юзеру root из всей подсети 192.168.10.0/24, то следует выдавать права так:
Код:

grant all privileges on *.* to 'root'@'192.168.10.%' identified by 'password';

exo 18-05-2013 18:12 2152159

Цитата:

Цитата vadblm
IP адрес, с которого не получается подключение в списке есть? »

Код:

| root | 192.168.10.19 |
| root | pc11 |
| root | pc11.domain.local |

Цитата:

Цитата exo
где, pc11 и 192.168.10.19 - мой хост, с которого я запускаю скрипт PowerShell. »

всё есть трижды. я замазал только домен, и заменил его на domain.

Цитата:

Цитата vadblm
grant all privileges on *.* to 'root'@'192.168.10.%' identified by 'password'; »

дал - ничего не изменилось (

vadblm 18-05-2013 18:20 2152161

на сервере с mysql команда nslookup pc11.domain.local что даёт?

exo 18-05-2013 18:28 2152164

Код:

root@debian7:~# nslookup pc11.domain.local
Server:        192.168.10.10
Address:        192.168.10.10#53

Name:  pc11.domain.local
Address: 192.168.10.19

я вообще сейчас запутался. какую роль играет файл hosts? если есть ДНС. Но пока в файл хостс не добавишь нужных записей - не фига не заработает.
Например:
Цитата:

root@debian7:~# cat /etc/hosts
127.0.0.1 localhost
192.168.10.19 pc11.domain.local
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.10.174 localhost debian7 debian7.domain.local
если жирный localhost убрать, то с самого сервера нельзя будет попасть в mysql по имени, только по IP ( я не понимаю...

vadblm 18-05-2013 18:39 2152165

Цитата:

Цитата exo
я вообще сейчас запутался. какую роль играет файл hosts? если есть ДНС. »

Чтобы не дёргать днс. Впрочем, порядок определения имён можно изменить в /etc/nsswitch.conf:
Код:

hosts:          files dns
поменять на
Код:

hosts:          dns files
сменит приоритет. по умолчанию смотрим сначала /etc/hosts, если не нашлось, то в днс. а так наоборот.

man 5 nsswitch.conf

Цитата:

Цитата exo
если жирный localhost »

Уберите. localhost должен казать только и исключительно на 127.0.0.1

exo 18-05-2013 19:00 2152172

vadblm, так. я поднял новый сервер. что и как я должен по шагам настроить, чтобы был доступ для всех из локальной сети?
вот это понятно.
Код:

grant all privileges on *.* to 'root'@'192.168.10.%' identified by 'password';
настройки нового сервера INV:
Код:

root@inv:~# cat /etc/hosts
127.0.0.1      localhost
#127.0.1.1      inv.domain.local    inv

# The following lines are desirable for IPv6 capable hosts
::1    localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

root@inv:~# nslookup pc11.domain.local
Server:        192.168.10.10
Address:        192.168.10.10#53

Name:  pc11.domain.local
Address: 192.168.10.19

root@inv:~# nslookup inv.domain.local
Server:        192.168.10.10
Address:        192.168.10.10#53

Name:  inv.domain.local
Address: 192.168.10.22

root@inv:~# nslookup doc
Server:        192.168.10.10
Address:        192.168.10.10#53

Name:  doc.domain.LOCAL
Address: 192.168.10.20

нужно ли что-то менять в my.cnf ? на рабочем сервере у меня изменено bind-address = 192.168.10.20. Поставил свой адрес в сервере INV 10.22.

при такой настройке, вот какие входы имеем или не имеем:
Цитата:

root@inv:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Цитата:

root@inv:~# mysql -u root -p -h localhost
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Цитата:

root@inv:~# mysql -u root -p -h inv
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'inv.domain.local' (using password: YES)
Цитата:

root@inv:~# mysql -u root -p -h inv.domain.local
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'inv.domain.local' (using password: YES)
с другого линукса:
Цитата:

root@doc:~# mysql -uroot -p -h 192.168.10.22
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'doc.domain.local' (using password: YES)
root@doc:~# mysql -uroot -p -h inv
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'doc.domain.local' (using password: YES)
обычно, если в файл hosts добавить записи о doc и inv - то входы заработают. пока не добавлял. добавить?

vadblm 18-05-2013 19:12 2152177

Вы бы логи посмотрели, почему не пускает. Ну, как я заподозрил, мускульный сервер не понимает (не может резольвить) клиента с запросам с именем хоста, представляющийся ему как someshit.domain.local.

Реверсного днс наверно тоже нет.

exo 18-05-2013 19:25 2152182

Цитата:

Цитата vadblm
Реверсного днс наверно тоже нет. »

хм... есть стандартный виндовый для домена, но PTR вряд ли там автоматом. сейчас проверю. Проверил - есть записи для всех.

Цитата:

Цитата vadblm
Ну, как я заподозрил, мускульный сервер не понимает (не может резольвить) клиента с запросам с именем хоста, представляющийся ему как someshit.domain.local. »

так, а почему mysql 5.1 это может, а 5.5. не может?
Цитата:

Цитата vadblm
Вы бы логи посмотрели, почему не пускает »

какие именно логи смотреть?
mysql.err и mysql.log - пустые. /var/log/mysql - директория пустая.

добавил в hosts - ничего не поменялось (
Код:

root@inv:~# cat /etc/hosts
127.0.0.1      localhost
#127.0.1.1      inv.domain.local    inv

# The following lines are desirable for IPv6 capable hosts
::1    localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.10.22  inv.domain.local    inv
192.168.10.20  doc.domain.local    doc
192.168.10.19  pc11.domain.local    pc11

сейчас буду отдельный права для хостов писать.
добавил разрешение для сервера DOC:
Цитата:

CREATE USER 'root'@'192.168.10.20' IDENTIFIED BY '***';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.10.20' IDENTIFIED BY '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
и всё DOC может подключаться к серверу:
Код:

root@doc:~# mysql -uroot -p -h inv.domain.local
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 62
Server version: 5.5.31-0+wheezy1 (Debian)

Добавил правило:
Цитата:

CREATE USER 'root'@'192.168.10.19' IDENTIFIED BY '***';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.10.19' IDENTIFIED BY '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
есть коннект из PowerShell !!! что не так было???

добавляю на старый сервер Debian7 - не работает (((

exo 23-01-2014 14:23 2294720

опытным путём вот что удалось выяснить:
если во время настройки mysql сделать неуспешные попытки подключения - то подключится не получится.
Однако, если после настройки подключится с любого другого сервера - то подключится получится.

такое чувство, что mysql запоминает у кого не получилось подключиться и банит его...
собственно - поменял IP на сервере с 22 на 24 - ПУСТИЛО !!!

exo 23-01-2014 14:44 2294738

опытным путём вот что удалось выяснить:
если во время настройки mysql сделать неуспешные попытки подключения - то подключится не получится.
Однако, если после настройки подключится с любого другого сервера - то подключится получится.

такое чувство, что mysql запоминает у кого не получилось подключиться и банит его...
собственно - поменял IP на сервере с 22 на 24 - подключился !!!

loldert12 18-02-2014 09:39 2310942

Странно, никогда такого раньше не слышал, чтоб база банила по неверно авторизации.
Ставил lamp на debian 7 вот по этой статье: http://btut.ru/debian-7-1-ustanovka-...php-mysql.html, никаких багов небыло замеченно.


Время: 04:24.

Время: 04:24.
© OSzone.net 2001-