Мультисайтинг - объединение таблицы «users»

Прислано: Modjahed

ср, 18/11/2009 - 06:40

Мои предыдущие посты:
http://www.drupal.ru/node/36823
http://www.drupal.ru/node/36858

Необходимо, чтобы на двух разных сайтах с двумя базами данных были общие пользователи. Drupal 6.14. Необходимо чтобы базы данных сайт1 и сайт2 использовали общую таблицу «users» сайт1

При создании нового пользователя на сайт1 на сайт2 пользователи не создаются. При удалении таблицы «users» с сайт2 вылетают ошибки.

sittings.php на двух сайтах редактирую следующим образом:

Сайт 1
$db_prefix = array(
* 'default' => '',
* 'users' => 'caйт1.',
* 'sessions' => 'caйт1.'
* 'role' => 'caйт1.'
* 'authmap' => 'caйт1.'

$db_url = 'mysqli://root@localhost/caйт1';
$db_prefix = '';

Сайт 2
$db_prefix = array(
* 'default' => '',
* 'users' => 'caйт1.'
* 'sessions' => 'caйт1.'
* 'role' => 'caйт1.'
* 'authmap' => 'caйт1.'

$db_url = 'mysqli://root@localhost/caйт2';
$db_prefix = '';

Помогите разобраться почему сайт2 не хочет использовать таблицу «users» для сайт1

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано penexe в ср, 18/11/2009 - 06:43.

базы разные


Опубликовано Modjahed в ср, 18/11/2009 - 06:50.

penexe написал(а):

базы разные

Мне и нужно, чтобы сайт1 и сайт2 использовали таблицу "users" БД сайт1


Опубликовано Valeratal в ср, 18/11/2009 - 07:00.

а что нужно у первого сайта что то писать в сеттингс?

это зачем?

Сайт 1
$db_prefix = array(
* 'default' => '',
* 'users' => 'caйт1.',
* 'sessions' => 'caйт1.'
* 'role' => 'caйт1.'
* 'authmap' => 'caйт1.'

сегодня буду пробовать объединить юзверов. Отпишусь по результатам


Опубликовано Modjahed в ср, 18/11/2009 - 07:08.

Valeratal написал(а):

а что нужно у первого сайта что то писать в сеттингс?

это зачем?

Сайт 1
$db_prefix = array(
* 'default' => '',
* 'users' => 'caйт1.',
* 'sessions' => 'caйт1.'
* 'role' => 'caйт1.'
* 'authmap' => 'caйт1.'

сегодня буду пробовать объединить юзверов. Отпишусь по результатам

По идее необходимо. Буду ждать Ваших результатов. Отпишитесь в любом случае!


Опубликовано Valeratal в ср, 18/11/2009 - 07:46.

по идее, у основного сайта и так собственная база
или я чего то не так понимаю.


Опубликовано Modjahed в ср, 18/11/2009 - 09:41.

Без разницы, хоть так, хот так все равно таблицы не объединяются.


Опубликовано dys@drupal.org в ср, 18/11/2009 - 09:55.

Сайт 1
$db_url = 'mysqli://root@localhost/caйт1';
$db_prefix = '';
Сайт 2
$db_url = 'mysqli://root@localhost/caйт2';
$db_prefix = array(
'default' => '',
'users' => 'caйт1.'
'sessions' => 'caйт1.'
'role' => 'caйт1.'
'authmap' => 'caйт1.'
);


Опубликовано kosilko в ср, 18/11/2009 - 11:25.

точки наверное убрать бы нужно из названий префиксов


Опубликовано Modjahed в ср, 18/11/2009 - 12:31.

Везде пишут, что "." нужны для того,чтобы таблица ссылалась на аналогичную таблицу в другой базе, а "_" для того, чтобы таблица ссылалась на префикс таблицы.


Опубликовано Valeratal в ср, 18/11/2009 - 17:49.

мда, plesk не дает прописать к новой базе уже имеющегося пользователя
написал в саппорт, жду ответа


Опубликовано Modjahed в ср, 18/11/2009 - 18:17.

Valeratal написал(а):

мда, plesk не дает прописать к новой базе уже имеющегося пользователя
написал в саппорт, жду ответа

Как ответят или что либо получится, обязательно напишите сюда.


Опубликовано alexweb в ср, 18/11/2009 - 22:42.

Не нужно мучить плеск для того, чтобы иметь возможность обращаться к разным базам.
$db_url['default'] = 'mysqli://root:passwd@localhost/drupal6';
$db_url['second'] = 'mysqli://root2:passwd2@localhost/second';

Ну и $db_prefix
$db_prefix = array(
'default' => '',
'users' => 'second.',
'sessions' => 'second.',
'role' => 'second.',
'authmap' => 'second.'
......
);

И да... бэкапы все равно нужно дekfnm


Опубликовано Modjahed в чт, 19/11/2009 - 03:59.

Вы производили установку по такой схеме?

1. Создали сайт 1;
2. Создали сайт 2;
3. Из БД сайта 1, скопировали таблицы в БД сайта 2;
4. Прописали нужные префиксы.


Опубликовано Valeratal в чт, 19/11/2009 - 04:28.

alexweb, спасибо
буду пробовать

p.s. пользователя можно присобачить, но через команду mysql grant


Опубликовано Modjahed в чт, 19/11/2009 - 04:49.

Вам удалось сделать общую базу данных пользователей для разный сайтов?


Опубликовано Химический Али в чт, 19/11/2009 - 05:24.

Оно?
http://drupal.org/node/22267


Опубликовано Modjahed в чт, 19/11/2009 - 07:29.

Хорошая статья но это когда одна общая база и разные сайты. Хорошо описана. Сделал по ней все как написано. Результат тот - же. Сайты есть, общих таблиц пользователей нет. Пробовал на Denwer и непосредственно на хостинге. Ни чего не понимаю. Ведь все четко делаю, а общих таблиц нет!


Опубликовано Valeratal в чт, 19/11/2009 - 18:15.

у меня не получается

ошибки

* user warning: SELECT command denied to user 'free'@'localhost' for table 'users' query: SELECT * FROM drup.users u WHERE uid = 0 in /путь к субдомену/modules/user/user.module on line 167.
* user warning: SELECT command denied to user 'free'@'localhost' for table 'sessions' query: SELECT COUNT(sid) AS count FROM drup.sessions WHERE timestamp >= 1258653339 AND uid = 0 in /путь к судомену/includes/session.inc on line 119.
* user warning: SELECT command denied to user 'free'@'localhost' for table 'users' query: SELECT DISTINCT u.uid, u.name, s.timestamp FROM drup.users u INNER JOIN drup.sessions s ON u.uid = s.uid WHERE s.timestamp >= 1258653339 AND s.uid > 0 ORDER BY s.timestamp DESC in /путь к субдомену/modules/user/user.module on line 764.

видимо действительно нужно настраивать mysql grant


Опубликовано Modjahed в чт, 19/11/2009 - 20:07.

Это случается, когда Вы удаляете общие таблицы.


Опубликовано Valeratal в чт, 19/11/2009 - 20:17.

я общие не удалял - основной же сайт работает (а именно его таблицы юзерс и сессии я пытаюсь "отдать" еще и второму сайту)


Опубликовано Modjahed в чт, 19/11/2009 - 20:27.

Вот и я не могу отдать таблицы первого сайта второму. http://www.drupal.ru/node/36858#comment-195364


Опубликовано Valeratal в пт, 20/11/2009 - 06:35.

пока добавлял пользователей к базе через phpmyadmin
сломал SQL :)
создал пользователя
затем решил отредактировать
phpmyadmin спросил - создать нового и убить существующего
я согласился - в итого добавился новый, а старый не удалился :)

теперь SQL падает через какое то вермя после запуска :)


Опубликовано Modjahed в пт, 20/11/2009 - 15:01.

Обалдеть! Не думал, что "мультисайтинг" окажется таким сложным занятием!


Новое на сайте

Ссылки партнёров