PDA

Просмотр полной версии : 2 mysql на разных портах + phpmyadmin


MicRO
04.01.2008, 00:06
Ну если вам удалось установить mysql а трудного там ничего нет, то теперь нам нужно повесить 2 mysql на разные порты, предположим 3306(стандартный) ну и 3406(так захотелось Ж))
Предположим что у нас ОСь FreeBSD у меня 6.1 не суть важна на всех *nix'ах должно прокатить, и так mysql уже у нас стоит дело за малым:
1. Создадим /var/db/mysql3406 (в /var/db/mysql у нас основной инст).
2. ВЫСТАВИМ ПРАВА!!! drwx------ 12 mysql wheel думаю тут ясно еси нет делаем:
chmod 700 mysql3406 && chown mysql:wheel mysql3406
и прошу вас переходите в папку /var/db не тупите Ж)
3. Копируем начальные настройки из 1ого mysql в mysql3406
4. Сделаем запускающий скрипт или запустим в консоли у меня он выглядит так:
/usr/local/bin/mysqld_safe --defaults-extra-file=/etc/my3406.cnf --user=mysql --datadir=/var/db/mysql3406 --pid-file=/var/db/mysql3406/mysql3406.pid &
Объясняю:
--defaults-extra-file=/etc/my3406.cnf -- наш конфиг (тут думаю догадаетесь взять такой же как и у первого и скопировать (скопировать cp Ж))
--user=mysql -- от какого юзверя запускаем
--datadir=/var/db/mysql3406 -- путь к нашей бд(там она будет хранить всё(своё Ж)))
--pid-file=/var/db/mysql3406/mysql3406.pid -- пид mysql, чтоб не путался
& чтобы при запуске вы не остались в консоли запущего mysql :) гы
Запускаем, смотрии:
# sockstat | grep mysqld
mysql mysqld 96032 13 tcp4 *:3406 *:*
mysql mysqld 96032 14 stream /tmp/mysql3406.sock
mysql mysqld 95967 13 tcp4 *:3306 *:*
mysql mysqld 95967 14 stream /tmp/mysql.sockc
усё айс Ж)
Теперь коварный phpmyadmin.
1. Устанавливаем как обычно но конфиг должен выглядеть так, пример:
cat config.inc.php

<?php
/* Servers configuration */
$i = 0;
/* Server localhost (config:root) [1] */
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['port'] = '3306';
#$cfg['Servers'][$i]['socket'] = 'mysql';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root_логин';
$cfg['Servers'][$i]['password'] = 'пароль_тут';
/* Server localhost (config:root) [2] */
$i++;
$cfg['Servers'][$i]['host'] = '8*.1*8.1*2.1*8(это тотже localhost тока его ип)';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['port'] = '3406';
#cfg['Servers'][$i]['socket'] = '/tmp/mysql3406.sock';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'tester_и_йа_логин';
$cfg['Servers'][$i]['password'] = 'и_тут_тоже_пароль';
$cfg['AllowAnywhereRecoding'] = false;
$cfg['DefaultCharset'] = 'windows-1251';
$cfg['RecodingEngine'] = 'auto';
$cfg['IconvExtraParams'] = '//TRANSLIT';
?>
а теперь объясняю где тут фишка:
сокеты незя использовать!!!(поэтому они закоментированы Ж)), и поэтому приходится брать tcp конект, это основная ошибка когда пытаются в phpmyadmin запихать несколько конектов к бд, когда они на разных серваках тут понятно а когда на одном :)
ну а дальше уже мелочи прикручиваем ht авторизацию и радуемся, основная защита phpmyadmin'a есь :)
заходим и радуемся, у нас есть 2 рабочих mysql инста на 1 сервере Ж) MicRO (c)