Я пытаюсь настроить репликацию master-slave между 2 серверами mysql на CentOS. После установки, если я создаю базу данных под названием «fakeDB» на главном, она создает ее на подчиненном устройстве. Потрясающие! Но если бы я затем попытаться создать таблицу на мастер я получаю эту ошибку на подчиненном:Ошибка MySQL-Slave «Неизвестная база данных»
Last_Errno: 1049
Last_Error: Error 'Unknown database 'fakeDB'' on query. Default database: 'fakeDB'. Query: 'create table tmp (name varchar(100))'
Но база данных существует на подчиненном! Поэтому я начал и создал базу данных и таблицу tmp на обоих серверах. Я сбросил все, а затем попытался вставить строку в мастер. Затем я получил эту ошибку на ведомом устройстве:
Last_SQL_Errno: 1146
Last_SQL_Error: Error 'Table 'fakeDB.tmp' doesn't exist' on query. Default database: 'fakeDB'. Query: 'insert into tmp values ('asdf')'
Но опять-таки эта база данных существует, а также таблица на обоих серверах. Я могу получить к ним доступ вручную. Вот переменные, которые я установил в файле my.cnf на обоих серверах.
server-id = 1 #set as 2 for master
log_bin = /var/lib/mysql/mysql-bin.log
relay-log = /var/lib/mysql/mysql-relay-bin.log
binlog_do_db = fakeDB
Что я делаю неправильно?
Как вы подтвердили наличие базы данных на ведомом устройстве? Вы запустили запрос вручную (с отключением репликации) на каждом сервере и выяснили, удалось ли он? Это было бы моим первым шагом, чтобы убедиться, что подчиненный работает правильно. – Devon
есть. Я выполнил вход в mysql из командной строки на подчиненном устройстве и выпустил «use fakeDB». он сказал, что базы данных не существует. Затем я создал его на хозяине, затем снова попробовал команду на рабе, и он сказал, что он там. Но после этого я не мог заставить ничего работать. Создание таблицы или вставка строки говорит, что база данных не существует, хотя она показывает, что она есть. –