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

Проблема с репликацией MASTER<->MASTER

Добавлено: 2009-05-19 15:59:42
kozak
Всем привет!

Взялся построить репликацию master<->master.
Все получилось, точнее почти все... :-o

На любом сервере консольно делаю

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

INSERT INTO base.table (col1) VALUES ('VAL');
Таблица обновляется на двух машинах без проблем.
Но вот как только делаю то-же самое php-скриптом

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

@ $dbh = mysql_connect($db_host, $db_user, $db_pass);
if (!$dbh) { echo "Error: Could not connect to DB!"; exit; }
//mysql_select_db($db_base, $dbh) or die("Could not select DB!");
$query = "INSERT INTO db_base.table (col1) VALUES ('123')";
mysql_query($query);
mysql_close($dbh);
при этом данные обновляются только на этой машине. Репликация НЕ работает. :pardon:

Причем дело только в

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

mysql_select_db($db_base, $dbh) or die("Could not select DB!");
!!!

Раньше (до затеи с репликацией) весь сайт написан без mysql_select_db();

Пока я не начал добавлять mysql_select_db(); по всему сайту, может есть другой выход.!?

Ведь функция mysql_select_db(); не является обязательной при установлении sql-подключения?

Спасибо.

Re: Проблема с репликацией MASTER<->MASTER

Добавлено: 2009-05-19 16:10:01
zg
VladB писал(а):Пока я не начал добавлять mysql_select_db(); по всему сайту, может есть другой выход.!?
mysql_select_db является устаревшей функцией, вместо неё рекомендуется использовать средства сервера

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

USE database
VladB писал(а):не является обязательной при установлении sql-подключения?
нет.

Если из консоли работает, то ищи ошибки в скрипте, проверяй данные для подключения.

Re: Проблема с репликацией MASTER<->MASTER

Добавлено: 2009-05-19 16:42:48
kozak
Смотрю в лог.
Почему-то все команды передаваемые из консоли содержат USE database; Даже если делаем из консоли

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

INSERT INTO base.table (col1) VALUES ('VAL');
мастер слэйву передает

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

USE base; INSERT INTO base.table (col1) VALUES ('VAL');
. А после php-запроса только

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

INSERT INTO base.table (col1) VALUES ('VAL');
.

Т.е. сервак не врубается куда ему вставлять данные! :(

Re: Проблема с репликацией MASTER<->MASTER

Добавлено: 2009-05-19 17:42:26
zg
VladB писал(а):Т.е. сервак не врубается куда ему вставлять данные!
странно, квалификаторы какбы для того и задуманы, чтобы базу идентифицировать однозначно.Но всё равно попробуй использовать USE в начале скрипта.

Re: Проблема с репликацией MASTER<->MASTER

Добавлено: 2009-05-19 18:09:58
kozak
Придется вписывать USEы в сотни страниц...
Моя лень подсказывает мне что есть какой-то конфиг для MySQL или PHP... :Search:



Но скорей всего для для MySQL...

Re: Проблема с репликацией MASTER<->MASTER

Добавлено: 2009-05-21 14:58:30
kozak
Проблема решена.

Ошибка как всегда из-за не знания MySQL MANs :smile:

В [mysqld] вместо replicate-do-db = <db> юзаем replicate-wild-do-table=<db>.%

Это мне стоило дня жизни! :smile: Кушайте на здоровье ))

Найдено здесь: http://dev.mysql.com/doc/refman/5.0/en/ ... s.html#end