Страница 1 из 1

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
Подскажите где туплю...

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

Добавлено: 2009-10-25 13:44:33
VoltTerra
Эээ, вобщем это я ТС :pardon:

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

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

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

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

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

Добавлено: 2009-10-25 15:58:25
zg
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)

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

Добавлено: 2009-10-25 16:47:05
VoltTerra
И как эту проблему решить? :smile:
У меня есть мысль что это может быть, но что-то я боюсь что это глупость...

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

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

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

Добавлено: 2009-10-25 18:49:14
VoltTerra
Как говорится :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 и все.

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

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

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

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

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

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

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

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

Добавлено: 2009-10-25 20:58:35
VoltTerra
Ну вот,попробовав 50 ответ от сервера оказался точно такой же.

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 2009-10-27 7:59:42
VoltTerra
На голой Фряхе завелась на ура.
Коннекты ловит, не падает. Ставлю весь необходимый набор, посмотрим что выйдет...

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

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