2 mysql на разных портах + phpmyadmin

Discussion in 'Безопасность и Анонимность' started by MicRO, 3 Jan 2008.

  1. MicRO

    MicRO Member

    Joined:
    28 Oct 2004
    Messages:
    274
    Likes Received:
    75
    Reputations:
    49
    Ну если вам удалось установить mysql а трудного там ничего нет, то теперь нам нужно повесить 2 mysql на разные порты, предположим 3306(стандартный) ну и 3406(так захотелось Ж))
    Предположим что у нас ОСь FreeBSD у меня 6.1 не суть важна на всех *nix'ах должно прокатить, и так mysql уже у нас стоит дело за малым:
    1. Создадим /var/db/mysql3406 (в /var/db/mysql у нас основной инст).
    2. ВЫСТАВИМ ПРАВА!!! drwx------ 12 mysql wheel думаю тут ясно еси нет делаем:
    Code:
    chmod 700 mysql3406 && chown mysql:wheel mysql3406
    и прошу вас переходите в папку /var/db не тупите Ж)

    3. Копируем начальные настройки из 1ого mysql в mysql3406
    4. Сделаем запускающий скрипт или запустим в консоли у меня он выглядит так:
    Code:
    /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 :) гы
    Запускаем, смотрии:
    Code:
    # 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
    Code:
    <?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)