П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180587 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 79039 раз(а).

Учебник HTML.
Просмотров 75806 раз(а).

Руководство по PHP5.
Просмотров 46847 раз(а).

Хостинг через призму DNS.
Просмотров 54312 раз(а).

Подборка текстов стандартных документов.
Просмотров 46682 раз(а).

Учебник PHP - Самоучитель
Просмотров 52889 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53498 раз(а).

Внешние атаки...
Просмотров 43249 раз(а).

Учебник PHP.
Просмотров 38777 раз(а).

SSI в примерах.
Просмотров 28689 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 4. Администрирование баз данных
Пред. След.

4.1. Конфигурирование MySQL
4.1.4. Запуск нескольких серверов MySQL на одном компьютере

Иногда возникают обстоятельства, когда необходимо запустить несколько серверов на одном компьютере. Например, может понадобиться произвести тестирование новой версии MySQL, не изменяя текущей установки программы. Или еще вариант: вы являетесь поставщиком услуг Internet, который хочет предоставить независимые установки MySQL для различных клиентов.

Если необходимо запустить несколько серверов, то проще всего скомпилировать серверы с различными портами TCP/IP и файлами сокетов (see Раздел 4.7.3, «Mysqld_multi, программа для управления множеством серверов MySQL»).

Предположим, что существующий сервер настроен на принятые по умолчанию номер порта и файл сокета. Настроим новый сервер при помощи команды configure следующим образом:

shell> ./configure --with-tcp-port=port_number \
--with-unix-socket-path=file_name \
--prefix=/usr/local/mysql-3.22.9

Здесь port_number и file_name должны отличаться от принятого по умолчанию номера порта и пути файла сокета, а значение --prefix должно указывать каталог установки, который отличается от того, в котором установлен текущий MySQL.

Проверить сокет, используемый установленным на данный момент сервером MySQL, можно при помощи следующей команды:

shell> mysqladmin -h hostname --port=port_number variables

Обратите внимание: если указать "localhost" как имя удаленного компьютера, mysqladmin по умолчанию будет использовать сокеты Unix вместо TCP/IP.

В MySQL 4.1 вы также можете указать протокол, который надлежит использовать с помощью опции --protocol=(TCP | SOCKET | PIPE | MEMORY).

Если на используемом порту находится сервер MySQL, то будет выдан список самых важных настраиваемых переменных в MySQL, включая имя сокета.

Повторно компилировать новый сервер MySQL нет необходимости, его просто нужно запустить с другими параметрами для порта и сокета. Используемые порт и сокет можно изменить, указав их как параметры запуска для safe_mysqld:

shell> /path/to/safe_mysqld --socket=file_name --port=port_number

Модуль mysqld_multi может также в качестве аргумента принимать safe_mysqld (или mysqld) и передавать параметры из файла конфигурации для safe_mysqld и дальше для mysqld.

Если новый сервер запускается на том же каталоге базы данных, что и другой сервер с включенной записью в журналы, необходимо также указать имена файлов журналов для safe_mysqld при помощи параметров --log, --log-update или --log-slow-queries. Иначе оба сервера могут попытаться осуществить запись в один и тот же файл журнала.

Предупреждение: обычно нельзя допускать, чтобы два сервера одновременно заносили данные в одну и ту же базу данных! Если ваша операционная система не поддерживает безотказную блокировку доступа, это может привести к возникновению неприятных сюрпризов!

Если для второго сервера понадобится использовать другой каталог базы данных, можно воспользоваться параметром --datadir=path для safe_mysqld.

Обратите внимание: запуск нескольких серверов MySQL (mysqlds) на различных компьютерах с доступом к одному каталогу данных через сетевую файловую систему обычно не приводит ни к чему хорошему! Проблема состоит в том, что сетевая файловая система становится узким местом для передачи данных. Она не предназначена для такого использования. И даже в этом случае придется искать решение, которое позволит обеспечить отсутствие конфликтов между двумя или более модулями mysqld. На данный момент не существует платформы, которая обеспечивает на 100% надежную блокировку доступа к файлам (обычно демон lockd) во всех возможных ситуациях. Кроме того, существует еще одна опасность при использовании сетевой файловой системы: эта система может еще больше усложнить работу программы lockd. Поэтому лучше смотреть на вещи проще и забыть об этой идее. Оптимальным решением будет использование одного компьютера с несколькими центральными процессорами и с операционной системой, которая эффективно управляет потоками.

Если нужно подсоединиться к серверу MySQL, который работает с портом, отличным от того, с которым откомпилирован ваш клиент, можно воспользоваться одним из следующих методов:

  • Запустите клиент с параметрами --host 'hostname' --port=port_number, чтобы подсоединиться через TCP/IP, или [--host localhost --socket=file_name], чтобы подсоединиться через сокет Unix.

  • Запускайте ваш клиент с --protocol=tcp для подключения по TCP/IP и --protocol=socket для подключения через сокет Unix.

  • В своей программе на языке C или Perl можно задать аргументы порта или сокета при подсоединении к серверу MySQL.

  • При использовании модуля Perl DBD::mysql можно прочитать параметры из файлов параметров MySQL (see Раздел 4.1.2, «Файлы параметров my.cnf»).

    $dsn = "DBI:mysql:test;mysql_read_default_group=client;
    mysql_read_default_file=/usr/local/mysql/data/my.cnf"
    $dbh = DBI->connect($dsn, $user, $password);
    
  • Задайте переменные окружения MYSQL_UNIX_PORT и MYSQL_TCP_PORT, чтобы указать на сокет Unix и порт TCP/IP до запуска клиентов. Если обычно используются конкретные сокет или порт, команды для задания этих переменных окружения необходимо поместить в свой файл .login (see Приложение F, Переменные окружения).

  • Укажите принятые по умолчанию сокет и порт TCP/IP в файле .my.cnf в своем домашнем каталоге (see Раздел 4.1.2, «Файлы параметров my.cnf»).


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 3. Учебное пособие по MySQL Начало Книги Глава 5. Оптимизация в MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru