MySQL сервер не работает для удаленного доступа

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение Гость » 2009-10-25 13:42:41

FreeBSD 7.2 устанавливал MySQL 51 из портов, потом снес и поставил из пакетов.
Текущая версия 5.1.33; Те же ошибки наблюдались и с 5.1.39 (та что из портов).
На конф файл стоят 700 права и mysql:mysql владелец.
/var/db/mysql аналогично.
Суть проблемы: при попытке коннекта к базе с удаленного сервера сыпет ошибками (коннект ч/з PHP 5.3.0 используется mysqlnd).
Пишет следующее:

Код: Выделить всё

Warning: Packets out of order. Expected 0 recevied 32. Packet size=7696217
Warning:mysqli_connect(): MySQL server has gone away
Warning: mysqli_connect(): Error while reading greeting packet. PID=29192
Пробовал коннектится через mysql утилиту - тот же эффект.
В логах mysql

Код: Выделить всё

mysqld_safe mysqld restarted 
и так всякий раз когда приходитзапрос с удаленного сервера.
Если запрос приходит с локального сервера - то все в норме.

sockstat | grep mysql
говорит, что mysql слушает коннекты на нужном ип и порту.

вот конфиг файл my.cnf

Код: Выделить всё

# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /var/db/mysql) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
#cckt           = /tmp/mysql.sock

# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
#socket         = /tmp/mysql.uock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
log-error       = /var/log/mysql.log
log-warnings    = 2
bind-address    = 94.127.68.87
port            = 3306
#socket         = /tmp/mysql.susock
skip-locking
key_buffer_size = 16K
max_allowed_packet = 10M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 10K
thread_stack = 128K
skip-innodb
default-character-set = utf8
default-collation = utf8_general_ci
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
server-id       = 1

# Uncomment the following if you want to log updates
#log-bin=mysql-bin

# binary logging format - mixed recommended
#binlog_format=mixed

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/db/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/db/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout
Подскажите где туплю...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-25 13:44:33

Эээ, вобщем это я ТС :pardon:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение zg » 2009-10-25 14:46:52

Гость писал(а):Expected 0 recevied 32. Packet size=7696217
пакеты по семь метров, не много ли?
Гость писал(а):и так всякий раз когда приходитзапрос с удаленного сервера.
а что за запрос?
Гость писал(а):Если запрос приходит с локального сервера - то все в норме.
нужно попробовать вместо localhost указать 127.0.0.1 и посмотреть будет ли так работать

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-25 14:51:21

запрос просто на соединение с БД mysqli_connect('xxx.xxx.xxx.xxx','user', 'password');
Странно что он 7ми метровый, причем пробовал слать запрос на коннект из nix машины и из win - результат один и тот же. Пробовал слать из CLI версии и через сервер - ответ один и тот же.
Локально скрипты подключаются через сокет.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение zg » 2009-10-25 15:58:25

VoltTerra писал(а):Локально скрипты подключаются через сокет
и что мешает попробовать подключиться через ip? Для начала нужно исключить проблемы с сетью, потом думать чего с сервером.

Гость
проходил мимо

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение Гость » 2009-10-25 16:29:02

И правда, вы оказались правы!

Код: Выделить всё

FastCGI sent in stderr: "PHP Warning: mysqli::mysqli(): [2002] Connection refused (trying to connect via tcp://127.0.0.1:3306)

хотя сервер слушает на своем ip (94.xxx.xxx.xxx:3306)

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-25 16:47:05

И как эту проблему решить? :smile:
У меня есть мысль что это может быть, но что-то я боюсь что это глупость...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение zg » 2009-10-25 17:02:47

Гость писал(а):хотя сервер слушает на своем ip (94.xxx.xxx.xxx:3306)
-) дак и надо было на него коннектится, если 127.0.0.1 не слушается.

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-25 18:49:14

Как говорится :bn:

Код: Выделить всё

Warning: Packets out of order. Expected 0 recevied 32. Packet size=7696217
Warning:mysqli_connect(): MySQL server has gone away
Warning: mysqli_connect(): Error while reading greeting packet. PID=974
Самое смешное что в логах mysql просто отметка mysqld restarted и все.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение zg » 2009-10-25 19:49:44

VoltTerra писал(а):Самое смешное что в логах mysql просто отметка mysqld restarted и все.
судя по всему это баг муси. Правда, связано это может быть и с фрёй, на которой стоит сервер, например, из-за неправильного обновления. Что-то с ситемой до этого было?

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-25 20:15:08

Опишу всю историю её развития:
минимальная инсталляция на VDS (7.2)
Скачиваются порты
Ставятся из исходников php-fpm и патчится исходники PHP5.3 + удовлетворение всех зависимостей (GCC libxml libicnov и т.п.)
DenyHost и соответственно inetd
установка из портов nginx и его последующий тюнинг
настройка связки nginx и связки fscgi-php
установка из портов/пакетов mysql ну и далее вы знаете.
настройка bind как secondary DNS сервер.

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

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-25 20:36:45

Вобщем, для себя выработал небольшой план действий:
Сношу текущую mysql, чищу базы (ибо она уже их сломала) и ставлю 5.0 ветку
Она вроде в win машине пашет без нареканий и при тестировании коннекты ловит на ура (удаленные).
Если и это не поможет, то я просто не знаю что сделать :(

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-25 20:58:35

Ну вот,попробовав 50 ответ от сервера оказался точно такой же.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение zg » 2009-10-26 6:08:08

VoltTerra писал(а):минимальная инсталляция на VDS (7.2)
гм... так может дело именно в вдс? техподдержка что-нибудь говорит?
VoltTerra писал(а):Ну вот,попробовав 50 ответ от сервера оказался точно такой же.
на предыдущие ветки обновляться смысла нет, лучше попробовать 5.4.

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-26 6:14:07

Тех поддержка я так понял по FreeBSD не консультирует =)
5.4 для FreeBSD имеет статус beta, как то это настораживает.
Попробую mysql-5.1.40-freebsd7.0-i386.tar.gz, может она что-то даст...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение zg » 2009-10-26 6:50:50

VoltTerra писал(а):Тех поддержка я так понял по FreeBSD не консультирует
а кто хостинг-провайдер? проблема скорее всего именно из-за VDS, поэтому я бы первым делом написал в поддержку хостера, мол через tcp/ip не работает соединение с mysql, через unix-сокет всё ок.
VoltTerra писал(а):5.4 для FreeBSD имеет статус beta, как то это настораживает.
дак что толку от других версий, если они всё равно не работают? :smile:

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-26 6:55:57

Ладно, попробую написать, может чего и выйдет :)
Попробовал на другой VDSке. Завелась с пол-пинка =(

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение zg » 2009-10-26 18:08:39

VoltTerra писал(а):Попробовал на другой VDSке. Завелась с пол-пинка =(
в чём разница настроек?

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-26 19:21:57

Нет разницы, кроме того что на нем не запущен inetd и denyhosts
Ну и нет nginx сервера. Пробовал удалять их - эффект нулевой.
Заказал переустановку с нуля системы. Завтра поставлю на чистую фрю.

VoltTerra
рядовой
Сообщения: 11
Зарегистрирован: 2009-10-25 13:03:49

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение VoltTerra » 2009-10-27 7:59:42

На голой Фряхе завелась на ура.
Коннекты ловит, не падает. Ставлю весь необходимый набор, посмотрим что выйдет...

KuKaZuKa
проходил мимо

Re: MySQL сервер не работает для удаленного доступа

Непрочитанное сообщение KuKaZuKa » 2011-04-14 13:25:28

Решал аналогичную проблему, один в один; решением оказалось `vi /etc/hosts.allow` :-)