Содержание
MD5 Checksums
или GnuPG
В этом разделе описаны получение и установка MySQL:
Список сайтов, с которых можно получить MySQL, See Раздел 2.2.1, «Как получить MySQL».
Чтобы узнать о поддерживаемых платформах, See Раздел 2.2.3, «Операционные системы, поддерживаемые MySQL». Необходимо иметь в виду, что не все поддерживаемые системы одинаково хорошо подходят для запуска MySQL: одни из них гораздо устойчивее и эффективнее, чем другие (за более подробной информацией следует обращаться к разделу Раздел 2.2.3, «Операционные системы, поддерживаемые MySQL»).
Некоторые версии MySQL доступны как в виде бинарного дистрибутива, так и в виде дистрибутива исходного кода. Помимо этого, всем, кто желает ознакомиться с нашими последними разработками и помочь нам тестировать новый код, мы обеспечиваем открытый доступ к нашему текущему дереву исходных кодов. Чтобы определить, какую версию и тип дистрибутива вам следует использовать, See Раздел 2.2.4, «Какую версию MySQL использовать». Если вы сомневаетесь в том, какую версию выбрать, лучше предпочесть бинарный дистрибутив.
Инструкции по установке для бинарного дистрибутива и для дистрибутива исходного кода находятся в разделах Раздел 2.2.8, «Установка бинарного дистрибутива MySQL» и See Раздел 2.3, «Установка исходного дистрибутива MySQL». В каждый набор инструкций включен раздел с описанием специфичных для различных операционных систем проблем, с которыми вы можете столкнуться.
Чтобы ознакомиться с послеустановочными процедурами, See Раздел 2.4, «Послеустановочные настройка и тестирование». Эти действия применимы при установке MySQL с использованием как бинарного дистрибутива, так и дистрибутива исходного кода.
Для установки MySQL на Linux
рекомендуется применять пакеты RPM.
В настоящее время RPM для MySQL
создаются на операционной системе
SuSE Linux 7.3, но они должны работать
также и для других версий Linux,
которые поддерживают rpm
и используют glibc
.
В случае возникновения проблем с
файлом RPM (например, если вы
получили ошибку ``Sorry, the host 'xxxx'
could not be looked up
''), обращайтесь к
разделу See Раздел 2.6.1.1, «Примечания к бинарным дистрибутивам Linux».
Доступны для использования следующие RPM-файлы:
MySQL-server-VERSION.i386.rpm
.
Сервер MySQL. Если вам нужно только
подключаться к серверу MySQL,
запущенному на другом
компьютере, этот файл не
требуется. Обратите внимание,
что выхода 4.0.10 этот пакет
назывался
MySQL-VERSION.i386.RPM
.
MySQL-client-VERSION.i386.rpm
.
Стандартные клиентские программы MySQL. Установка этого пакета требуется всегда.
MySQL-bench-VERSION.i386.rpm
.
Тесты и контрольные задачи. Для файла требуется наличие модулей Perl и msql-mysql-modules.
MySQL-devel-VERSION.i386.rpm
.
Библиотеки и включаемые файлы, необходимые для компилирования других клиентов MySQL, таких как модули Perl.
MySQL-shared-VERSION.i386.rpm
Этот пакет содержит
динамические библиотеки
(libmysqlclient.so*
), нужные для
некоторых языков
программирования или приложений
для того, чтобы работать с MySQL.
MySQL-embedded-VERSION.i386.rpm
Встраиваемая библиотека сервера MySQL (MySQL 4.x и более новые).
MySQL-VERSION.src.rpm
.
Этот файл содержит исходный код для всех предыдущих пакетов. Файл также можно использовать для создания файлов RPM для других архитектур (например Alpha или SPARC).
Для просмотра всех файлов в пакете RPM выполните команду:
shell> rpm -qpl MySQL-VERSION.i386.rpm
Для выполнения стандартной минимальной установки запустите команду:
shell> rpm -i MySQL-server-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm
Для установки только клиентского пакета выполните команду:
shell> rpm -i MySQL-client-VERSION.i386.rpm
RPM помещает данные в
/var/lib/mysql
и создает
соответствующие вхождения в
/etc/init.d/
для
автоматического запуска сервера
во время начальной загрузки (в
случае, если у вас имеется
предыдущая инсталляция, можно
создать копию ранее
установленного файла запуска MySQL,
чтобы изменения в нем не были
утеряны.)
Если вы хотите установить MySQL RPM на
старших версиях Linux, которые не
поддерживают init-скрипты в
/etc/init.d
(непосредственно
или посредством символической
ссылки), вам следует создать
символическую ссылку на старое
расположение перед тем, как
устанавливать RPM:
shell> cd /etc ; ln -s rc.d/init.d .
Однако, все современные поставки Linux должны поддерживать эту схему каталогов, т.к. это требование стандарта LSB (Linux Standard Base).
После установки RPM, mysqld
должен заработать и вы можете
сразу приступать к использованию
MySQL.
See Раздел 2.4, «Послеустановочные настройка и тестирование».
Если при установке возникнут проблемы, то за более подробной информацией следует обращаться к главе, в которой описывается установка из бинарного дистрибутива. See Раздел 2.2.8, «Установка бинарного дистрибутива MySQL».
Имеются два следующих типа дистрибутивов сервера MySQL для Windows:
Бинарный дистрибутив, в состав которого входит программа установки; она устанавливает все, что нужно, так что можно сразу же запускать сервер.
Дистрибутив исходного кода, в котором содержится весь код и файлы поддержки для создания исполняемых файлов с использованием компилятора VC++ 6.0. See Раздел 2.3.7, «Дистрибутив исходного кода для Windows».
В общем случае следует отдавать предпочтение бинарному дистрибутиву.
Вам потребуется:
32-разрядная операционная
система Windows, такая как 9x, Me, NT, 2000
или XP. Под управлением семейства
NT (NT, Windows 2000 и XP) сервер MySQL можно
запускать как сервис. See
Раздел 2.6.2.2, «Запуск MySQL на Windows NT, 2000 или XP». Если
предполагается работать с
таблицами размером более 4 Гб,
необходимо установить MySQL на
файловую систему NTFS или более
новую. При создании таблиц не
забывайте использовать
MAX_ROWS
и
AVG_ROW_LENGTH
. See
Раздел 6.5.3, «Синтаксис оператора CREATE TABLE
».
Поддержка протокола TCP/IP.
Копия бинарного кода MySQL или дистрибутив для Windows, который может быть загружен с http://www.mysql.com/downloads/.
Примечание: дистрибутив поставляется в виде архивных файлов, сжатых архиватором ZIP. Во избежание повреждения файлов в процессе загрузки мы рекомендуем использовать адекватный клиент FTP с возможностью возобновления загрузки.
Архиватор ZIP
для
распаковки файла дистрибутива.
Достаточно места на жестком диске для распаковки, установки и создания баз данных в соответствии с вашими требованиями.
Если вы планируете подключаться
к серверу MySQL через ODBC
,
то понадобится драйвер
MyODBC
. See Раздел 8.3, «Поддержка ODBC в MySQL».
Если вы работаете на сервере NT/2000/XP, войдите в систему как пользователь с привилегиями администратора.
Если вы производите модернизацию более ранней установки MySQL, то необходимо остановить сервер. Если сервер работает как сервис, то применяйте следующую команду:
C:\> NET STOP MySQL
В остальных случаях используйте:
C:\mysql\bin> mysqladmin -u root shutdown
Если вы хотите изменить исполняемый файл сервера (т.е. -max или -nt), необходимо также удалить сервис:
C:\mysql\bin> mysqld-max-nt --remove
Разархивируйте файл дистрибутива во временном каталоге.
Запустите файл
setup.exe
, чтобы начать
процесс установки. Если вы
хотите установить программу в
иной каталог, чем заданный по
умолчанию c:\mysql
, то
используйте кнопку
Browse
для указания
выбранного вами каталога.
Завершите процесс установки.
Начиная с версии MySQL 3.23.38,
дистрибутив для Windows включает в
себя как обычный бинарный код, так
и бинарный код сервера
MySQL-Max
. Ниже приводится
список различных серверов MySQL,
которые можно использовать:
Бинарный код | Описание |
mysqld | Скомпилирован с полным набором возможностей отладки и автоматической проверки выделения памяти, символических ссылок, таблиц InnoDB и BDB. |
mysqld-opt | Оптимизированный бинарный код без поддержки транзакционных таблиц. |
mysqld-nt | Оптимизированный бинарный код для NT/2000/XP с поддержкой именованных каналов. Можно запустить эту версию на Windows 9x/Me, но в этом случае не создаются именованные каналы и необходимо иметь установленный протокол TCP/IP. |
mysqld-max | Оптимизированный бинарный код с поддержкой символических ссылок и таблиц InnoDB и BDB. |
mysqld-max-nt | Подобен mysqld-max , но
скомпилирован с поддержкой
именованных каналов. |
Начиная с версии 3.23.50, именованные
каналы доступны только при
запуске mysqld с --enable-named-pipe
.
Все бинарные коды оптимизированы под процессор Pentium Pro, но должны работать на любом процессоре Intel >= i386.
При следующих обстоятельствах для того чтобы задать вашу конфигурацию MySQL будет необходимо использовать файл опций:
Если каталоги установки или
данных отличаются от заданных
по умолчанию местоположений
(c:\mysql
и
c:\mysql\data
).
Если вы хотите использовать один из следующих серверов:
mysqld.exe
mysqld-max.exe
mysqld-max-nt.exe
Если вам требуется выполнить настройку установочных параметров сервера.
Обычно для редактирования файла
опций my.ini
можно
использовать инструмент
WinMySQLAdmin
. В этом случае
остальную часть данного раздела
вы можете пропустить.
Существует два файла опций с
одинаковыми функциями:
my.cnf
и my.ini
.
Однако во избежание
недоразумений лучше всего
использовать только один из них.
Оба файла представляют собой
простой текст. Если вы
собираетесь использовать файл
my.cnf
, то его следует
создать в корневом каталоге диска
C, если my.ini
- то в
системном каталоге Windows (это
обычно что-либо вроде
C:\WINDOWS
или
C:\WINNT
; его точное
местоположение можно определить
по значению переменной окружения
windir
). MySQL сначала ищет
файл my.ini
, а затем
my.cnf
.
Если на вашем компьютере
используется начальный
загрузчик, в котором диск C не
является загрузочным диском, то
следует работать только с файлом
my.ini
. Инструментальная
программа WinMySQLAdmin
, если
она у вас применяется, также
использует только файл
my.ini
(файл помощи с
инструкциями по использованию
этого инструмента находится в
каталоге \mysql\bin
).
Используя notepad.exe
,
создайте файл опций и
отредактируйте раздел
[mysqld]
, указав значения
параметров basedir
и
datadir
:
[mysqld] # set basedir to installation path, e.g., c:/mysql basedir=the_install_path # set datadir to location of data directory, # e.g., c:/mysql/data or d:/mydata/data datadir=the_data_path
Следует учитывать, что в Windows имена путей должны указываться в файле опций с использованием предпочтительно прямых слешей, а не обратных. Если вы применяете обратные слеши, то их необходимо дублировать.
Чтобы использовать каталог
данных, отличный от заданного по
умолчанию c:\mysql\data
,
необходимо скопировать все
содержимое каталога
c:\mysql\data
в новое
местоположение.
Если вы хотите работать с
транзакционными таблицами
InnoDB
, то необходимо
вручную создать два новых
каталога для хранения данных
таблиц InnoDB
и журнальных
файлов - т.е. c:\ibdata
и
c:\iblogs
. Помимо этого
потребуется добавить несколько
дополнительных строк в файле
опций. См. раздел See
Раздел 7.5.2, «Параметры запуска InnoDB».
Если же работу с таблицами
InnoDB
вы не планируете,
следует в файле опций добавьте
опцию skip-innodb
.
Теперь вы готовы тестировать запуск сервера.
Тестирование лучше всего производить из окна оболочки DOS, поскольку сообщения о состоянии, которые выводит сервер, появляются в окне DOS. Если с вашей конфигурацией что-нибудь не так, то при помощи этих сообщений будет легче идентифицировать и устранить любые проблемы.
Убедитесь, что находитесь в каталоге, где расположен сервер, затем введите следующую команду:
C:\mysql\bin> mysqld-max --standalone
При запуске сервера вы должны увидеть следующие сообщения:
InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist: InnoDB: a new database to be created! InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200 InnoDB: Database physically writes the file full: wait... InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280 InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280 InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280 InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: creating foreign key constraint system tables InnoDB: foreign key constraint system tables created 011024 10:58:25 InnoDB: Started
Чтобы получить дальнейшую информацию о работе MySQL под Windows, обращайтесь к разделу See Раздел 2.6.2, «Примечания к Windows».
Начиная с MySQL 4.0.11, вы можете
поставить MySQL на Mac OS X 10.2 ("Jaguar")
используя родной формат пакетов
PKG
вместо бинарного
tar-архива. Обратите внимание, что
более старые версии Mac OS X (скажем,
10.1.x) не поддерживаются этим
пакетом.
Пакет находится внутри файла
образа диска (.dmg
),
который вам сначала следует
смонтировать двойным щелчком
мышки на его иконке в Finder. Образ
должен быть смонтирован и вы
увидите его содержимое.
Внимание: Перед тем как продолжить инсталляцию, убедитесь, что другие сервера MySQL не работают на этом компьютере!
Пожалуйста, остановите все
запущенные копии MySQL перед тем, как
продолжать. Для этого используйте
или приложение MySQL Manager (на Mac OS X Server)
или с помощью mysqladmin shutdown
в командной строке.
Для того чтобы поставить MySQL PKG, дважды щелкните мышкой на иконке пакета. Это действие запустит инсталлятор пакетов Mac OS, который и проведет вас через процесс установки MySQL.
Пакет поставит себя в
/usr/local/mysql-<версия>
и
также поставит символическую
ссылку /usr/local/mysql
,
указывающую на новое
месторасположение. Если каталог с
именем /usr/local/mysql
уже
существует, он будет вначале
переименован в
/usr/local/mysql.bak
. Кроме того,
будут установлены таблицы
привилегий MySQL путем выполнения
mysql_install_db
после
инсталляции.
Схема инсталляции похожа на ту,
которая используется в бинарной
поставке: все исполняемые файлы MySQL
будут расположены по пути
/usr/local/mysql/bin
, сокет будет
расположен в /etc/mysql.sock
.
See Раздел 2.2.5, «Схемы установки».
Необходимо чтобы существовал
пользователь с именем
mysql
(который должен
существовать по умолчанию в каждой
поставке Mac OS X 10.2 и выше).
Если вы используете Mac OS X Server, у вас уже есть работающая копия MySQL:
Mac OS X Server 10.2-10.2.2 идет с MySQL 3.23.51 в поставке
Mac OS X Server 10.2.3 и 10.2.4 поставляется с MySQL 3.23.53
Этот раздел руководства покрывает вопросы инсталляции только официального пакета PKG для Mac OS X. Сначала прочитайте руководство Apple по установке MySQL, пожалуйста (запустите приложение "Help View", выберите "Mac OS X Server", сделайте поиск слова "MySQL" и прочитайте раздел под названием "Installing MySQL").
Учтите, что преинсталлированные
пакеты MySQL на Mac OS X Server запускаются
с помощью команды safe_mysqld
вместо mysqld_safe
!
Если вы ранее использовали пакеты MySQL Марка Лиянажа (Marc Liyanage) с сайта http://www.entropy.ch, вы можете просто следовать инструкциям по обновлению пакетов используя схему расположения, как указано на его страничках.
Если вы обновляете MySQL с версии, собранной Марком или с предустановленной версии из поставки Mac OS X Server, на официальную сборку от MySQL - вам следует также преобразовать существующие таблицы привилегий MySQL. See Раздел 2.5.2, «Модернизация с версии 3.23 до версии 4.0».
После инсталляции вы можете запустить MySQL выполняя следующие команды в терминальном окне. Обратите внимание, что вам нужны привилегии администратора для выполнения этой задачи.
shell>cd /usr/local/mysql
shell>sudo ./bin/mysqld_safe
(Введите ваш пароль) (Нажмите CTRL+Z) shell>bg
(Нажмите CTRL+D для выхода из оболочки)
Теперь вы сможете подключиться к
серверу MySQL, скажем, запустив
/usr/local/mysql/bin/mysql
.
Для того, чтобы MySQL автоматически запускался при загрузке, вы можете взять MySQL StartupItem Марка по этому адресу:
http://www2.entropy.ch/download/mysql-startupitem.pkg.tar.gz
Мы планируем в ближайшее время добавить StartupItem в официальный пакет MySQL в ближайшее время.
Заметьте, что инсталляция нового пакета MySQL не удаляет каталог более старой инсталляции. К сожалению, инсталлятор в Mac OS X еще не предоставляет нужной функциональности для того, чтобы корректно обновить существующие в системе пакеты.
После того, как вы скопировали
файлы данных MySQL с предыдущего
месторасположения, и успешно
запустили новую версию, вы можете
удалить старую инсталляцию. Кроме
того, вы можете удалить старые
каталоги Package Receipt, расположенные
здесь:
/Library/Receipts/mysql-<version>.pkg
.
MD5 Checksums
или GnuPG
Информацию о текущей версии и инструкции по ее загрузке можно получить на домашней странице MySQL (http://www.mysql.com/).
Наш главный зеркальный сайт - http://mirrors.sunsite.dk/mysql/
Если вы заинтересованы в
организации зеркального сайта MySQL,
то можете анонимно зеркалировать
нас программой rsync с адреса
rsync://sunsite.dk/ftp/mirrors/mysql/
.
Просьба отправить нам письмо по
адресу webmaster@mysql.com
, чтобы
уведомить нас о том, что ваш
зеркальный сайт следует добавить в
представленный ниже список.
Если возникнут проблемы с загрузкой с нашего главного сайта, пробуйте использовать один из следующих зеркальных сайтов.
О недействительных или устаревших
зеркальных сайтах просьба
сообщать по адресу
webmaster@mysql.com
.
For a complete upto-date list of MySQL web/download mirrors, see http://www.mysql.com/downloads/mirrors.html. There you will also find information about becoming a MySQL mirror site and how to report a bad or out-of-date mirror.
После того, как вы загрузили нужный вам пакет MySQL, и перед тем как вы будете его устанавливать, вам следует убедиться в том, что он в сохранности и не был кем-либо изменен.
MySQL AB предоставляет два способа
проверить пакет: контрольная сумма
MD5
и криптографическая
подпись с использованиемп
GnuPG
, GNU Privacy Guard
.
Проверка контрольной
суммы MD5
После того как вы загрузили пакет, вы должны проверить, соответствует ли контрольная сумма MD5 загруженного пакета той, что указана на страничке загрузки пакетов. У каждого пакета своя контрольная сумма, которую вы можете проверить такой командой:
shell> md5sum <пакет>
Однако не все операционные системы
поддерживают команду
md5sum
- на некоторых она
просто называется md5
, а в
других она вовсе не поставляется.
На Linux эта команда является частью
GNU Text Utilities
, которые
доступны для множества разных
платформ.
Вы можете загрузить исходный код
по адресу
http://www.gnu.org/software/textutils/.
Если у вас уже установлен
OpenSSL
, вы также можете
использовать команду openssl md5
<пакет>
. Реализация
md5
для DOS/Windows доступна по
адресу
http://www.fourmilab.ch/md5/.
Пример:
shell> md5sum mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
155836a7ed8c93aee6728a827a6aa153
mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
Вы должны удостовериться, что результирующая контрольная сумма соответствует той, что указана на страничке загрузки возле соответствующего пакета.
Множество зеркальных сайтов также
предоставляют файл с именем
MD5SUMS
, который также
содержит MD5
контрольные
суммы всех файлов из каталога
Downloads
. Однако заметьте,
что этот файл достаточно легко
изменить и это не самый надежный
метод проверки целостности пакета.
Если вы в сомнениях, вы должны
посмотреть на другие зеркала и
сравнить увиденное.
Проверка подписи с
использованием GnuPG
Гораздо более надежный метод
проверки целостности пакета это
использование криптографически
сигнатур. MySQL AB использует ПО
GNU Privacy Guard
(GnuPG
),
открытая альтернатива весьма
известному пакету Pretty Good
Privacy
(PGP
) Фила
Циммермана (Phil Zimmermann). См.
http://www.gnupg.org/
и
http://www.openpgp.org/
для более подробной информации про
OpenPGP/GnuPG и как его получить и
поставить на вашей системе.
Большинство поставок Linux уже идут с
GnuPG прямо в поставке.
Начиная с MySQL 4.0.10 (Февраль 2003), MySQL AB
начала подписывать загружаемые
пакеты с помощью GnuPG
.
Криптографические сигнатуры
являются гораздо более надежным
методом проверки целостности и
аутентичности файла.
Для проверки подписи конкретного
пакета, вам в первую очередь
следует получить копию публичного
ключа GPG <build@mysql.com>
. Вы можете
либо взять этот ключ прямо отсюда,
либо взять его на
http://www.keyserver.net/.
Key ID: pub 1024D/5072E1F5 2003-02-03 MySQL Package signing key (www.mysql.com) <build@mysql.com> Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5 Public Key (ASCII-armored): -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3 RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3 BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE 7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p /1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92 6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ== =YJkx -----END PGP PUBLIC KEY BLOCK-----
Вы можете импортировать этот ключ
в ваш публичный репозитарий ключей
(public keyring) используя gpg
--import
. См. документацию на
GPG
для более подробной
информации о том, как работать с
публичными ключами.
После того, как вы загрузили и импортирлвали публичный ключ сборки, вы можете загрузить выбранный вами пакет MySQL и соответствующую подпись, доступную на той же страничке загрузки.
Файл сигнатуры имеет расширение
.asc
. Например, сигнатура
для
mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
будет
mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
.
Удостоверьтесь, чтобы оба файла
находятся в том же самом каталоге и
затем запустите такую команду для
проверки сигнатуры файла:
shell>gpg --verify <package>.asc
Example: shell>gpg --verify mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
gpg: Warning: using insecure memory! gpg: Signature made Mon 03 Feb 2003 08:50:39 PM MET using DSA key ID 5072E1F5 gpg: Good signature from "MySQL Package signing key (www.mysql.com) <build@mysql.com>"
Сообщение "Good signature" сообщает вам о том, что все в порядке.
Для пакетов RPM
,
отдельного файла подписи не
предоставляется - пакеты
RPM
уже сами по себе имеют
встроенную поддержку подписей
GPG
и контрольных сумм
MD5
. Вы можете проверить
их такой командой:
shell> rpm --checksig <package>.rpm
Пример:
shell> rpm --checksig MySQL-server-4.0.10-0.i386.rpm
MySQL-server-4.0.10-0.i386.rpm: md5 gpg OK
Внимание: Если вы
используете RPM 4.1 и он сообщает
следующее: (GPG) NOT OK (MISSING KEYS:
GPG#5072e1f5)
(даже несмотря на то,
что вы импортировали ключ в ваш
публичный репозиторий ключей GPG,
keyring) - вам следует импортировать
ключ в репозиторий ключей RPM. RPM 4.1
больше не использует ваш
репозиторий ключей GPG (и GPG вообще),
но поддерживает свой репозиторий,
поскольку RPM - это общесистемная
утилита, а репозиторий ключей GPG -
это специфичный для пользователя
файл). Чтобы импортировать
публичный ключ MySQL в RPM, используйте
вот такую команду:
shell> rpm --import <pubkey>
Пример:
shell> rpm --import mysql_pubkey.asc
Если вдруг вы заметите что
контрольные суммы MD5 или подпись GPG
не совпадают, попробуйте в первую
очередь загрузить соответствующий
пакет еще один раз, может быть, даже
с другого сервера. Если вы не
сможете успешно удостовериться в
целостности пакета, пожалуйста,
сообщите нам о подобных
инцидентах, включая полное имя
пакета и адрес сайта, с которого вы
пытались загрузить пакет, на адрес
<webmaster@mysql.com>
или
<build@mysql.com>
.
Мы применяем GNU Autoconf, что дает возможность переносить MySQL на все современные системы с работающими потоками Posix и компилятором C++ (чтобы скомпилировать только код клиента, требуется только компилятор C++ без использования потоков). Для себя мы используем и разрабатываем программное обеспечение в основном на Sun Solaris (версий 2.5 - 2.7) и SuSE Linux версии 7.x.
Следует учитывать, что для многих операционных систем поддержка собственных потоков работает только в самых последних версиях. Согласно полученным нами сообщениям, MySQL успешно компилируется на следующих комбинациях операционных систем и потоковых пакетов:
AIX 4.x, 5.x с собственными потоками. См.раздел See Раздел 2.6.6.4, «Примечания к IBM-AIX».
Amiga.
BSDI 2.x с пакетом MIT-pthreads. See Раздел 2.6.4.5, «Примечания к BSD/OS версий 2.x».
BSDI 3.0, 3.1 и 4.x с собственными потоками. See Раздел 2.6.4.5, «Примечания к BSD/OS версий 2.x».
DEC Unix 4.x с собственными потоками. See Раздел 2.6.6.6, «Примечания к Alpha-DEC-UNIX (Tru64)».
FreeBSD 2.x с пакетом MIT-pthreads. See Раздел 2.6.4.1, «Примечания к FreeBSD».
FreeBSD 3.x и 4.x с собственными потоками. See Раздел 2.6.4.1, «Примечания к FreeBSD».
HP-UX 10.20 с пакетом MIT-pthreads или пакетом DCE-threads. See Раздел 2.6.6.2, «Примечания к HP-UX версии 10.20».
HP-UX 11.x с собственными потоками. See Раздел 2.6.6.3, «Примечания к HP-UX версий 11.x».
Linux 2.0+ с потоками LinuxThreads 0.7.1+ или glibc 2.0.7+. См. раздел See Раздел 2.6.1, «Примечания к Linux (Все версии Linux)».
Mac OS X. See Раздел 2.6.5, «Примечания к Mac OS X».
NetBSD 1.3/1.4 Intel и NetBSD 1.3 Alpha (требует GNU make). See Раздел 2.6.4.2, «Примечания к NetBSD».
OpenBSD > 2.5 с собственными потоками. OpenBSD < 2.5 с пакетом MIT-pthreads. See Раздел 2.6.4.3, «Примечания к OpenBSD 2.5».
OS/2 Warp 3, FixPack 29 и OS/2 Warp 4, FixPack 4. See Раздел 2.6.7, «Примечания к OS/2».
SGI Irix 6.x с собственными потоками. See Раздел 2.6.6.8, «Примечания к SGI Irix».
Solaris 2.5 и выше с собственными потоками на SPARC и x86. See Раздел 2.6.3, «Примечания к Solaris».
SunOS 4.x с пакетом MIT-pthreads. See Раздел 2.6.3, «Примечания к Solaris».
Caldera (SCO) OpenServer с последним портом пакета FSU Pthreads. See Раздел 2.6.6.9, «Примечания к Caldera (SCO)».
Caldera (SCO) UnixWare 7.0.1. See Раздел 2.6.6.10, «Примечания к Caldera (SCO) Unixware Version 7.0».
Tru64 Unix
Windows 9x, Me, NT, 2000 и XP. See Раздел 2.6.2, «Примечания к Windows».
Следует отметить, что не на всех платформах MySQL функционирует одинаково хорошо. Насколько подходит определенная платформа для высоконагружаемого многоцелевого сервера MySQL, определяется следующими факторами:
Общая стабильность потоковой библиотеки. Платформа может иметь отличную репутацию в других отношениях, но если в коде, который вызывается MySQL, потоковая библиотека нестабильна, то, даже если все остальное прекрасно, стабильность MySQL будет определяться стабильностью потоковой библиотеки.
Способность ядра и/или
библиотеки потоков пользоваться
преимуществом симметричной
многопроцессорной обработки
(SMP
) на
многопроцессорных системах.
Другими словами, при создании
процессом потока для этого
потока должна быть возможность
работать на ином центральном
процессоре (CPU), чем исходный
процесс.
Способность библиотеки ядра
и/или потоков запускать много
потоков, которые
приобретают/освобождают
синхронизирующий флаг в
небольшой критической области,
часто без излишних переключений
контекста. Иными словами, если
реализация pthread_mutex_lock()
является очень ``уступающей''
время центрального процессора,
это значительно вредит MySQL. Если
не принять во внимание данное
обстоятельство, то
использование добавочных
центральных процессоров сделает
MySQL существенно медленнее.
Общая стабильность/производительность файловой системы.
Способность файловой системы работать с большими файлами вообще и работать с ними эффективно в случае больших таблиц.
Наш, т.е. разработчиков, уровень компетенции в том, что касается данной платформы. Для платформ, которые мы знаем хорошо, мы вводим в MySQL специфические для платформы оптимизации/исправления, доступные во время компиляции. Кроме того, мы можем также дать совет по оптимальной для MySQL конфигурации вашей системы.
Выполненный нами у себя объем тестирования подобных конфигураций.
Количество пользователей, успешно применяющих MySQL на данной платформе в подобных конфигурациях. Если это количество велико, то шансы получить некоторые специфические для данной платформы сюрпризы, намного меньше.
В соответствии с предыдущими
критериями наилучшими платформами
с этой точки зрения для
функционирования MySQL являются: x86
под управлением SuSE Linux 7.1, с ядром 2.4
и ReiserFS (или любой подобный
дистрибутив Linux) и SPARC под
управлением Solaris 2.7 или 2.8. FreeBSD
оказывается третьей, но мы в самом
деле надеемся, что эта платформа
войдет в число лучших, как только
станет совершеннее потоковая
библиотека. Мы также надеемся, что,
с некоторого момента, мы сможем
включить в высшую категорию все
остальные платформы, на которых MySQL
компилируется и функционирует
нормально, но не с тем же уровнем
стабильности и
производительности. Это потребует
некоторых усилий с нашей стороны в
сотрудничестве с разработчиками
компонентов операционных систем и
библиотек, от которых зависит MySQL.
Если вы заинтересованы в улучшении
тех или иных компонентов, у вас
есть возможность оказать влияние
на их разработку и вы нуждаетесь в
подробных инструкциях по поводу
того, что нужно MySQL, чтобы работать
лучше, пошлите письмо по адресу
<internals@lists.mysql.com>
.
Просьба к вам: на основании приведенных выше сравнительных характеристик не делать выводов о том, что какая-либо операционная система лучше или хуже другой в общем. Мы говорим о выборе определенной операционной системы для конкретной цели - для работы MySQL, и сравниваем платформы только в таком смысле. С этой точки зрения результат такого сравнения был бы другим, если бы мы включили в него больше пунктов. И в некоторых случаях причина того, что одна операционная система лучше, чем другая, может заключаться всего лишь в том, что в тестирование и оптимизацию этой конкретной платформы было вложено гораздо больше усилий. Мы просто констатируем наши наблюдения, чтобы помочь вам принять решение - на какой платформе использовать MySQL в вашей системе.
Во-первых, нужно принять решение о том, что именно вам требуется - самый свежий экспериментальный выпуск или последняя устойчивая версия:
Если вы собираетесь использовать MySQL впервые или пытаетесь выполнить перенос MySQL на некоторую систему, для которой нет бинарного дистрибутива, то обычно мы рекомендуем начинать со стабильной версии (в настоящее время это версия 3.23). Следует иметь в виду, что все релизы MySQL проверяются с помощью тестов производительности MySQL и набора всесторонних тестов перед каждым выпуском (даже для экспериментальных выпусков).
Если же вы работаете со старой системой и желаете ее модернизировать, но хотите избежать возможных нестыковок при модернизации, то необходимо проводить замену на самую новую версию в той же ветви, которую вы используете (где только последний номер версии более новый, чем у вашей). В таких версиях мы стараемся исправлять только критические ошибки и делать только небольшие, относительно безопасные изменения.
Во-вторых, нужно принять решение, хотите ли вы использовать дистрибутив исходного кода или бинарный дистрибутив. В большинстве случаев лучше остановить свой выбор на бинарном дистрибутиве, если такой существует для вашей платформы, так как обычно его проще установить, чем дистрибутив исходного кода.
Установка из исходного кода может оказаться более предпочтительной в следующих случаях:
Если необходимо инсталлировать MySQL в некотором явно заданном местоположении (стандартные бинарные поставки являются ``готовыми к запуску'' в любом месте, но, возможно, вам потребуется еще большая гибкость).
Чтобы удовлетворить различные
требования пользователей, мы
поставляем две разных бинарных
версии: одна скомпилирована с
обработчиками нетранзакционных
таблиц (небольшой, быстрый
бинарный код), а вторая
сконфигурирована с наиболее
важными возможностями
расширения, такими, как
поддерживающие транзакции
таблицы. Обе версии
компилируются из одного и того
же исходного кода. Все
собственные клиенты
MySQL
могут подключаться
к обеим версиям.
Бинарный дистрибутив
расширенной версии MySQL
маркируется суффиксом
-max
и конфигурируется с
теми же опциями, что и
mysqld-max
. See
Раздел 4.7.5, «mysqld-max
, расширенный сервер mysqld
».
Если вы хотите использовать
пакет RPM MySQL-Max
, то
сначала следует установить
стандартный пакет MySQL
RPM.
Если вам нужно сконфигурировать
mysqld
с некоторыми
дополнительными свойствами,
которые отсутствуют в
стандартных бинарных
дистрибутивах. Ниже приводится
список наиболее
распространенных
дополнительных опций, которые,
возможно, вы захотите
использовать:
--with-innodb
--with-berkeley-db
--with-raid
--with-libwrap
--with-named-z-lib (Это делается
для некоторых бинарных
дистрибутивов)
--with-debug[=full]
По умолчанию бинарный дистрибутив обычно компилируется с поддержкой всех кодировок и должен работать на различных процессорах из одного и того же семейства процессоров.
Если требуется получить более
быстрый сервер MySQL, то можно
перекомпилировать его с
поддержкой только одной
необходимой вам кодировки,
использовать лучший компилятор
(наподобие pgcc
) или
воспользоваться опциями
компилятора, которые лучше
оптимизированы для вашего
процессора.
Если вы нашли ошибку и сообщили о ней команде разработчиков MySQL, то вам должны выслать патч, который следует применить к дистрибутиву исходного кода для исправления ошибки.
Если вы хотите читать (и/или модифицировать) исходный код MySQL (на C и C++), необходимо иметь дистрибутив исходного кода. Исходный код - это всегда лучшая документация. Дистрибутивы исходного кода также содержат больше тестов и примеров, чем бинарные дистрибутивы.
В системе наименований в MySQL
используются номера выпусков,
состоящие из трех чисел и суффикса.
Например, выпуск
mysql-3.21.17-beta
интерпретируется следующим
образом:
Первое число (3
) служит
для описания формата файлов. Все
выпуски версии 3
имеют
один и тот же формат файлов.
Второе число (21
)
представляет собой уровень
выпуска. Обычно существует выбор
из двух возможностей. Одна
представляет выпуск стабильной
ветви (в настоящее время
23
) и вторая -
экспериментальную ветвь (в
настоящее время 4.0
).
Обычно обе ветви стабильны, но
экспериментальная версия может
обладать некоторыми причудами,
возможно отсутствие
документации на новые свойства,
либо она может не
компилироваться на некоторых
системах.
Третье число (17
)
является номером версии в
пределах уровня выпуска. Это
число увеличивается для каждого
нового дистрибутива. Обычно
имеет смысл предпочесть самую
последнюю версию для выбранного
уровня выпуска.
Суффикс (beta
) указывает
на уровень стабильности данного
выпуска. Возможны следующие
суффиксы:
alpha
указывает, что
выпуск содержит большие
разделы нового кода, не
протестированного на 100%.
Обнаруженные ошибки (обычно их
нет) должны быть
задокументированы в разделе
``Новости'' (News). См. раздел See
Приложение D, История изменений и обновлений MySQL. В большинстве
выпусков alpha
присутствуют также новые
команды и расширения. При
работе над
alpha
-выпуском может
происходить активная
разработка, включающая
значительные изменения кода,
но перед выпуском все
тестируется. В любом выпуске
MySQL не должно быть известных
ошибок.
beta
означает, что
весь новый код протестирован.
Не добавляются никакие новые
свойства, которые могли бы
вызвать повреждения старого
кода. Не должно быть никаких
известных ошибок. Версия
изменяется с alpha
на
beta
тогда, когда
никаких сообщений о
критических ошибках в
alpha
-версии не
поступает по меньшей мере в
течение месяца и мы не
планируем добавлять какие-
либо новые свойства, которые
могли бы понизить надежность
прежних команд.
gamma
представляет
собой версию beta
,
которая почти закончена и,
похоже, работает хорошо.
Добавляются только
незначительные исправления.
Это именно то, что во многих
других компаниях называется
релизом.
Если нет никакого суффикса, это означает, что данная версия запускалась на многих различных компьютерных системах без сообщений об ошибках, кроме ошибок, относящихся к специфике платформ; для нее допускается только исправление критических ошибок. Именно поэтому такой выпуск мы называем стабильным.
Все версии MySQL пропускаются через наши стандартные тесты и контрольные задачи, чтобы получить уверенность в том, что они надежны в применении. Так как стандартные тесты периодически дополняются, чтобы включить проверку обнаруженных новых ошибок и ситуаций, которые могут их вызвать, то набор тестов со временем становится лучше и лучше.
Отметим, что все выпуски протестированы по меньшей мере со следующими тестами:
Внутренний набор тестов
Набор является частью производственной системы для заказчика. Этот набор включает много таблиц с сотнями мегабайт данных.
Набор тестов производительности MySQL
Эти тесты работают с набором общеупотребительных запросов. Кроме того, они позволяют увидеть, действительно ли последний пакет оптимизаций делает код быстрее. See Раздел 5.1.4, «Набор тестов MySQL (The MySQL Benchmark Suite)».
Тест crash-me
Тест пытается определить, какие функциональные возможности поддерживает база данных и каковы ее возможности и ограничения. See Раздел 5.1.4, «Набор тестов MySQL (The MySQL Benchmark Suite)».
Существует еще один тест. Он заключается в том, что мы используем самую новую версию MySQL в нашей внутренней производственной среде по крайней мере на одной машине. Для работы с этой версией у нас есть более чем 100 гигабайт данных.
В этом разделе описывается расположение каталогов, создаваемых по умолчанию при установке бинарного дистрибутива и дистрибутива исходного кода.
Бинарный дистрибутив
устанавливается путем его
распаковки в выбранном вами месте
установки (обычно
/usr/local/mysql
) и создает
следующие каталоги:
Каталог | Содержание каталога |
bin | Клиентские программы и сервер
mysqld |
data | Файлы журналов, базы данных |
include | Включаемые (заголовочные) файлы |
lib | Библиотеки |
scripts | mysql_install_db |
share/mysql | Файлы с текстами сообщений об ошибках |
sql-bench | Тесты производительности |
Дистрибутив исходного кода
устанавливается после того, как вы
сконфигурируете и скомпилируете
его. По умолчанию на этапе
установки файлы инсталлируются в
каталог /usr/local
в
следующие подкаталоги:
Каталог | Содержание каталога |
bin | Клиентские программы и скрипты |
include/mysql | Включаемые (заголовочные) файлы |
info | Документация в формате Info |
lib/mysql | Библиотеки |
libexec | Сервер mysqld |
share/mysql | Файлы с текстами сообщений об ошибках |
sql-bench | Тесты производительности и тест
crash-me |
var | Базы данных и файлы журналов |
Внутри каталога установки схема расположения инсталляции исходного кода отличается от схемы установки бинарного дистрибутива в следующих отношениях:
Сервер mysqld
устанавливается в каталог
libexec
, а не в
bin
.
Каталогом данных является
var
, а не data
.
mysql_install_db
устанавливается в каталоге
/usr/local/bin
, а не в
/usr/local/mysql/scripts
.
Каталогами заголовочных файлов
и библиотек являются
include/mysql
и
lib/mysql
, а не
include
и lib
.
Можно создать собственную
бинарную установку из
скомпилированного дистрибутива
исходного кода. Для этого следует
выполнить скрипт
scripts/make_binary_distribution
.
Развитие MySQL в MySQL AB происходит очень быстрыми темпами и мы стремимся к тому, чтобы результаты нашей работы стали доступны и другим пользователям MySQL. Мы стараемся сделать новый выпуск сразу же, как только в продукте появляются очень полезные свойства, которые, по нашему мнению, необходимы другим пользователям.
Помимо этого мы откликаемся на просьбы наших пользователей, если для этого требуется добавить в продукт легко реализуемые свойства. Мы принимаем во внимание пожелания наших пользователей, имеющих лицензии, а особенно - пожелания обширного круга пользователей, охваченных поддержкой при помощи электронной почты, и стараемся помочь им решить их проблемы.
Загружать новый выпуск не обязательно. Информацию о том, действительно ли новый выпуск представляет собой именно то, что вам требуется, вы почерпнете из раздела ``Новости'' (News). See Приложение D, История изменений и обновлений MySQL.
Наша политика в вопросах обновления MySQL заключается в следующем:
Для каждого небольшого обновления последняя цифра в строке версии увеличивается. При внесении существенно новых свойств или небольших несовместимостей с предыдущими версиями увеличивается второе число в строке версии. Если изменяется формат файлов, то увеличивается первая цифра.
Протестированные на устойчивость версии должны обычно появляться 1-2 раза в год, но если обнаруживаются небольшие ошибки, то выпускаются версии только с исправлениями ошибок.
Рабочие исправления к старым версиям должны появляться примерно каждые 1-8 недель.
Бинарные дистрибутивы для некоторых платформ мы будем делать для значительных выпусков. Бинарные дистрибутивы для других систем иногда создаются и другими людьми, но, как правило, не так часто.
Обычно мы делаем патчи
доступными сразу же после
локализации и исправления
небольших ошибок. Они посылаются
на <bugs@lists.mysql.com>
и
включаются в очередной выпуск.
Некритические, но досадные ошибки мы будем добавлять в репозиторий исходного кода MySQL и они будут исправляться в следующем выпуске.
Если по какой-либо случайности в выпуске окажется критическая ошибка, то мы сделаем новый выпуск как можно скорее. Мы хотели бы, чтобы нашему примеру и следовали и другие компании.
Текущим стабильным выпуском сейчас является версия 3.23; уже начата активную разработка версии 4.0. Ошибки в стабильной версии по-прежнему будут исправляться. Мы не верим в полное ``замораживание'', поскольку при этом упускаются исправления ошибок и вещи, которые ``должны быть сделаны''. ``Отчасти заморожено'' подразумевает, что мы можем добавить некоторые вещи, которые ``почти несомненно не окажут влияния ни на что из того, что уже работает''.
В MySQL применяется несколько отличающаяся от большинства других продуктов система именования. В общем случае достаточно надежно использовать любую версию, просуществовавшую в течение пары недель без замены ее новой версией. See Раздел 2.2.4, «Какую версию MySQL использовать».
Компания MySQL AB в качестве услуги предоставляет набор бинарных (скомпилированных) дистрибутивов MySQL - они скомпилированы на нашем оборудовании или на вычислительных системах, к которым нам любезно предоставили доступ заказчики.
Эти дистрибутивы сгенерированы
скриптом Build-tools/Do-compile
,
который компилирует дерево
исходных кодов, и создает архив
.tar.gz
используя
scripts/make_binary_distribution
Эти бинарники сконфигурированы и собраны с помощью следующих компиляторов и опций.
Linux 2.4.xx i386 с gcc
2.95.3
CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2
-mcpu=pentiumpro -felide-constructors" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--enable-assembler --disable-shared
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
Linux 2.4.xx ia64 с ecc
(Intel C++
Itanium Compiler 7.0)
CC=ecc CFLAGS=-tpp1 CXX=ecc CXXFLAGS=-tpp1
./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex --enable-thread-safe-client
--enable-local-infile
Linux 2.4.xx alpha с ccc
(Compaq C
V6.2-505 / Compaq C++ V6.3-006)
CC=ccc CFLAGS="-fast -arch generic" CXX=cxx
CXXFLAGS="-fast -arch generic -noexceptions -nortti"
./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex --enable-thread-safe-client
--enable-local-infile --with-mysqld-ldflags=-non_shared
--with-client-ldflags=-non_shared --disable-shared
Linux 2.2.xx sparc с egcs
1.1.2
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors
-fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--enable-assembler --disable-shared
Linux 2.4.xx s390 с gcc
2.95.3
CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2
-felide-constructors" ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex --enable-thread-safe-client
--enable-local-infile --disable-shared
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
Sun Solaris 2.8 sparc с gcc
3.2
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors
-fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--enable-assembler --with-named-z-libs=no
--with-named-curses-libs=-lcurses --disable-shared
Sun Solaris 2.9 sparc с gcc
2.95.3
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors
-fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--enable-assembler --with-named-curses-libs=-lcurses
--disable-shared
Sun Solaris 2.9 sparc с cc-5.0
(Sun
Forte 5.0)
CC=cc-5.0 CXX=CC ASFLAGS="-xarch=v9" CFLAGS="-Xa
-xstrconst -mt -D_FORTEC_ -xarch=v9" CXXFLAGS="-noex -mt
-D_FORTEC_ -xarch=v9" ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex --enable-thread-safe-client
--enable-local-infile --enable-assembler
--with-named-z-libs=no --enable-thread-safe-client
--disable-shared
IBM AIX 4.3.2 ppc с gcc
3.2.1
CFLAGS="-O2 -mcpu=powerpc -Wa,-many " CXX=gcc
CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors
-fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--with-named-z-libs=no --disable-shared
IBM AIX 5.1.0 ppc с gcc
3.2.1
CFLAGS="-O2 -mcpu=powerpc -Wa,-many" CXX=gcc
CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors
-fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--with-server-suffix="-pro" --enable-thread-safe-client
--enable-local-infile --with-named-z-libs=no
--disable-shared --with-innodb
HP-UX 10.20 pa-risc1.1 с gcc
3.1
CFLAGS="-DHPUX -I/opt/dce/include -O3 -fPIC"
CXX=gcc CXXFLAGS="-DHPUX -I/opt/dce /include
-felide-constructors -fno-exceptions -fno-rtti -O3 -fPIC"
./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex --enable-thread-safe-client
--enable-local-infile --with-pthread
--with-named-thread-libs=-ldce --with-lib-ccflags=-fPIC
--disable-shared
HP-UX 11.11 pa-risc2.0 с aCC
(HP ANSI
C++ B3910B A.03.33)
CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64
./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex --enable-thread-safe-client
--enable-local-infile --disable-shared
Apple MacOS X 10.2 powerpc с gcc
3.1
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors
-fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--disable-shared
FreeBSD 4.7 i386 с gcc
2.95.4
CFLAGS=-DHAVE_BROKEN_REALPATH ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--enable-assembler --with-named-z-libs=not-used
--disable-shared
Следующие бинарные поставки собраны на системах, предоставленных MySQL AB пользователями. Заметьте, что эти бинарные поставки предоставляются исключительно для удобства. Поскольку у MySQL AB нет полного контроля над этими системами, мы только можем дать ограниченную поддержку этих бинарных поставок.
SCO Unix 3.2v5.0.6 i386 с gcc
2.95.3
CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc
CXXFLAGS="-O3 -mpentium -felide-constructors" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--with-named-z-libs=no --enable-thread-safe-client
--disable-shared
Caldera Open Unix 8.0.0 i386 с CC
3.2
CC=cc CFLAGS="-O" CXX=CC ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--with-named-z-libs=no --enable-thread-safe-client
--disable-shared
Compaq Tru64 OSF/1 V5.1 732 alpha с
cc/cxx
(Compaq C V6.3-029i / DIGITAL C++
V6.1-027)
CC="cc -pthread" CFLAGS="-O4 -ansi_alias -ansi_args
-fast -inline speed -speculate all" CXX="cxx -pthread"
CXXFLAGS="-O4 -ansi_alias -fast -inline speed -speculate all
-noexceptions -nortti" ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex --enable-thread-safe-client
--enable-local-infile --with-prefix=/usr/local/mysql
--with-named-thread-libs="-lpthread -lmach -lexc -lc"
--disable-shared --with-mysqld-ldflags=-all-static
SGI Irix 6.5 IP32 с gcc
3.0.1
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer"
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors
-fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-extra-charsets=complex
--enable-thread-safe-client --enable-local-infile
--disable-shared
Такие опции компиляции использовались для бинарных поставок MySQL AB в прошлом. Такие бинарные поставки более не обновляются, но опции компиляции мы сохранили здесь как реферативную информацию.
Linux 2.2.x с x686 с gcc
2.95.2
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3
-mpentiumpro -felide-constructors -fno-exceptions -fno-rtti"
./configure --prefix=/usr/local/mysql --enable-assembler
--with-mysqld-ldflags=-all-static --disable-shared
--with-extra-charsets=complex
SunOS 4.1.4 2 sun4c с gcc
2.7.2.1
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"
./configure --prefix=/usr/local/mysql --disable-shared
--with-extra-charsets=complex --enable-assembler
SunOS 5.5.1 (and above) sun4u с egcs
1.0.3a or 2.90.27 or gcc 2.95.2 and newer
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3
-felide-constructors -fno-exceptions -fno-rtti" ./configure
--prefix=/usr/local/mysql --with-low-memory
--with-extra-charsets=complex --enable-assembler
SunOS 5.6 i86pc с gcc
2.8.1
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure
--prefix=/usr/local/mysql --with-low-memory
--with-extra-charsets=complex
BSDI BSD/OS 3.1 i386 с gcc
2.7.2.1
CC=gcc CXX=gcc CXXFLAGS=-O ./configure
--prefix=/usr/local/mysql
--with-extra-charsets=complex
BSDI BSD/OS 2.1 i386 с gcc
2.7.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure
--prefix=/usr/local/mysql
--with-extra-charsets=complex
AIX 2 4 с gcc
2.7.2.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure
--prefix=/usr/local/mysql
--with-extra-charsets=complex
Каждый, кто обладает более
оптимальными опциями для любой из
вышеперечисленных конфигураций, в
любое время может выслать их в
список рассылки разработчиков по
адресу <internals@lists.mysql.com>
.
Дистрибутивы RPM для версии MySQL до 3.22 создавались силами пользователей. Однако начиная с версии 3.22, пакеты RPM собираются у нас в MySQL AB.
Если вы хотите скомпилировать
отладочную версию MySQL, то следует
добавить --with-debug
или
--with-debug=full
к предыдущим
строкам конфигурации и удалить
любые опции -fomit-frame-pointer
.
По вопросам, относящимся к дистрибутиву для Windows, просьба обращаться к разделу See Раздел 2.1.2, «Установка MySQL на Windows».
См. также раздел See Раздел 2.1.2.1, «Установка бинарного кода», раздел Раздел 2.1.1, «Установка MySQL на Linux» и раздел See Раздел 8.4.7, «Сборка клиентских программ».
Для установки бинарного дистрибутива MySQL необходимы следующие инструментальные средства:
GNU gunzip
для
разархивирования дистрибутива.
Подходящий tar
для
распаковки дистрибутива. GNU
tar
известен как
работающий, а tar
разработки Sun - как имеющий
проблемы.
Для Linux существует альтернативный метод установки с использованием дистрибутива RPM (RedHat Package Manager, менеджер пакетов RedHat). См. раздел See Раздел 2.1.1, «Установка MySQL на Linux».
Если вам придется столкнуться с
проблемами, то, пожалуйста, при
отправке вопросов на
<mysql@lists.mysql.com>
всегда
пользуйтесь mysqlbug
. Даже
если ваша проблема не относится к
числу ошибок, mysqlbug
соберет системную информацию,
которая поможет решать такие
проблемы и другим. Без
mysqlbug
вы уменьшаете
вероятность получить решение
своей проблемы! mysqlbug
можно найти в каталоге
scripts
после распаковки
дистрибутива. See Раздел 1.8.1.3, «Как отправлять отчеты об ошибках или проблемах».
Для установки бинарного дистрибутива MySQL необходимо выполнить следующие основные команды:
shell>groupadd mysql
shell>useradd -g mysql mysql
shell>cd /usr/local
shell>gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell>ln -s full-path-to-mysql-VERSION-OS mysql
shell>cd mysql
shell>scripts/mysql_install_db
shell>chown -R root .
shell>chown -R mysql data
shell>chgrp -R mysql .
shell>bin/safe_mysqld --user=mysql &
или
shell> bin/mysqld_safe --user=mysql &
если вы работаете с MySQL 4.x
Новых пользователей можно
добавить, используя скрипт
bin/mysql_setpermission
, если
установить модули Perl DBI
и
Msql-Mysql-modules
.
Далее следует более детальное описание.
Для установки бинарного дистрибутива выполните приведенные ниже действия, а затем перейдите к разделу Раздел 2.4, «Послеустановочные настройка и тестирование» для послеустановочной настройки и проверки:
Выберите каталог, в котором вы
хотите распаковать дистрибутив,
и откройте его. В последующих
примерах мы распаковываем
дистрибутив под
/usr/local
и создаем
каталог /usr/local/mysql
, в
котором устанавливается MySQL. (Для
выполнения дальнейших
инструкций, следовательно,
предполагается, что вы обладаете
правами создания файлов в
/usr/local
. Если этот
каталог защищен, то вы должны
производить установку как
пользователь root
.)
Получите файл дистрибутива с
одного из сайтов, перечисленных
в разделе See Раздел 2.2.1, «Как получить MySQL».
Бинарные дистрибутивы MySQL
поставляются как сжатые архивы
tar с именами вроде
mysql-VERSION-OS.tar.gz
, где
VERSION
представляет
собой число (например 5.0.6-beta), а
OS
указывает тип
операционной системы, для
которой предназначен данный
дистрибутив (например
pc-linux-gnu-i586
).
Если бинарный дистрибутив
маркирован суффиксом
-max
, то это означает,
что данный бинарный код
поддерживает транзакционные
таблицы и другие свойства. See
Раздел 4.7.5, «mysqld-max
, расширенный сервер mysqld
». Отметим, что все
бинарные дистрибутивы созданы
из одного и того же дистрибутива
исходного кода MySQL.
Добавьте пользователя и группу
для запуска mysqld
как:
shell>groupadd mysql
shell>useradd -g mysql mysql
Приведенные команды добавляют
группу mysql
и
пользователя mysql
.
Данный синтаксис для
useradd
и groupadd
для различных версиях Unix может
иметь некоторые различия. Эти
команды могут также называться
adduser
и addgroup
.
При желании можно дать
пользователю и группе вместо
mysql
другие имена.
Задайте предназначенный для установки каталог:
shell> cd /usr/local
Распакуйте дистрибутив и создайте каталог установки:
shell>gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell>ln -s full-path-to-mysql-VERSION-OS mysql
Первая команда создает каталог с
именем mysql-VERSION-OS
, а
вторая - устанавливает
символическую ссылку на данный
каталог. Это позволяет более
просто ссылаться на каталог
установки - как на
/usr/local/mysql
.
Измените в каталоге установки:
shell> cd mysql
В каталоге mysql
вы
найдете несколько файлов и
подкаталогов. Наиболее важными
для целей установки являются
подкаталоги bin
и
scripts
.
Этот каталог содержит
клиентские программы и сервер.
Необходимо добавить полный
путь к этому каталогу в
переменную окружения
PATH
, чтобы оболочка
операционной системы
правильно находила программы
MySQL. See Приложение F, Переменные окружения.
scripts
Этот каталог содержит скрипт
mysql_install_db
,
используемый для
инициализации базы данных
mysql
, содержащей
таблицы привилегий, в которых
хранятся права доступа к
серверу.
Если вы предпочитаете
использовать mysqlaccess
и
установить дистрибутив MySQL в
каком-либо нестандартном месте,
то необходимо изменить место,
где mysqlaccess
ожидает
найти клиента mysql
.
Отредактируйте скрипт
bin/mysqlaccess
примерно на
18-й строке. Найдите строку,
выглядящую примерно так:
$MYSQL = '/usr/local/bin/mysql'; # путь к исполняемому клиенту mysql
Измените путь для указания того
места в системе, где
действительно находится
mysql
. Если этого не
сделать, то возникнет ошибка
Broken pipe
при запуске
mysqlaccess
.
Создайте таблицы привилегий MySQL (необходимы только в том случае, если ранее MySQL не устанавливался):
shell> scripts/mysql_install_db
Отметим, что в версиях MySQL старше,
чем 3.22.10, сервер MySQL запускался
при запуске mysql_install_db
.
Сейчас это не так!
Измените принадлежность
бинарного кода пользователю
root
и принадлежность
каталога данных пользователю,
под которым будет запускаться
mysqld
, следующим
образом:
shell>chown -R root /usr/local/mysql/.
shell>chown -R mysql /usr/local/mysql/data
shell>chgrp -R mysql /usr/local/mysql/.
Первая команда изменяет
владельца данного файла на
пользователя root
,
вторая - владельца каталога
данных на пользователя
mysql
, а третья - группу
на группу mysql
.
Если вы хотите установить
поддержку интерфейса Perl
DBI
/DBD
, See
Раздел 2.7, «Замечания по установке Perl».
Если вы хотели бы, чтобы работа
MySQL начиналась автоматически при
начальной загрузке компьютера,
то можно скопировать
support-files/mysql.server
в то
место, где находятся файлы
запуска вашей системы. Более
подробную информацию можно
найти в самом скрипте
support-files/mysql.server
и в
разделе See Раздел 2.4.3, «Автоматический запуск и остановка MySQL».
После того, как все это будет установлено, необходимо инициализировать и протестировать данный дистрибутив.
Запустить сервер MySQL можно с помощью следующей команды:
shell> bin/safe_mysqld --user=mysql &
А сейчас следует перейти к разделу
Раздел 4.7.2, «safe_mysqld
, оболочка mysqld
» и просмотреть
раздел See Раздел 2.4, «Послеустановочные настройка и тестирование».
Перед тем как приступить к установке исходного кода, вначале убедитесь, что наш бинарный дистрибутив подходит для вашей платформы и что он будет работать на вашей системе. Мы прилагаем много усилий для того, чтобы снабдить наши бинарные дистрибутивы наилучшими свойствами из возможных.
Для сборки и установки MySQL из исходного кода необходимы следующие инструменты:
GNU gunzip
для
разархивирования дистрибутива.
Подходящий tar
для
распаковки дистрибутива.
Известно, что GNU tar
является работоспособным, а
tar
разработки Sun имеет
проблемы.
Работающий компилятор ANSI C++. К
числу компиляторов, о которых
известно, что они работают,
относятся версии gcc
>=
2.95.2, egcs
>= 1.0.2 или egcs
2.91.66, SGI C++ и SunPro C++. При
использовании gcc
нет
необходимости в libg++
.
Версия gcc 2.7.x имеет ошибку, из-за
которой невозможна компиляция
некоторых полностью допустимых
файлов C++, таких как
sql/sql_base.cc
. Если у вас
есть только gcc
2.7.x, то
для того, чтобы можно было
провести компиляцию MySQL,
необходимо модернизировать
gcc
. Компилятор
gcc
2.8.1, как известно,
также имеет проблемы на некоторых
платформах, так что его лучше не
использовать, если для данной
платформы существует новый
компилятор. При компиляции версии
MySQL 3.23.x рекомендуется gcc
>= 2.95.2.
Хорошая программа make
.
Всегда рекомендуется (а иногда и
необходимо) использовать GNU make. В
случае возникновения проблем мы
рекомендуем попробовать работать
с версией GNU make 3.75 или более новой.
Очень важно, чтобы вы использовали
последнюю версию gcc
,
достаточно новую, чтобы ``понимать''
опцию -fno-exceptions
. В
противном случае не исключена
компиляция бинарного кода, который
может неожиданно привести к отказу.
Мы также рекомендуем использовать
-felide-constructors
и
-fno-rtti
вместе с
-fno-exceptions
. Если вы
сомневаетесь, то выполните
следующие действия:
CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions \ -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
На большинстве операционных систем это даст быстрый и стабильный бинарный код.
Если вам придется столкнуться с
проблемами, то при отправке
вопросов на <mysql@lists.mysql.com>
,
пожалуйста, всегда используйте
mysqlbug
. Даже если ваша
проблема не вызвана какой-либо
ошибкой, mysqlbug
соберет
системную информацию, которая в
поможет решении этой проблемы
другим пользователям. Без
mysqlbug
уменьшается
вероятность того, что вы получите
решение своей проблемы!
mysqlbug
можно найти в
каталоге scripts
после
распаковки дистрибутива. See
Раздел 1.8.1.3, «Как отправлять отчеты об ошибках или проблемах».
Для установки MySQL из исходного кода необходимо выполнить следующие основные команды:
shell>groupadd mysql
shell>useradd -g mysql mysql
shell>gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell>cd mysql-VERSION
shell>./configure --prefix=/usr/local/mysql
shell>make
shell>make install
shell>scripts/mysql_install_db
shell>chown -R root /usr/local/mysql
shell>chown -R mysql /usr/local/mysql/var
shell>chgrp -R mysql /usr/local/mysql
shell>cp support-files/my-medium.cnf /etc/my.cnf
shell>/usr/local/mysql/bin/safe_mysqld --user=mysql &
или shell>/usr/local/mysql/bin/mysqld_safe --user=mysql &
если запускается версия MySQL 4.x.
Чтобы обеспечить поддержку таблиц
InnoDB, следует отредактировать файл
/etc/my.cnf
, удалив символ
#
перед теми параметрами,
которые начинаются с
innodb_....
See
Раздел 4.1.2, «Файлы параметров my.cnf
». See
Раздел 7.5.2, «Параметры запуска InnoDB».
Если вы используете исходный код RPM, выполните следующую команду:
shell> rpm --rebuild --clean MySQL-VERSION.src.rpm
Эта команда создаст бинарный код RPM, который вы можете установить.
Новых пользователей можно
добавить, используя скрипт
bin/mysql_setpermission
, если
установить модули Perl DBI
и
Msql-Mysql-modules
.
Ниже следует более подробное описание установки.
Для установки исходного кода нужно выполнить приведенные ниже действия, а затем перейти к разделу Раздел 2.4, «Послеустановочные настройка и тестирование» для инициализации и послеустановочной проверки:
Выберите каталог, в котором вы хотите распаковать дистрибутив, и откройте его.
Получите файл дистрибутива с одного из сайтов, перечисленных в разделе See Раздел 2.2.1, «Как получить MySQL».
Если вы заинтересованы в том,
чтобы использовать с MySQL таблицы
Berkeley DB, то необходимо получить
версию исходного кода таблиц
Berkeley DB с патчами. Кроме того,
прежде чем предпринимать
какие-либо действия,
ознакомьтесь, пожалуйста, с
разделом, посвященным таблицам
Berkeley DB (see Раздел 7.6, «Таблицы BDB
или BerkeleyDB»).
Дистрибутивы исходного кода MySQL
поставляются в виде сжатых
архивов tar с именами наподобие
mysql-VERSION.tar.gz
, где
VERSION
представляет
собой число.
Добавьте пользователя и группу
для запуска mysqld
следующим образом:
shell>groupadd mysql
shell>useradd -g mysql mysql
Эти команды добавляют группу
mysql
и пользователя
mysql
. Данный синтаксис
для useradd
и
groupadd
в различных
версиях Unix может иметь некоторые
отличия. Приведенные выше
команды могут также иметь другие
названия - adduser
и
addgroup
соответственно.
Пользователю и группе можно
назначить какие-нибудь иные,
отличные от mysql
имена.
Распакуйте дистрибутив в текущем каталоге:
shell> gunzip < /path/to/mysql-VERSION.tar.gz | tar xvf -
Эта команда создает каталог с
именем mysql-VERSION
.
Перейдите из каталога распакованного дистрибутива в каталог высшего уровня:
shell> cd mysql-VERSION
Учтите, что теперь необходимо конфигурировать и компоновать MySQL из этого каталога высшего уровня. Построить MySQL в другом каталоге нельзя.
Сформируйте релиз и скомпилируйте весь код:
shell>./configure --prefix=/usr/local/mysql
shell>make
При запуске configure вам, возможно,
понадобится указать некоторые
опции. Чтобы получить список
опций, запустите ./configure
--help
. Некоторые наиболее
полезные опции рассмотрены в
разделе See Раздел 2.3.3, «Типичные опции configure
».
Если configure
не работает
и вы собираетесь посылать письмо
с просьбой о помощи на
<mysql@lists.mysql.com>
, то просьба
включить в него те строки из
config.log
, которые, по
вашему мнению, могут помочь
решить данную проблему. Кроме
того, если выполнение
configure
преждевременно
прекращается, в письмо следует
включить несколько последних
строк вывода из configure
.
Для отсылки отчета об ошибке
используйте скрипт
mysqlbug
(see
Раздел 1.8.1.3, «Как отправлять отчеты об ошибках или проблемах»). Если
компиляция не выполняется, то
обращайтесь к разделу See
Раздел 2.3.5, «Проблемы с компиляцией?», в котором
содержатся рекомендации по
решению ряда часто
встречающихся проблем.
Установите весь код:
shell> make install
Возможно, необходимо запустить
эту команду как root
.
Создайте таблицы привилегий MySQL (это необходимо только в случае, если нет ранее установленной версии MySQL ):
shell> scripts/mysql_install_db
Учтите, что в версиях MySQL до 3.22.10
работа сервера MySQL начиналась
при запуске mysql_install_db
.
Сейчас это не так!
Измените принадлежность
бинарного кода root
и
принадлежность каталога данных,
назначив их пользователю, под
именем которого будет
запускаться mysqld
. Это
делается следующим образом:
shell>chown -R root /usr/local/mysql
shell>chown -R mysql /usr/local/mysql/var
shell>chgrp -R mysql /usr/local/mysql
Первая команда изменяет атрибут
owner данного файла на
пользователя root
,
вторая - атрибут owner каталога
данных на пользователя
mysql
, а третья - атрибут
group на группу mysql
.
Если вы хотите установить
поддержку интерфейса Perl
DBI
/DBD
,
обращайтесь к разделу See
Раздел 2.7, «Замечания по установке Perl».
Если вы хотели бы, чтобы работа
MySQL начиналась автоматически при
начальной загрузке компьютера,
то можно скопировать
support-files/mysql.server
в то
место, где находятся файлы
запуска вашей системы. Более
подробную информацию можно
найти в самом скрипте
support-files/mysql.server
и в
разделе See Раздел 2.4.3, «Автоматический запуск и остановка MySQL».
После завершения установки данный дистрибутив необходимо проинициализировать и протестировать:
shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &
Если эта команда прекращает работу
немедленно после останова демона
mysqld
, то некоторую
информацию можно найти в файле
mysql-data-directory/'hostname'.err
.
Причина, возможно, заключается в
том, что уже запущен другой сервер
mysqld
(see
Раздел 4.1.4, «Запуск нескольких серверов MySQL на одном компьютере»).
Теперь приступайте к разделу See Раздел 2.4, «Послеустановочные настройка и тестирование».
Патчи иногда присутствуют в списке рассылки или помещаются в папке патчей на веб-сайте MySQL (http://www.mysql.com/downloads/patches.html).
Для применения патча из списка рассылки сохраните сообщение, содержащее патч, в файле, поместите его в каталог высшего уровня, в котором находится дерево исходных кодов MySQL, и запустите следующие команды:
shell>patch -p1 < patch-file-name
shell>rm config.cache
shell>make clean
Патчи с FTP-сайта распространяются
как файлы с простым текстом или как
файлы, сжатые с помощью
gzip
. Патч в виде простого
текста следует применять, как
показано выше для патчей из списка
рассылки. Чтобы применить сжатый
патч, поместите его в каталог
высшего уровня, в котором
находится дерево исходных кодов
MySQL, и запустите следующие команды:
shell>gunzip < patch-file-name.gz | patch -p1
shell>rm config.cache
shell>make clean
После применения патча следуйте
инструкциям для обычной установки
исходного кода, начиная с этапа
./configure
. После запуска
этапа make install
перезапустите свой сервер MySQL.
Возможно, перед запуском make
install
потребуется остановить
любые запущенные в это время
серверы (используйте для этого
mysqladmin shutdown
). В некоторых
системы не разрешается
устанавливать новую версию
какой-либо программы, если она
замещает запущенную в данное время
версию.
Скрипт configure
обеспечивает широкие возможности
управления конфигурацией
дистрибутива MySQL. Обычно такое
управление осуществляется путем
использования опций в командной
строке configure
. На работу
configure
можно также
воздействовать при помощи
соответствующих переменных
окружения (see
Приложение F, Переменные окружения). Чтобы
получить список поддерживаемых
configure опций, запустите следующую
команду:
shell> ./configure --help
Ниже описаны некоторые из наиболее
часто используемых опций
configure
:
Для компиляции только
клиентских библиотек MySQL и
клиентских программ (без
серверной части) используйте
опцию --without-server
:
shell> ./configure --without-server
При отсутствии компилятора C++ не
будет компилироваться
mysql
(именно для данной
клиентской программы требуется
C++). В этом случае можно удалить
из configure код, который проверяет
наличие компилятора C++, а затем
запустить ./configure
с
опцией --without-server
. На
этапе компиляции и после этого
будет предпринята попытка
скомпилировать mysql
, но
любые предупреждения насчет
mysql.cc
можно
игнорировать (если make
остановится, попробуйте
запустить make -k
- чтобы
компиляция остального кода
продолжалась даже в случае
возникновения ошибок).
Если необходимо получить
встраиваемую библиотеку MySQL
(libmysqld.a
), используйте
опцию --with-embedded-server
.
Если вы не хотите, чтобы ваши
системные журналы и каталоги баз
данных располагались в каталоге
/usr/local/var
, то
используйте команду
configure
наподобие одной
из приведенных ниже:
shell>./configure --prefix=/usr/local/mysql
shell>./configure --prefix=/usr/local \
--localstatedir=/usr/local/mysql/data
Первая команда изменяет
установочный префикс, в
результате чего весь код будет
установлен в каталоге
/usr/local/mysql
вместо
принятого по умолчанию
/usr/local
. Вторая команда
сохраняет принятый по умолчанию
установочный префикс, но
переопределяет принятое по
умолчанию местоположение
каталогов базы данных (обычно
/usr/local/var
) и изменяет
его на /usr/local/mysql/data
.
После завершения компиляции MySQL
эти опции можно изменить с
помощью файлов опций (see
Раздел 4.1.2, «Файлы параметров my.cnf
»)
Если вы работаете под Unix и
хотите, чтобы сокет MySQL находился
в каком-либо другом, отличном от
принятого по умолчанию, месте
(обычно по умолчанию задается
каталог /tmp
или
/var/run
), используйте
команду configure, подобную
следующей:
shell> ./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
Следует учитывать, что данный
файл должен представлять собой
полный путь к каталогу! Позже
местоположение mysql.sock можно
также изменить, используя файлы
опций MySQL (see
Раздел A.4.5, «Как защитить или изменить сокет-файл MySQL /tmp/mysql.sock
»).
Если необходимо компилировать
статически линкованные
программы (например, чтобы
создать бинарный дистрибутив,
или чтобы повысить скорость, или
чтобы обойти проблемы некоторых
дистрибутивов RedHat Linux), запустите
configure
так, как показано
ниже:
shell>./configure --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
При использовании gcc
без установленной библиотеки
libg++
или
libstdc++
можно предписать
configure
в качестве
компилятора C++ использовать
gcc
:
shell> CC=gcc CXX=gcc ./configure
Если gcc
используется
как компилятор C++, то он не будет
пробовать линковаться с
libg++
или
libstdc++
. Это может
оказаться полезным даже если
такие библиотеки установлены,
поскольку при использовании
некоторых версий вышеназванных
библиотек в прошлом у
пользователей MySQL возникали
непонятные проблемы.
Ниже приводятся установки некоторых общих переменных окружения в зависимости от используемого компилятора:
Компилятор | Рекомендуемые опции |
gcc 2.7.2.1 | CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" |
egcs 1.0.3a | CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" |
gcc 2.95.2 | CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" |
pgcc 2.90.29 or newer | CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double -felide-constructors \ -fno-exceptions -fno-rtti" |
В большинстве случаев можно получить достаточно оптимальный бинарный код MySQL путем использования опций предыдущей таблицы и добавления в командной строке следующих опций:
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Другими словами, полная строка конфигурации для всех последних версий gcc должна быть подобна приведенной ниже:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Все бинарные коды, которые мы поставляем с веб-сайта MySQL на http://www.mysql.com/, компилируются с максимальной оптимизацией и должны быть идеальными для большинства пользователей (see Раздел 2.2.7, «Бинарные коды MySQL, скомпилированные в MySQL AB»). Существуют некоторые настройки, позволяющие сделать бинарный код даже еще быстрее, но их могут выполнять только опытные пользователи (see Раздел 5.5.3, «Как компиляция и линкование влияет на скорость MySQL»).
Если создать код не удается и при
этом выдаются ошибки с указанием
на компилятор или если
компоновщик не в состоянии
создать совместную библиотеку
libmysqlclient.so.#
(‘#
’ представляет
собой номер версии), то эту
проблему можно обойти путем
добавления к configure
опции --disable-shared
. В этом
случае configure
не будет
создавать совместную библиотеку
libmysqlclient.so.#
.
Можно сконфигурировать MySQL таким
образом, чтобы не использовать
величины DEFAULT
на
столбцах не-NULL
(т.е. на
столбцах, которые не могут
принимать значение
NULL
). При указании этой
опции команды INSERT
будут генерировать ошибку в
случае, если явно не указаны
величины для всех столбцов,
которые не могут принимать
значение NULL
. Чтобы
запретить использование величин
по умолчанию, запустите
configure
, как показано
ниже:
shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
По умолчанию в MySQL используется
кодировка ISO-8859-1 (Latin1). Для
изменения кодировки, принятой по
умолчанию, следует применить
опцию --with-charset
:
shell> ./configure --with-charset=CHARSET
CHARSET
может принимать
одно из следующих значений:
big5
, cp1251
,
cp1257
, czech
,
danish
, dec8
,
dos
, euc_kr
,
gb2312
, gbk
,
german1
, hebrew
,
hp8
, hungarian
,
koi8_ru
, koi8_ukr
,
latin1
, latin2
,
sjis
, swe7
,
tis620
, ujis
,
usa7
или win1251ukr
(see Раздел 4.6.1, «Набор символов, применяющийся для записи данных и сортировки»). Если
требуется преобразовывать
символы между сервером и
клиентом, следует рассмотреть
команду SET CHARACTER SET
(see
Раздел 5.5.6, «Синтаксис команды SET
»).
Предупреждение:
если набор символов изменяется
после создания таблиц,
необходимо запустить myisamchk
-r -q --set-characted-set=charset
на
каждой таблице. В противном
случае индексы могут
сортироваться неправильно
(такое может случиться, если вы
установите MySQL, создадите ряд
таблиц, затем
переконфигурируете MySQL с целью
использования другого набора
символов и заново установите
MySQL).
С помощью опции
--with-extra-charsets=LIST
можно
определить, какие
дополнительные кодировки
необходимо скомпилировать в
данном сервере.
Здесь LIST
либо
представляет собой разделенный
пробелами список кодировок, либо
имеет значение complex
для включения всех символов,
которые не могут быть загружены
динамически, либо имеет значение
all
для включения всех
кодировок в бинарники.
Для конфигурации MySQL с кодом
отладки используйте опцию
--with-debug
:
shell> ./configure --with-debug
Задание этой опции вызывает подключение надежного распределителя памяти, который может найти некоторые ошибки и обеспечить вывод информации о том, что происходит (see Раздел E.1, «Отладка сервера MySQL»).
Если клиентские программы
используют потоки, то необходимо
также скомпилировать
поддерживающую потоки версию
клиентской библиотеки MySQL с
опцией конфигурации
--enable-thread-safe-client
. При
указании этой опции будет
создана библиотека
libmysqlclient_r
, с которой
следует линковать потоковые
приложения (see
Раздел 8.4.8, «Как создать клиентскую программу с потоками»).
Опции, относящиеся к конкретным системам, можно найти в разделах данного руководства, в которых описываются особенности различных операционных систем (see Раздел 2.6, «Заметки по операционным системам»).
Предупреждение: этот раздел необходимо читать только в том случае, если вы хотите помочь нам в тестировании нового кода. Пользователи, которые просто хотят установить MySQL и запустить его на своей системе, должны использовать стандартную версию дистрибутива (либо исходный код, либо бинарный дистрибутив).
Чтобы получить самый последний из разработанных наборов исходных кодов, используйте следующие инструкции:
Загрузите программу
BitKeeper
с
http://www.bitmover.com/cgi-bin/download.cgi.
Для доступа к нашему хранилищу
вам понадобится версия
Bitkeeper
3.0 или более
новая.
Выполните инструкции по установке этой программы.
После установки BitKeeper
сначала перейдите в каталог, из
которого собираетесь работать,
затем используйте одну из
приведенных ниже команд, для
получения желаемой копии ветви
MySQL.
Чтобы клонировать ветку 3.23:
shell> bk clone bk://mysql.bkbits.net/mysql-3.23 mysql-3.23
Чтобы клонировать ветку 4.0:
shell> bk clone bk://mysql.bkbits.net/mysql-4.0 mysql-4.0
Чтобы клонировать ветку 4.1:
shell> bk clone bk://mysql.bkbits.net/mysql-4.1 mysql-4.1
В предыдущих примерах набор
исходных кодов будет установлен
в подкаталогах
mysql-3-23/
,
mysql-4.0/
или
mysql-4.1/
вашего
текущего каталога.
Если вы находитесь за брендмауером, и можете только делать HTTP-запросы, вы можете также использовать BitKeeper по HTTP.
Если вы используете
прокси-сервер, просто установите
переменную окружения
http_proxy
:
shell> export http_proxy="http://your.proxy.server:8080/"
И теперь просто замените
bk://
на http://
когда будете делать
клонирование. Например:
shell> bk clone http://mysql.bkbits.net/mysql-4.1 mysql-4.1
Первоначальная загрузка набора исходных кодов может потребовать времени в зависимости от скорости вашего соединения; будьте терпеливы.
Чтобы запустить следующий набор
команд, вам понадобятся
программы GNU make
,
autoconf 2.53
(или новее),
automake 1.5
, libtool
1.4
и m4
. Программа
automake 1.7
(или новее) еще
не работает.
Если вы хотите настроить MySQL 4.1,
вам также потребуется bison
1.75
. Более старые версии
bison
могут давать такую
ошибку: sql_yacc.yy:#####: fatal error:
maximum table size (32767) exceeded
. На
самом деле максимальный размер
таблиц не превышается, как
утверждает это сообщение, но
просто-напросто такое сообщение
есть следствие ошибки в более
ранних версиях bison
.
Типичные команды к выполнению в оболочке:
cd mysql-4.0 bk -r get -Sq aclocal; autoheader; autoconf; automake (cd innobase ; aclocal; autoheader; autoconf; automake) # для InnoDB (cd bdb/dist ; sh s_all ) # для Berkeley DB ./configure # Ваши любимые опции здесь make
Если вы получаете некие странные
сообщения на этом этапе -
удостоверьтесь, что у вас
действительно стоит
libtool
!
Собрание наших стандартных
конфигурационных скриптов
находится в подкаталоге
BUILD/
. Если вы
предпочитаете наиболее легкий
путь, можно использовать скрипт
BUILD/compile-pentium-debug
. При
компилировании с использованием
другой архитектуры
модифицируйте этот скрипт путем
удаления флагов, относящихся к
Pentium.
После выполнения компиляции
запустите make install
.
Следует проявлять осторожность
при работе на машине,
находящейся в эксплуатации;
данная команда может выполнить
установку поверх вашей
существующей установленной
версии. Если у вас уже
установлена иная версия MySQL, мы
рекомендуем запускать
./configure
со значениями
для опций prefix
,
with-tcp-port
и
unix-socket-path
, отличными от
тех, что были использованы для
сервера, находящегося в
эксплуатации.
Усиленно нагружая свою новую
инсталляцию, попытайтесь
добиться отказа новых
возможностей. Начинайте с
запуска make test
(see
Раздел 9.1.2, «Пакет тестирования MySQL»).
Если вам удастся дойти до этапа
make
и дистрибутив не
будет компилироваться, просьба
сообщить нам об этом по адресу
<bugs@lists.mysql.com>
. Просьба
информировать нас и в том случае,
если вы установили последнюю
версию требуемых
инструментальных средств GNU и
они терпят крах при попытке
обработать наш конфигурационный
файл. Однако если при выполнении
aclocal
вы получите
ошибку command not found
или
возникнет аналогичная проблема,
об этом сообщать не надо. В таком
случае следует убедиться, что у
вас установлены все необходимые
инструментальные программы и
что ваша переменная PATH
указана правильно, чтобы
оболочка могла найти их.
Для того чтобы получить набор
исходных кодов после начальной
операции bk clone
,
необходимо периодически
запускать bk pull
для
получения обновлений.
Вы можете изучить историю
изменений дерева исходных кодов,
чтобы увидеть все отличия в них -
для этого следует использовать
bk sccstool
. При
обнаружении каких-либо отличий,
которые покажутся вам странными,
или кода, по которому возникают
вопросы, не раздумывайте -
посылайте письмо на
<internals@lists.mysql.com>
. Кроме
того, если вы считаете, что у вас
есть лучшие идеи по разработке,
отправьте по тому же адресу
сообщение со своим патчем. bk
diffs
создает патч после
внесения изменений в исходный
код. Если у вас нет времени
написать код, реализующий вашу
идею, просто пришлите ее
описание.
BitKeeper имеет хорошую
вспомогательную программу,
которая доступна посредством
bk helptool
.
Внимание: любой commit (bk
ci
или bk citool
)
инициирует постинг сообщения с
изменениями в наш внутренний
список рассылки (internals). В общем
случае, вам не нужно
использовать commit (поскольку
публично-доступное дерево не
допустит bk push
), но
скорее, метод bk diffs
,
описанный ранее.
Вы также можете просматривать изменения, комментарии и исходный код в онлайн, например, по адресу http://mysql.bkbits.net:8080/mysql-4.1 для MySQL 4.1.
Руководство находится в отдельном дереве, которое можно клонировать так:
shell> bk clone bk://mysql.bkbits.net/mysqldoc mysqldoc
На Solaris или Linux с использованием
компилятора gcc
все
программы MySQL у нас компилируются
чисто и без каких-либо
предупреждений. В других системах
могут возникать предупреждения
из-за различий включаемых
системных файлов (по поводу
предупреждений, которые могут
возникать при использовании
потоков MIT-pthreads
,
обращайтесь к разделу see
Раздел 2.3.6, «Замечания по потокам MIT-pthreads»). Относительно
других проблем сверьтесь с
приведенным ниже списком.
Решение многих проблем предполагает выполнение переконфигурирования. В случаях, когда переконфигурирование действительно необходимо, следует учитывать следующее:
Если configure
запускается
после того, как эта команда уже
запускалась, то можно
использовать информацию,
которая была собрана во время
предыдущего вызова команды
(такая информация хранится в
config.cache
). При запуске
configure
ищет данный файл
и, если он существует, читает его
содержимое, исходя из
предположения, что данная
информация все еще правильна.
При выполнении переконфигурации
это предположение является
некорректным.
Каждый раз при запуске
configure
необходимо опять
запускать make
для
перекомпилирования. Однако,
возможно, вначале вам
потребуется удалить старые
объектные файлы из предыдущих
компоновок, поскольку они были
скомпилированы с использованием
других опций конфигурации.
Чтобы не допустить
использования старой
конфигурационной информации или
объектных файлов, перед
перезапуском configure
запустите следующие команды:
shell>rm config.cache
shell>make clean
В качестве альтернативного
варианта можно использовать
команду make distclean
.
В следующем списке представлены некоторые проблемы компилирования MySQL, которые, как оказалось, возникают наиболее часто:
Если при компиляции
sql_yacc.cc
вы получаете
ошибки, подобные представленным
ниже, то, возможно, произошел
выход за пределы памяти или
пространства подкачки
(свопинга):
Internal compiler error: program cc1plus got fatal signal 11 или Out of virtual memory или Virtual memory exhausted
Проблема заключается в том, что
для компиляции sql_yacc.cc
со встраиваемыми функциями
компилятору gcc
требуется значительное
количество памяти. Попробуйте
произвести запуск
configure
с опцией
--with-low-memory
:
shell> ./configure --with-low-memory
Данная опция вызывает
добавление -fno-inline
к
компилируемой строке для
gcc
и -O0
- при
использовании какого-либо
другого компилятора. Даже если у
вас столько памяти и
пространства для свопинга, что,
по вашему мнению, невозможно
выйти за их пределы, все же стоит
попытаться использовать опцию
with-low-memory
. Эта проблема,
по нашим наблюдениям, возникала
даже на системах с аппаратными
реализациями, обладающими
широкими возможностями; обычно
она устраняется с помощью опции
--with-low-memory
.
По умолчанию configure
выбирает c++ как имя компилятора и
GNU c++ линкуется с -lg++
.
При использовании gcc
этот режим работы может вызывать
такие проблемы в процессе
конфигурации, как:
configure: error: installation or configuration problem: C++ compiler cannot create executables.
Во время компиляции могут также
возникать проблемы, относящиеся
к g++
, libg++
или
libstdc++
. Одна из причин
их возникновения заключается в
том, что, возможно, у вас нет
g++
или есть
g++
, но нет библиотеки
libg++
или
libstdc++
. Следует изучить
файл config.log
- по нему
вы должны точно определить
причину, по которой не работал
компилятор c++ ! Чтобы обойти эти
проблемы, можно в качестве
компилятора C++ использовать gcc.
Попробуйте установить
переменную окружения
CXX
в gcc -O3
.
Например:
shell> CXX="gcc -O3" ./configure
Эта команда работает, поскольку
gcc компилирует исходные коды C++
так же хорошо, как и g++
,
но по умолчанию не линкует
libg++
или
libstdc++
. Есть, конечно, и
другая возможность устранения
этих проблем, которая
заключается в установке
g++
, libg++
и
libstdc++
. Однако мы не
рекомендовали бы использовать
libg++
или
libstdc++
с MySQL, поскольку
это только увеличит размер
бинарного кода mysqld
без
предоставления каких-либо
преимуществ. Некоторые версии
этих библиотек в прошлом также
вызывали непонятные проблемы у
пользователей MySQL.
Если процесс компиляции
завершается аварийно и
выводятся такие ошибки, как
приведены ниже, то вам следует
сделать апгрейд своей версии
make
до GNU make
:
making all in mit-pthreads make: Fatal error in reader: Makefile, line 18: Badly formed macro assignment или make: file `Makefile' line 18: Must be a separator (: или pthread.h: No such file or directory
Операционные системы Solaris и FreeBSD,
как известно, имеют ненадежные
программы make
.
Известно также, что версия GNU
make
3.75 работает.
Если вы хотите определить флаги
для использования их
компиляторами C или C++, следует
добавить флаги к переменным
окружения CFLAGS
и
CXXFLAGS
. Точно так же
можно также указать имена
компиляторов, используя
CC
и CXX
.
Например:
shell>CC=gcc
shell>CFLAGS=-O3
shell>CXX=gcc
shell>CXXFLAGS=-O3
shell>export CC CFLAGS CXX CXXFLAGS
В разделе Раздел 2.2.7, «Бинарные коды MySQL, скомпилированные в MySQL AB» приведен список полезных для различных систем определений флагов.
При получении сообщения об
ошибке, подобного приведенному
ниже, необходимо
модернизировать ваш компилятор
gcc
:
client/libmysql.c:273: parse error before `__attribute__'
Компилятор gcc
2.8.1
известен как работающий, но мы
рекомендуем вместо него
использовать gcc
2.95.2
или egcs
1.0.3a.
Если при компиляции
mysqld
вы получаете
ошибки, подобные приведенным
ниже, то это означает, что
команда configure
некорректно определила тип
последнего аргумента в функциях
accept()
,
getsockname()
или
getpeername()
:
cxx: Error: mysqld.cc, line 645: In this statement, the referenced type of the pointer value "&length" is "unsigned long", which is not compatible with "int". new_sock = accept(sock, (struct sockaddr *)&cAddr, &length);
Чтобы устранить эту ошибку,
отредактируйте файл
config.h
(который
генерируется configure
).
Найдите в нем следующие строки:
/* Define as the base type of the last arg to accept */ #define SOCKET_SIZE_TYPE XXX
и измените XXX
на
size_t
или int
- в
зависимости от своей
операционной системы (учтите,
что эти действия необходимо
будет повторять каждый раз при
запуске configure
,
поскольку configure восстанавливает
файл config.h
).
Файл sql_yacc.cc
генерируется из
sql_yacc.yy
. Обычно в
процессе сборки не требуется
создавать sql_yacc.cc
,
поскольку MySQL поставляется с уже
сгенерированной копией. Однако
если действительно необходимо
создать этот файл заново, то
можно столкнуться со следующей
ошибкой:
"sql_yacc.yy", line xxx fatal: default action causes potential...
Это признак того, что ваша версия
yacc
является неполной.
Возможно, следует установить
bison
(GNU-версия yacc) и
использовать вместо
yacc
.
При необходимости отладки
mysqld
или клиента MySQL
запустите configure
с
опцией --with-debug
, затем
перекомпилируйте и слинкуйте
эти программы с новой клиентской
библиотекой (see
Раздел E.2, «Отладка клиента MySQL»).
В этом разделе описываются некоторые аспекты использования потоков MIT-pthreads.
Следует иметь в виду, что под Linux использовать потоки MIT-pthreads нельзя, для этого необходимо установить LinuxThreads! See Раздел 2.6.1, «Примечания к Linux (Все версии Linux)».
Если ваша система сама по себе не обеспечивает поддержку потоков, то необходимо скомпоновать MySQL, используя пакет поддержки MIT-pthreads. К таким системам относятся старые системы FreeBSD, SunOS 4.x, Solaris 2.4 и более ранние, а также некоторые другие (see Раздел 2.2.3, «Операционные системы, поддерживаемые MySQL»).
Заметьте, с версии MySQL 4.0.2 потоки MIT более не присутствуют в поставке исходных текстов. Если вам действительно нужен этот пакет, вы можете его забрать с http://www.mysql.com/Downloads/Contrib/pthreads-1_60_beta6-mysql.tar.gz
После загрузки, распакуйте этот
архив в каталог исходных текстов
MySQL. Создастся новый каталог
mit-pthreads
.
Для большинства систем можно
обеспечить использование
потоков MIT-pthreads при помощи
запуска configure
с опцией
--with-mit-threads
:
shell> ./configure --with-mit-threads
При использовании потоков MIT-pthreads не поддерживается возможность сборки MySQL в каталоге, не содержащем исходный код, поскольку мы хотим минимизировать наши изменения в данном коде.
Проверки, определяющие,
используются ли потоки MIT-pthreads,
производятся только во время
этапа конфигурационного
процесса, относящегося к
серверному коду. Если
дистрибутив сконфигурирован с
использованием
--without-server
для сборки
только клиентского кода, то
клиенты не будут знать,
применяются ли потоки MIT-pthreads, и
будут использовать подключения
через сокеты Unix по умолчанию.
Поскольку сокеты Unix не работают
с потоками MIT-pthreads на некоторых
платформах, то при запуске
клиентских программ следует
использовать -h
или
--host
.
При компиляции MySQL с
использованием потоков MIT-pthreads
блокирование системы отключено
по умолчанию из соображений
производительности. Можно
предписать серверу использовать
системную блокировку с помощью
опции --use-external-locking
. Это
только необходимо если вы
собираетесь использовать два
MySQL-сервера на одних и тех же
файлах данных (не
рекомендуется!).
Иногда потоковой команде
bind()
не удается
подсоединить сокет без
какого-либо сообщения об ошибке
(по крайней мере, под Solaris). В
результате все подключения к
серверу обрываются. Например:
shell> mysqladmin version
mysqladmin: connect to server at '' failed;
error: 'Can't connect to mysql server on localhost (146)'
Для решения этой проблемы
следует завершить выполнение
сервера mysqld
и
перезапустить его. У нас это
происходило только в тех
случаях, когда мы прерывали
работу сервера и сразу же снова
его запускали.
При использовании потоков
MIT-pthreads системный вызов функции
sleep()
не прерывается с
помощью SIGINT
(break
). Это заметно
только в том случае, если
запускать mysqladmin --sleep
.
Следует ждать окончания работы
sleep()
, прежде чем
прерывание будет обслужено и
процесс завершит работу.
При линковании можно получить предупреждающие сообщения, подобные приведенным ниже (по крайней мере под Solaris); их можно игнорировать:
ld: warning: symbol `_iob' has differing sizes: (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4; file /usr/lib/libc.so value=0x140); /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken ld: warning: symbol `__iob' has differing sizes: (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4; file /usr/lib/libc.so value=0x140); /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
Некоторые другие предупреждения также можно игнорировать:
implicit declaration of function `int strtoll(...)' implicit declaration of function `int strtoul(...)'
Нам не удалось добиться
совместной работы
readline
с потоками MIT-pthreads
(это не является необходимым, но
для кого-то может представлять
интерес).
Вам потребуются следующие средства:
Компилятор VC++ 6.0 (усовершенствованный с помощью служебных пакетов 4 SP или 5 SP и пакета предварительной обработки) Пакет предварительной обработки необходим для макроассемблера. Более подробная информация находится на: http://msdn.microsoft.com/vstudio/sp/vs6sp5/faq.asp.
Дистрибутив исходного кода MySQL для Windows, который может быть загружен с http://www.mysql.com/downloads/.
Сборка MySQL
Создайте рабочий каталог (т.е.
workdir
).
Распакуйте дистрибутив исходного кода в вышеупомянутом каталоге.
Запустите компилятор VC++ 6.0.
В меню File
выберите
Open Workspace
.
Откройте рабочую область
mysql.dsw
, находящуюся в
рабочем каталоге.
В меню Build
выберите
подменю Set Active Configuration
.
Выберите в появившемся окне
mysqld
- Win32 Debug
и нажмите OK
.
Нажмите клавишу F7
,
чтобы начать процесс построения
отладочных версий сервера,
библиотек и некоторых
клиентских приложений.
По окончании компиляции скопируйте библиотеки и исполняемые файлы в отдельный каталог.
Тем же способом скомпилируйте рабочие версии (релизы), которые вам нужны.
Создайте каталог для всего, что
нужно MySQL, т.е. c:\mysql
Из каталога workdir
скопируйте в каталог
c:\mysql
следующие
подкаталоги:
Data (данные)
Docs (документация)
Share (совместно используемые ресурсы)
Создайте каталог
c:\mysql\bin
и скопируйте в
него все скомпилированные перед
этим серверы и клиенты.
При желании можете также создать
каталог lib
и
скопировать в него
скомпилированные ранее
библиотеки.
Произведите очистку, используя Visual Studio.
Установите и запустите сервер тем же способом, что и для бинарного дистрибутива для Windows (see Раздел 2.1.2.2, «Подготовка конфигурации MySQL для Windows»).
После установки MySQL (из бинарного дистрибутива или исходного кода) необходимо проинициализировать таблицы привилегий, запустить сервер и убедиться, что сервер работает нормально. Можно также организовать автоматический запуск и остановку сервера, когда операционная система соответственно начинает и прекращает работу.
Обычно при установке из исходного кода для установки таблиц привилегий и запуска сервера нужно выполнить следующие команды:
shell>./scripts/mysql_install_db
shell>cd mysql_installation_directory
shell>./bin/safe_mysqld --user=mysql &
Для бинарного дистрибутива (но не для пакетов RPM или pkg) сделайте так:
shell>cd mysql_installation_directory
shell>./scripts/mysql_install_db
shell>./bin/safe_mysqld --user=mysql &
или
shell> ./bin/mysqld_safe --user=mysql &
Если вы используете MySQL 4.x.
Эти операции создают базу данных
mysql
, которая будет
поддерживать все привилегии
доступа к базе данных, базу данных
test
, которую можно
использовать для тестирования MySQL, а
также записи привилегий для
пользователя, который запускает
mysql_install_db
и для
пользователя root
(без
каких-либо паролей). При этом также
запускается сервер mysqld
.
mysql_install_db
не
перезаписывает старые таблицы
привилегий, так что ее запуск будет
безопасным в любом случае. Если вам
не нужна база данных test
,
ее можно удалить с помощью
mysqladmin -u root drop test
.
Тестирование проще всего выполнить
из каталога наивысшего уровня
дистрибутива MySQL. Для бинарного
дистрибутива таковым является ваш
каталог инсталляции (обычно
что-нибудь вроде
/usr/local/mysql
). Для
дистрибутива в виде исходного кода
это - главный каталог вашего набора
исходных кодов MySQL.
В командах, представленных в
настоящем разделе и последующих
подразделах, BINDIR
представляет собой путь к тому
местоположению, где
устанавливаются программы вроде
mysqladmin
и safe_mysqld
.
Для бинарного дистрибутива это
каталог bin
внутри
дистрибутива. Для дистрибутива в
виде исходного кода BINDIR
может представлять собой
/usr/local/bin
, если при
запуске configure
не указан
иной, чем /usr/local
инсталляционный каталог.
EXECDIR
- место, где
устанавливается сервер
mysqld
. Для бинарного
дистрибутива это то же самое, что и
BINDIR
. Для дистрибутива в
виде исходного кода EXECDIR
может представлять собой
/usr/local/libexec
.
Подробное описание тестирования:
Если необходимо, запустите сервер
mysqld
и установите
исходные таблицы привилегий MySQL,
содержащие те привилегии, которые
определяют, каким способом
пользователям разрешено
подключаться к серверу. Обычно
это делается с помощью скрипта
mysql_install_db
:
shell> scripts/mysql_install_db
Как правило, mysql_install_db
требует запуска только первый раз
при установке MySQL. Таким образом,
если производится модернизация
существующей установки, то данный
этап можно пропустить (однако
скрипт mysql_install_db
совершенно безопасен для
использования и не обновляет
никаких уже существующих таблицы;
поэтому если у вас нет
уверенности в том, как поступать,
то всегда можно запустить
mysql_install_db
). Скрипт
mysql_install_db
создает шесть
таблиц (user
, db
,
host
, tables_priv
,
columns_priv
, and func
)
в базе данных mysql
.
Описание исходных привилегий
дается в разделе See
Раздел 4.3.4, «Задание изначальных привилегий MySQL». Если в двух
словах, то эти привилегии
позволяют пользователю root MySQL
делать все, что угодно, и любому
пользователю позволяют создавать
или использовать базы данных с
именем test
или
начинающимся с test_
. Если
таблицы привилегий не
установлены, то в системном
журнале при запуске сервера
появится следующая ошибка:
mysqld: Can't find file: 'host.frm'
Такая ошибка может появиться и в
случае бинарного дистрибутива
MySQL, если вы не начали работу MySQL с
точного выполнения команды
./bin/safe_mysqld
! See
Раздел 4.7.2, «safe_mysqld
, оболочка mysqld
». Возможно, вам
потребуется запускать
mysql_install_db
как
root
. Однако при желании
вы можете запускать сервер MySQL как
непривилегированный
(не-root
) пользователь,
при условии, что этот
пользователь может только читать
файлы из каталога базы данных и
записывать в него файлы.
Инструкции по запуску MySQL в
качестве непривилегированного
пользователя даются в разделе See
Раздел A.3.2, «Запуск MySQL от обычного пользователя». Если
возникнут проблемы с
mysql_install_db
, обращайтесь к
разделу See Раздел 2.4.1, «Проблемы при запуске mysql_install_db
».
Дистрибутив MySQL обеспечивает
несколько вариантов запуска
скрипта mysql_install_db
:
Чтобы изменить исходные
привилегии, которые
устанавливаются в таблицах
привилегий, вам, возможно,
потребуется отредактировать
mysql_install_db
перед
запуском. Это полезно, если
нужно установить MySQL на
нескольких машинах с одними и
теми же привилегиями. В таком
случае вам, возможно,
потребуется только добавить
несколько дополнительных
команд INSERT
к таблицам
mysql.user
и
mysql.db
!
Если необходимо изменить
записи в таблицах привилегий
после их установки, то можно
запустить mysql_install_db
,
затем использовать mysql -u root
mysql
для доступа к таблицам
привилегий как пользователь MySQL
с привилегиями root
и
применять команды SQL для
модификации таблиц привилегий
напрямую.
Можно также создать таблицы
привилегий полностью заново
после того, как они были уже
созданы. Это можно сделать
после установки таблиц, а затем
воссоздать после
редактирования
mysql_install_db
.
Более подробная информация о приведенных выше альтернативах находится в разделе See Раздел 4.3.4, «Задание изначальных привилегий MySQL».
Запустите сервер MySQL как показано ниже:
shell>cd mysql_installation_directory
shell>bin/safe_mysqld &
Если возникнут проблемы с запуском сервера, See Раздел 2.4.2, «Проблемы при запуске сервера MySQL».
Используйте mysqladmin
для
проверки, что сервер работает.
Простую проверку того, что сервер
функционирует и отвечает на
подключения, обеспечивают
следующие команды:
shell>BINDIR/mysqladmin version
shell>BINDIR/mysqladmin variables
Вывод из mysqladmin version
будет иметь небольшие различия в
зависимости от используемой
платформы и версии MySQL, но должен
быть похож на приведенный ниже:
shell> BINDIR/mysqladmin version
mysqladmin Ver 8.14 Distrib 3.23.32, for linux on i586
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license.
Server version 3.23.32-debug
Protocol version 10
Connection Localhost via Unix socket
TCP port 3306
UNIX socket /tmp/mysql.sock
Uptime: 16 sec
Threads: 1 Questions: 9 Slow queries: 0
Opens: 7 Flush tables: 2 Open tables: 0
Queries per second avg: 0.000
Memory in use: 132K Max memory used: 16773K
Чтобы получить представление о
том, что еще можно делать с
помощью BINDIR/mysqladmin
,
запустите эту команду с опцией
--help
.
Убедитесь, что можете остановить сервер:
shell> BINDIR/mysqladmin -u root shutdown
Убедитесь, что можете
перезапустить сервер. Делайте
это, используя safe_mysqld
или путем прямого вызова
mysqld
. Например:
shell> BINDIR/safe_mysqld --log &
Если safe_mysqld
терпит
неудачу, попытайтесь запустить
команду из каталога установки MySQL
(если вы уже не там). Если команда
по-прежнему не работает, см.
раздел See Раздел 2.4.2, «Проблемы при запуске сервера MySQL».
Запустите несколько простых тестов, чтобы убедиться, что сервер работает. Вывод должен быть похож на приведенный ниже:
shell>BINDIR/mysqlshow
+-----------+ | Databases | +-----------+ | mysql | +-----------+ shell>BINDIR/mysqlshow mysql
Database: mysql +--------------+ | Tables | +--------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +--------------+ shell>BINDIR/mysql -e "SELECT host,db,user FROM db" mysql
+------+--------+------+ | host | db | user | +------+--------+------+ | % | test | | | % | test_% | | +------+--------+------+
В подкаталоге sql-bench
каталога установки MySQL находится
набор тестов производительности,
который можно использовать для
сравнения работы MySQL на различных
платформах. Каталог
sql-bench/Results
содержит
результаты большого количества
запусков для различных баз данных
и платформ. Чтобы запустить все
тесты, выполните следующие
команды:
shell>cd sql-bench
shell>run-all-tests
Если у вас отсутствует каталог
sql-bench
, то, вероятно, вы
работаете с пакетом RPM для
бинарного дистрибутива (в пакеты
RPM с дистрибутивами исходного
кода включается каталог тестов
производительности). В этом
случае прежде чем использовать
набор тестов производительности,
необходимо его установить.
Начиная с версии MySQL 3.22,
существуют RPM-файлы тестов
производительности,
mysql-bench-VERSION-i386.rpm
,
которые содержат код тестов
производительности и данные. Имея
дистрибутив исходного кода, можно
также запустить эти тесты в
подкаталоге tests
.
Например, чтобы запустить
auto_increment.tst
, сделайте
следующее:
shell> BINDIR/mysql -vvf test < ./tests/auto_increment.tst
Результаты будут выводиться в
файл ./tests/auto_increment.res
.
Скрипт mysql_install_db
предназначен только для создания
новых таблиц привилегий MySQL. Он не
влияет ни на какие другие данные! А
если таблицы привилегий MySQL уже
установлены, этот скрипт ничего не
будет делать!
Для того чтобы создать таблицы
привилегий заново, необходимо
остановить сервер mysqld
,
если он работает, и затем выполнить
что-нибудь вроде:
mv mysql-data-directory/mysql mysql-data-directory/mysql-old mysql_install_db
В этом разделе перечислены
проблемы, с которыми можно
столкнуться при запуске
mysql_install_db
:
mysql_install_db
не устанавливает таблицы
привилегий
Может оказаться, что
mysql_install_db
не в
состоянии установить таблицы
привилегий и заканчивает свою
работу после вывода следующих
сообщений:
starting mysqld daemon with databases from XXXXXX mysql daemon ended
В таком случае необходимо очень
тщательно изучить системный
журнал! Этот журнал должен
находиться в каталоге
XXXXXX
, указанном в
данном сообщении об ошибке. В нем
содержится информация о том,
почему не запустился
mysqld
. Если вам не
удалось разобраться в том, что
произошло, при посылке отчета об
ошибке включите в него данный
журнал, используя
mysqlbug
! См.раздел See
Раздел 1.8.1.3, «Как отправлять отчеты об ошибках или проблемах».
Уже существует
работающий демон
mysqld
В таком случае вам вообще не
следует запускать
mysql_install_db
. Скрипт
mysql_install_db
должен
запускаться только однажды при
установке MySQL первый раз.
При работающем
демоне mysqld
установка
второго демона не работает
Это может случиться, когда уже
существует установленный сервер
MySQL, но вы хотите произвести
новую инсталляцию в другом месте
(например, для тестирования или,
возможно, вам просто требуется
запустить две инсталляции в одно
и то же время). Вообще говоря,
такая проблема, которая
возникает при попытке запустить
второй сервер, заключается в том,
что второй сервер пытается
использовать тот же сокет и порт,
что и старый. В этом случае вы
можете получить следующее
сообщение об ошибке: Can't start
server: Bind on TCP/IP port: Address already in
use
или Can't start server: Bind on
unix socket...
. See
Раздел 4.1.3, «Установка нескольких серверов на один компьютер».
Если у вас нет доступа для
создания файла сокета в принятом
по умолчанию месте (в
/tmp
) или разрешения
создавать временные файлы в
каталоге /tmp
, то вы
получите ошибку при запуске
mysql_install_db
или при
запуске или использовании
mysqld
. Необходимо
указать другой каталог для
сокета и временных файлов
следующим образом:
shell>TMPDIR=/some_tmp_dir/
shell>MYSQL_UNIX_PORT=/some_tmp_dir/mysqld.sock
shell>export TMPDIR MYSQL_UNIX_PORT
See Раздел A.4.5, «Как защитить или изменить сокет-файл MySQL /tmp/mysql.sock
». Путь
some_tmp_dir
должен
указывать на некоторый каталог,
для которого у вас есть доступ
для записи. See
Приложение F, Переменные окружения. После
этого у вас должна появиться
возможность запустить
mysql_install_db
и начать
работу сервера с помощью
следующих команд:
shell>scripts/mysql_install_db
shell>BINDIR/safe_mysqld &
Немедленный
аварийный отказ
mysqld
Если вы работаете на версии RedHat
5.0 с версией glibc
более
старой, чем 2.0.7-5, следует
позаботиться о том, чтобы
установить все патчи для
glibc
! В архивах рассылки
MySQL имеется большое количество
писем об этом. Ссылки на архивы
писем доступны в онлайновом
режиме на
http://lists.mysql.com/.
Обращайтесь также к разделу See
Раздел 2.6.1, «Примечания к Linux (Все версии Linux)». Можно также
запустить mysqld
вручную,
используя опцию
--skip-grant-tables
, и
самостоятельно добавить
информацию о привилегиях, при
помощи mysql
:
shell>BINDIR/safe_mysqld --skip-grant-tables &
shell>BINDIR/mysql -u root mysql
Из mysql
в ручном режиме
выполните команды SQL в
mysql_install_db
.
Удостоверьтесь, что после этого
вы запустили mysqladmin
flush-privileges
или mysqladmin
reload
, чтобы сервер
перегрузил таблицы привилегий.
Если вы собираетесь использовать
таблицы, поддерживающие
транзакции (InnoDB, BDB), следует прежде
всего создать файл my.cnf
и установить опции запуска для тех
типов таблиц, с которыми
планируется работать. See
Глава 7, Типы таблиц MySQL.
В общем случае сервер
mysqld
запускается одним из
следующих способов:
Вызовом mysql.server
. Этот
скрипт используется
преимущественно для запуска и
останова системы. Более подробно
он описан в разделе See
Раздел 2.4.3, «Автоматический запуск и остановка MySQL».
Вызовом команды
safe_mysqld
, которая
определяет соответствующие
опции для mysqld
и затем
запускает mysqld
с этими
опциями. See Раздел 4.7.2, «safe_mysqld
, оболочка mysqld
».
Относительно Windows NT/2000/XP просьба обращаться к разделу See Раздел 2.6.2.2, «Запуск MySQL на Windows NT, 2000 или XP».
Вызовом mysqld
напрямую.
При своем запуске демон
mysqld
изменяет свой
каталог на каталог данных
(datadir
). В нем он ожидает
найти журнальные файлы, файлы pid (ID
процессов) и собственно базы
данных.
Местоположение каталога данных
жестко устанавливается при
компиляции дистрибутива. Однако
если mysqld
ожидает найти
каталог данных где-либо в другом
месте, а не там, где он
действительно расположен в вашей
системе, то демон mysqld
не
будет работать правильно. Если
есть проблемы с неправильными
путями, то, вызывая mysqld
с
опцией --help
, вы можете
найти информацию о том, что
разрешают опции mysqld
и
какие установки путей приняты по
умолчанию. Можно переопределить
установки по умолчанию указанием
правильных имен путей как
аргументов mysqld
в
командной строке (эти опции также
можно использовать с
safe_mysqld
).
Обычно требуется указывать
mysqld
только каталог, в
котором устанавливается MySQL. Это
можно сделать с помощью опции
--basedir
. Можно также
использовать --help
для
проверки эффекта от изменения
опций путей (учтите, что
--help
должна быть последней
опцией в команде mysqld
).
Например:
shell> EXECDIR/mysqld --basedir=/usr/local --help
После определения требуемых
установок путей запускайте сервер
без опции --help
.
Какой бы метод вы ни использовали
для запуска сервера, если его
неудачный запуск завершается
корректно, то проверьте журнальный
файл, чтобы узнать, почему запуск
происходит неудачно. Журнальные
файлы находятся в каталоге данных
(обычно /usr/local/mysql/data
для
бинарного дистрибутива,
/usr/local/var
для
дистрибутива исходного кода и
\mysql\data\mysql.err
под Windows). В
каталоге данных следует искать
файлы с именами в виде
host_name.err
и
host_name.log
, где
host_name
- имя вашего
серверного хоста. Затем проверьте
последние несколько строк этих
файлов:
shell>tail host_name.err
shell>tail host_name.log
В журнальном файле нужно искать что-нибудь похожее на следующее:
000729 14:50:10 bdb: Recovery function for LSN 1 27595 failed 000729 14:50:10 bdb: warning: ./test/t1.db: No such file or directory 000729 14:50:10 Can't init databases
Это означает, что вы не запустили
mysqld
с --bdb-no-recover
и база данных Berkeley DB нашла что-то
ошибочное в своих журнальных
файлах при попытке восстановить
ваши базы данных. Чтобы иметь
возможность продолжить,
необходимо переместить старый
журнальный файл Berkeley DB из каталога
баз данных в некоторое другое
место, где позже можно будет
изучить его. Журнальные файлы
имеют имена log.0000000001
и
т.д.; номер возрастает при каждом
запуске.
Если вы запускаете mysqld
работает с поддержкой таблиц BDB и
mysqld
при старте выводит
дамп оперативной памяти (coredump), то
причиной этого это могут быть
какие-либо проблемы с журналом
восстановления BDB. В этом случае
можно попробовать запуск mysqld с
--bdb-no-recover
. Если это
помогает, то следует удалить все
файлы log.*
из каталога
данных и попробовать запустить
mysqld
опять.
Если выдается приведенная ниже
ошибка, то это означает, что
некоторая другая программа (или
другой сервер mysqld
) уже
использует данный TCP/IP порт или
сокет, на которых mysqld
пытается слушать:
Can't start server: Bind on TCP/IP port: Address already in use или Can't start server : Bind on unix socket...
Чтобы убедиться, что другого
работающего сервера mysqld
нет, используйте ps
. Если
другой работающий сервер не
найден, то можно попробовать
выполнить команду telnet your-host-name
tcp-ip-port-number
и нажать пару раз
клавишу ``Enter''. Если вы не получаете
сообщения об ошибке вроде
следующего telnet: Unable to connect to
remote host: Connection refused
, значит, что
порт TCP/IP порт, который
mysqld
пытается
использовать, уже занят другой
программой. Раздел 2.4.1, «Проблемы при запуске mysql_install_db
» и
раздел See Раздел 4.1.4, «Запуск нескольких серверов MySQL на одном компьютере».
Если mysqld
в настоящее
время работает, то можно найти
используемые им установки путей
при помощи следующей команды:
shell>mysqladmin variables
или shell>mysqladmin -h 'your-host-name' variables
Если при запуске mysqld
вы
получили ошибку Errcode 13
,
что значит Permission denied
, это
означает, что у вас не было прав
читать/создавать файлы в базе
данных MySQL или в журнальном
каталоге. В таком случае вам
следует либо запускать
mysqld
как пользователь
root
, либо изменить права
доступа к упомянутым файлам и
каталогам, чтобы иметь права
использовать их.
Если safe_mysqld
запускает
сервер, но вы не можете
подключиться к нему, то следует
убедиться, что в /etc/hosts
есть запись, которая выглядит
примерно так:
127.0.0.1 localhost
Эта проблема возникает только в системах, не имеющих рабочей библиотеки потоков, и для которых MySQL следует конфигурировать для использования потоков MIT-pthreads.
Если вы не можете запустить
mysqld
, то можно
попробовать создать
трассировочный файл, чтобы
обнаружить данную проблему. See
Раздел E.1.2, «Создание трассировочных файлов».
При использовании таблиц InnoDB следует указывать опции запуска, специфические для InnoDB. See Раздел 7.5.2, «Параметры запуска InnoDB».
При использовании таблиц BDB (Berkeley DB)
необходимо хорошо знать различные
специфические для BDB опции запуска.
See Раздел 7.6.3, «Параметры запуска BDB
».
Скрипты mysql.server
и
safe_mysqld
могут применяться
для автоматического запуска
сервера во время загрузки
операционной системы. Скрипт
mysql.server
можно также
использовать для остановки
сервера.
Чтобы применять скрипт
mysql.server
для запуска или
остановки сервера, его следует
вызывать с аргументами
start
или stop
соответственно:
shell>mysql.server start
shell>mysql.server stop
mysql.server
можно найти в
подкаталоге share/mysql
инсталляционного каталога MySQL или
в каталоге support-files
набора исходных кодов MySQL.
Перед тем как скрипт
mysql.server
запустит сервер,
он изменяет данный каталог на
инсталляционный каталог MySQL, затем
вызывает safe_mysqld
.
Возможно, понадобится
отредактировать скрипт
mysql.server
, если бинарный
дистрибутив установлен вами не в
стандартном месте. Модифицируйте
его, указав cd
в
соответствующий каталог перед тем,
как он запустит safe_mysqld
.
Если вы хотите запустить сервер от
определенного пользователя, то
добавьте соответствующую строку
user
к файлу
/etc/my.cnf
как показано
далее в этом разделе.
mysql.server stop
останавливает
сервер путем посылки ему сигнала.
Можно остановить сервер вручную -
при помощи команды mysqladmin
shutdown
.
Вам следует добавить эти команды
запуска и остановки в
соответствующее место в файлах
/etc/rc*
, если вы хотите
автоматически запускать MySQL на
вашем сервере.
На современных поставках Linux,
достаточно скопировать файл
mysql.server
в каталог
/etc/init.d
(или
/etc/rc.d/init.d
на более
старших системах Red Hat). После этого,
выполните такую команду, чтобы
включить автоматический запуск MySQL
при загрузке системы:
shell> chkconfig --add mysql.server
В качестве альтернативы, в
некоторых ОС также используются
/etc/rc.local
или
/etc/init.d/boot.local
для
запуска дополнительных сервисов
при загрузке. Для того, чтобы MySQL
стартовал с использованием этого
метода, вы можете добавить нечто
вроде этого к указанным файлам:
/bin/sh -c 'cd /usr/local/mysql ; ./bin/safe_mysqld --user=mysql &'
Можно также добавить опции для
скрипта mysql.server
в
глобальный файл /etc/my.cnf
.
Типовой файл /etc/my.cnf
может выглядеть следующим образом:
[mysqld] datadir=/usr/local/mysql/var socket=/var/tmp/mysql.sock port=3306 user=mysql [mysql_server] basedir=/usr/local/mysql
Скрипт mysql.server
понимает
следующие опции: datadir
,
basedir
и pid-file
.
В таблице представлены группы опций, которые каждый из перечисленных запускающих скриптов читает из файлов опций:
Скрипт | Группы опций |
mysqld | mysqld и server |
mysql.server | mysql.server , mysqld , и
server |
safe_mysqld | mysql.server , mysqld , и
server |
Файлы MySQL, содержащие структуру и
данные, всегда можно перемещать
между различными версиями одной и
той же архитектуры, если
используется одна и та же базовая
версия MySQL. В настоящее время
базовой является версия с номером 3.
При изменении кодировки во время
работы MySQL (при этом также может
измениться порядок сортировки)
необходимо запустить myisamchk -r -q
--set-character-set=charset
на всех
таблицах. В противном случае
индексы могут сортироваться
неправильно.
В случае недоверия к новым версиям
всегда можно переименовать старую
версию mysqld
, изменив ее имя
на что-нибудь вроде
mysqld-old-version-number
. Если после
этого mysqld
новой версии
начнет вести себя не так, как
ожидалось, то можно просто
прекратить работу новой версии и
перезапустить старую!
И, разумеется, при модернизации следует также сделать резервную копию старых баз данных.
После модернизации у вас могут
возникнуть проблемы с
перекомпилированными клиентскими
программами, такими как Commands out
of sync
, или произойти
неожиданная смерть приложения
(coredump). Причина может быть в том, что
при компиляции программ были
использованы старые заголовочные
или библиотечные файлы. В этом
случае следует проверить даты
создания вашего файла
mysql.h
и библиотеки
libmysqlclient.a
, чтобы
убедиться, что они из нового
дистрибутива MySQL. Если это не так, то
программы нужно перекомпилировать!
Если возникнут проблемы с запуском
нового сервера mysqld
или
трудности с подключением без
пароля, то нужно убедиться, что вы не
используете старый файл
my.cnf
из старой установки!
Это можно проверить с помощью
program-name --print-defaults
. Если эта
программа вместо имени программы
выводит что-нибудь иное, то ваш файл
my.cnf
является активным и
оказывает влияние на ход событий!
Каждый раз при установке нового
релиза MySQL есть смысл создавать
наново и переустанавливать
дистрибутив Msql-Mysql-modules
,
особенно если вы замечаете симптомы
того, что ваши скрипты DBI
умирают после модернизации MySQL.
В общем случае, чтобы выполнить апгрейд до версии 4.1 с более ранней:
Выполните скрипт
mysql_fix_privilege_tables
для
создания новых столбцов с
паролями. Это нужно для более
безопасной работы с паролями.
Далее идет более подробный список вещей, на которые следует обратить внимание при апгрейде на 4.1:
Функции, что возвращают DATE, DATETIME или TIME теперь фиксируются при отдаче клиенту.
mysql>SELECT cast("2001-1-1" as DATE)
->'2001-01-01'
Все столбцы и таблицы теперь
имеют кодировку, которая
показывается в выводе SHOW
CREATE TABLE
и mysqldump
.
(MySQL 4.0.6 и выше могут читать новые
dump-файлы, но не прежние версии
MySQL).
Временная метка (timestamp) теперь
возвращается как строка вида
'YYYY-MM-DD HH:MM:DD'
. Если вы
хотите получить ее как число -
вам следует добавить +0
к столбцу timestamp
.
Различные длины временных меток
теперь не поддерживаются.
Если вы используете несколько
серверов на одном и том же
компьютере под управлением Windows,
вам следует использовать
различные опции
--shared_memory_base_name
.
Обратите
внимание что формат
определения таблиц (.frm) поменялся в
4.1. MySQL 4.0.11 может читать новый файл
формата, но более старые версии не
могут. Если вам нужно перемещать
таблицы с 4.1 на более старшие
версии MySQL, вам следует
использовать mysqldump
. See
Раздел 4.8.5, «mysqldump
, Получение дампов данных и структуры таблицы».
В общем случае, вот что вам следует сделать для апгрейда к версии 4.0 с более старой:
Выполнить скрипт
mysql_fix_privilege_tables
чтобы
добавить новые привилегии и
возможности в таблицы
привилегий MySQL.
Подредактировать скрипты запуска MySQL или конфигурационные файлы, чтобы не использовать устаревшие опции, описанные ниже.
Преобразовать ваши старые
ISAM-файлы в формат MyISAM следующей
командой: mysql_convert_table_format
база данных
. Обратите
внимание, это нужно делать
только если все таблицы в базе
данных являются таблицами типа
ISAM или MyISAM. Если это не тот
случай, вам тогда следует
выполнить ALTER TABLE
имя_таблицы TYPE=MyISAM
для всех
ISAM-таблиц.
Удостоверьтесь, что у вас не
используется никакие клиенты
MySQL, что используют динамические
библиотеки (например, Perl
Msql-Mysql-modules). Если у вас есть такие,
их следует перекомпилировать,
т.к. структуры в
libmysqlclient.so
изменились.
MySQL 4.0 будет работать, даже если вы не выполните эти шагы, но у вас не будет возможности использовать новые привилегии, которые предоставляет MySQL 4.0, и у вас могут быть проблемы при дальнейшем апгрейде к 4.1 или более новым серверам. Формат ISAM в MySQL 4.0 все еще работает, но он уже морально устарел и будет исключен из версии MySQL 5.0.
Старые клиенты должны работать с версией 4.0 без каких-либо проблем.
И даже если вы выполните эти шаги, вы сможете произвести даунгрейд к MySQL 3.23.52 или более новой, если у вас возникнут проблемы с MySQL 4.0. В этом случае вам потребуется выполнить mysqldump на всех таблицах, использующих полнотекстовые индексы и восстановить dump на версии 3.23. Причина заключается в том, что MySQL 4.0 использует новый формат полнотекстовых индексов.
Вот подробный список того, на что следует обратить внимание при апгрейде к 4.0:
В MySQL 4.0 появилось большое
количество новых привилегий в
таблице mysql.user
. See
Раздел 4.3.1, «Синтаксис команд GRANT
и REVOKE
».
Чтобы заставить эти новые
привилегии работать, следует
запустить скрипт
mysql_fix_privilege_tables
. До
выполнения данного скрипта у
всех пользователей будут
привилегии SHOW DATABASES
,
CREATE TEMPORARY TABLES
и LOCK
TABLES
. Значения для
ral">CREATE TEMPORARY
mld
или
"literal">RE убедйдт пробss="l бвой являдок сортко Чтобы заставить более ст.2е
M: \mysqтьdiv cl
сд
m( же
че - \mysqтьdiиз
пи, которые
прет переиз
пичитаѸ веѽче данныѴт атьреSAM-тй в
v cl
файется в вытредактиdump
.
PLICATION SLAVeral">myется в (ограммump.
FIteral">my>
Временная меткака BDBmysql_fix_privilege_tablesчн ых по>
Враставить с Скрипт<зan class="bold">Группы опций.s="literal">mysql.server mysql.server, myseral">mysql.server
query_cachd_st; mysql.server, myseral">mysql.server
о
rdbufferEMPзl">mysql.server, myseral">mysql.server
о
rdrndbufferEMPзl">mysql.server, myseral">mysql.server
sort_bufferEMPзl">mysql.server, myseral">mysql.server
warn2. sEMPзl">mysql.server, myseral">mysql.server
err-logEMPзl">mysql.server_namepid(SAM-т».
ее_eaferal">my>div>
See , измениЂо
rdbufferEMPзiteral">CREATE TEMPORARY TABLES
Далнная метка командйу-Ђаблиѵ.
ы сѵткатарую
ве
.
Врable border="1">
Скрипт<зan class="bold">Группы опций.s="literal">mysql.server у_BIG_я для
l">mysql.server, myseral">mysql.server
у_LOW_PRIORITY_UPgt; ля
l">mysql.server, myseral">mysql.server
у_MAX_JOIN_SIZEля
l">mysql.server, myseral">mysql.server
QUERY_CACHE_селя
l">mysql.server, mys>
See mysqldump
. See
SETя меткGLOBALу_SLAVe_SKIP_COUNTER=#EMPзбограммл 4.8.5, «<ения данноSETу_SLAVe_SKIP_COUNTER=#EMPз
Временная меткакарую
ве
="lite
"literal">BDBmysql_fix_privilege_tableslibmysqlclient.so<_nameremot-loc.2. ыпо"filename">libmysqlclient.so<_name,
MAS_тSTATUeral">LOCзвращается как строка в лямеlass ть ,
SLAVeSTATUeral">LOCк строка вЂь скрип лямеlass зуется окрип тя в
ѵ.
т ISAM в Mьзуется ниоо Seысл нтскил Временная метк/pre>LOCк пароархиаие опцилЋубцоЎ,
сл у
ануешрых барипрейд иноел и их же исполdatabase-ка (оы з ол чн>
Временная меткаteral">time/code>
умираюOUiteral">mysqlя меткATABASES
,
FLOATral">LOCзвращ ло -
скотие опцитаATABASES,
UNSIGNED сл х class=о вѰется в (веѽче ATABASES,
UNSIGNED сется ниги нтски myлQL
:
пробss="lteral">timс>
Временная меткATABASES,
ORDтBY"lteral">tа DESCral">LOCзвращается к непиманькся вe/code>
умираNULL сется ниатары
теQL 4.0ь;иh3> слѸтатьзуется ниеименode cl.ь пгрей: ра.11ется как а
ве свег оге. ы сѵткатю
yльей Временная меткATABASES,
INDEX.
рни 2пробss="lteral">tim че (ode>
умираNullral">mysqlя меткATABASES,
I/a><_ EMPз)ьто е более сюч Временная меткATABASES,
CHECKl">mysqld, и
SIGNED сiteral">CREATE TEMPORARY TABLESmysqlя меткATABASES,
LOCALруSTAMPral">LOCзвращается ками типа
овпию стнтскими
ется к ски>
Далнная меткаеlass ми.
аблиц.
вкапи)
табстемыазыfilename">libmysqlclient.so,
|l">mysqld, и
term" сiteral">CREATE TEMPORARY TABLESmysqld, и
tgt;>l">mysqsqlя меткATABASES,
~ral">LOCдйдт ным и
PORARYlibmyые
сов.
едclass=ько пѽется кѼеlass
ysql-database-administratioraterenceинde><-funcame<парампус вращаюторые
yльеа
lass="fнтаксис путровращаюторые
yльеа
lass="f Чтобы земенная меткAруппы опций,
UNSIGNED с, из веPORARY ски>,ц.
вк он QL.
\mysqтьSQL 4.0,о са базосто ми. Это ну низув
о
нется ниl опц м ию
огкся вe/ует добQL 5е теающих
teral">tim ые длиныими
ямеl/p><ь с поЋе длиныteral">кходиЋ
лнотекстite
lename">libmysqlclient.so<_nameBDB. See
ы хоsql-database-administratioraterenceинde><-funcame<парампус вращаюторые
yльеа
lass="fнтаксис путровращаюторые
yльеа
lass="f Чтобы земенная меткMySQL
ьзовать устаревшие опцserver, mysqsqlATABASES
,
INSTR(,
TRCMP()l">mysqsqды <ого скрип ется к рип Cдйдт LOCдйдт ется как строка в о, чи воч mysqsq"literal">safe_па
пробss="lм слевсег ml.user
. See
INSERT INTOя метк... TE)mysqsqа ,
IGNOREl">mysqsq"lименотаого кр п с оь более ст.1ал с испкаер вручну m( ,пользова,ц.
шидан вер От)иlсы могут спкае слек возниATABASES
,
IGNOREl">mysqsqзуется ниа у
ымлучадли Временная меткаeral">mysql.server
пониcode class="literaц.
вк ою
ве
l-Mysql-modules
,
ее_eaferal">myые длиныже исповой являм
з ваme">\mysqтьк паmysqldump. See
code class="litera ilename">libmyclass="literal">Msql-M
, чи иблирых бариа
.
e, изменив ее_eaferal">myые дли Временная меткаterжны фращаютC APIteral">mysql_fix_privilege_tablesCREATE TEMPORARY TABLES исте эти шзуется нЁерв т. т н пробss="ATABASES,
CFLAGS=-DUSE_OLD_FUNCTIONeral">LO).ь раммл 4.8.5, «ать,
ыли
уеш ы сѵткатарсе
е прх аботаратTEMPORARY. See
MYу_FIELD сется ниькся вe/code>
умираlength сел 4.8.5, «<ения данноcax_length севки воилиров.5, «<ения данноunsigned in таблиц<ения данноunsignedров.5, «lo. ыполнлее
и длѻсервliteral">sвшие опцльнейше, браии
Mетодрипты mysql_fix_privilege_tablesи f()l">mysqsqроблемы пv terи в нтск> иаппы бlass="liется к т чтоо
Если вы используете и ить < то зарверооч мпилиров устаревшие опцserver
, mysqm" na (циирверльзоватserver
, mysq rоел и Ѓется нивч <ть
тоode>
умираюE)my>
Временная меткады . See
TRUNCassя метк"literal">mysqlниATABASES
,
DROP e/ует доб TABLES
. s="literal">LOCK
ниЂ class= ss="option">--shareи шчисло -
ся сле="programlisting">mеменная меткMySQL
class=о Ѐом 3кся в
lteral">tim иц.
server
, REVO ить libmyclта у
ы моровode clт, но он иЃже морально
Msql-My рип deел пробss="lм сче ,
OPENя метк"literal">myчадли Временная метка .
блиот работать с
PORARYmysqsqlл 4.8.5, «<ения данноco th Еend()l">mysqsql-database-administratioлиsинth Еed-лиsарам8.l">mуст столбlх аботаирыыводит чтЃde classteralsойнтаксис 8.l">рост столбlх аботаирыыводит чтЃde classteralsой Чтобы земенная меткMды <ькkeley Dать,
т.к. стрѹ:
умираюD::co strong ется в и ить mysqlие опцserver
,
умираюD сется нирые заголл оне.
,
drop_db()l">mysqые дли Временная метка рсии 4.0вump
.
AND(seedmysqые дли Временная метка lasѼеlass ые к строка ем ется в ATABASES
,
IFNULL(A,B)ral">LOCitся пр аие опцилЋубцоЎго
трибу
оыпасной раб"т чѸй" вы ат=о Ѐ lassоется в ATABASES,
Al">mysqsqlATABASES,
Bыполнки)
ется в бщка -ATABASES,
TRING сiteral">CREATE TEMPORARY TABLESmysqlниATABASES,
IteEG TEMPзdiv>
MySQL 4.0 будng="ru">
, , < котдачдераши старые
.
тдтарые заголооѾдераSо iина заключаыилЋубцоЎаблдераи, котспольз вилеЏново и пепа
проб lass="ode>
умирах
(те эти шзуетсяliteral">BDB fix_privilege_tablesLO).ьь сердераши старые
их слльз : e/ует дATABASES
,
A_таблMза . Есех
I нетсяIды
Выполнить скрипте
д,/dss="lсполdatabase-какакие клиентыая
mysql_fix_privilege_tablesmysqlниATABASES,
PAIаблEMPз
Временная меткады <ого скрип "="literal">e/ATABASES,
DROPя метк ных Ѿрлабликтуры в
<о с ля , чи ибли ется в а
.
ѷ в>< типа
ь, ѻриложеется в а
.
а,"lss="l na аЂь libmyclабли(е о2/ слѸтатьзраммы сѵткатпрверлчо имени пteral">mysql_fix_privilege_tables figureral">REVO iЃжаки тр>ктуры в
<.
п , my>
Временная меткATABASES
,
OPTIMIZs="literal">mysдйдт пробss="lже морае таблицe ISAM Јие опцserver
, estamp
.
A_таблral">REVOтTEMPORARY
e/ATABASES,
OPTIMIZsя метк"literal">mysqх пteral cl. вы
ISктуры в
<йдт teral">кходиЋицclта иг ны сѵткатeralsот по Временная меткКаботаATABASES,
ral">mysд и тоаал с испк
<йдт ыилЋубцоЎбя нтрчтLO).ьимиы
"l с поЋе длины ческий _nameremot-. Еd-commandsstrong ется в (ode>
умира-Gral">LO).ь же исполdatabase-к ы мор иэить с пдующral">sвшие опцльнейше шзнограмde clьрется в и Msql-Mysql-lссех по ss="lсполdatabase-каОбѵ
.
="literal">e/ лнотекстдерЂкаробблкSAM-literaleral!Кliteral">e/ует доболичесределена выde clт, но он иЃже моизвоз rр вч , mysq),
<йдт вилегии . See
0ral">REVOтTEMа уатие опцserver
, ,
Временная меткады <аблиц BDB (Berkeley Dпки)
mysql_ неп <го, чи би geаnется в и ить my,"lss="l nь, ѻѲDпки)
,
IFral">LOCзвращается ка игр,р эѾSо REVitся пр зуется нивие если вы
ерлнизув
о ется км слао ;Iдыя в
спользуЋе длины изув
е"lм сла q"literal">saтся окрипьнейше шнды
умира-1ral">REVOl server
, , ,
AUTO_INCREMEteral">REV зуется ни стаѱуату
ое
веp>, , и
DELAYED сiteral">CREATE TEMPORARY TABLES, и
END сiteral">CREATE TEMPORARY TABLES, и
INN TEMPзiteral">CREATE TEMPORARY TABLES, и
THEN слЈие опцserver
, дерЂкавпию стнтскими
ски>
Далнная меткATABASES,
FLOAT(X)ral">LOCдйдт мым и
PORARY
\mysqтьраЏеп таб
Временная меткады <
еым рип ется к, и
DECIMAL(length,decmysзвращается калѻсеѰывопы
Џcode эѾ , и
[[[[[H]H]H]H]MM]SS[.fra"titl] Временная меткATABASES,
LIKeral">mysдйдт бу
ется в а
ктуры в
ьеа
о, чи би динаая меткATABASES
,
= .аете и ить <ѳи.
убl с поЋе длинсерв т.ые
ихт н итаеаme">\mysqтATABASES
,
CXXFLAGS=-DLIKe_CMP_TOUPP TEMPзdiv>
MySQL нная метка ( При fix_privilege_tablesmysдйдт е длинсым и
оне игр, сегнного кр го, чи би OтTEMPORARY
,
CHECKя метк"literal">mysqlниATABASES,
coaracchkral">REVOтTEMPORARY,
у/code> и.MYI с>sqlATABASES
,
aracchkral">REется каQL
ольз sqlclient.so<,
у/code> и.IS >
Временная метка эти но>tараский ограмde clьается к mysqsq верии libmysqlclient.so<_namemysqlниATABASESmysqтTEMPORARYmysq Временная меткад вас не
отаереы <огтаe/ует добуращаѽиATABASES,
gt; _FORMAT()"literaldы ,
%"litera’ (Ѳрсии 4.0е PORARYBDB >
Временная меткATABASES,
code>. etch_fields_direc таблдйдт е длинсым и
оуращаѽиб(Ѹта е сl)ename">\mysqтьк строка в Обрв
бѰужн кATABASES,
MYу_FIELD сограммл 4.8.5, «<ения данноMYу_FIELD ст по Временная метквращаl"<ения данноcode>.num_fields(
умираMYу* (дйдт е длинс сгуращаы,
Msql апгндеется в <ения данноMYу_RES* сорнативы, PORARYmysq>
Временная метка рсии 4.0е но2 <ог иATABASES,
E)mysqsqдииsq"lименотаого к неп ими
.а эти нЇисло -
ого к неп ими
<ог иѲрсии 4.0,
GROUP BYral">mysqlниATABASES,
ORDтя меткBYral">myт по Временная метквращаlmATABASES,
SUM()ral">LOCдйдт ется как строка в server, REVOды < че4ст ется к .
Џше иц ,
AND I нется к
, и
ORral">LOC и
кся вcode ие опцserver, . See
NULL сограммл 4.8.5, «<ения данно0ral">RE.ь з ол сЁя оопцрии
е
Ms
,/dss="lсполdatabase-какакие клиентump
. See
NOeral">REV зется ниl Причиц.
server, , и
ORral">LO,"lss="l nь, шие опцserver
, , mysqsqlATABASES
,
RPAD()l">mysqется нивилеЏуs="lя нтл CRриинд ие
ограмde clь.
е опЕCRстолбlass="хпа
teral">tim eral" lassteral">CRATABASES,
gt; лбц,ьвие Msql-My Џco PORARYBие п и, коя и тоiteral">CR
Јагы, но у qldlссех PORARYRE.ье под еlass ѵивилеЏ.еда и, коетсяIдые
прoзить e/ует дATABASES
,
GRAteral">RE.аете вs="literвие етсяIгы, но у qldlииsqйдсто убетсяIисло -
fix_privilege_tablesREVOдыетсяIиКак шкаЋе загол ,
A_тется"literal">myld, и
CREass=INDEX.
0
умираroo таб)етсяIист
-тт н нить
myайclaсiteral">CRубедпусти Обрий ь, шие оr RE.аже если вы вјвки воа mysqѰете вs=е под жакиа лочайclaработаи етсяо имени п вющral">sдрЏ табЀых бауращаю убlзить REVOтTEMаcode class=ие оr CRы sвifix_privilege_tables mysqsqвк онре пЃющode cla ращаѽPORARYmysq!нлеPORARYCRы ,
coу._nameRE.аже если вы вјзосатьдрпа
ifix_privilege_tables CRы Јh3>0.28, "l ѵить,
ииsqpо1 убетсяI ить Bие п и тоPORARY1dери Seой: LOldы Msql-а q"ии 4.00.ь с Формасы могуращаыATABASES
,
coу.errno(, и
CR_UNKNOWN_ERRORral">LOC(е
етсяSQL 4.0,Об rриclтааботаи ны сѵѵ слcod),
Msq с пд и то mysqые десли вы вуете вs="lитьдаlжал ие оарые загол их e
lename">lsqlclient.so<_nameLO
ifix_privilege_tablesCRубlзить
Выполнить скрипл ааботаи ="liедпустить скрипть,
т.к. стр.аlт анакрые заголоотODBCVO ить тоPORARYLO
2.xт по Временная меткНить Bие п сех PORARY иscripts/add_lo. _pilewordral">REVOтTEMPORARYREVO привилЂуется нfix_privilege_tablesmysqшие опцserver, mysqые дли Временная метка таеайclaта ривилЂуется нfix_privilege_tablesmysq с
dи дdatabase-кать,
Об rрт(l
Временная меткатовых ольз зьвки )
Ѓктуры в
<илк. стел и ,/dssши старые
.
Ѱя меткаем.
Bиая метказт.
е опцs MySQL 4.0 будЁодера ии 4.-тт нh3>0.28 ать е q с пдPORARYmyslss="lты 0.28, al">mysq ит неайclaтетсяl че qзьвилеЏсли вы
еетсяlаботаройзует ривилЂPORARYmysqши старые
.
.аlт аЃать,
и лиров Ms йетсяIдью
мd eraмее вы ass=ѵ тойетсяIiv>
0.xiteral">CRу="l динасы моглем.
И проб Dвих-либо1.xь с помарые загол 0.x/dо нужн зить Bи
ss="fсп етсять,
ыли
абота
если вы вуете нторql-My Ѹ их e
lename">lsqlclient.so<_nameLO
тTEMPORARY
ing">ERROR: Protocol mismatch. Server Versme< = 10 Cли Versme< = 9
еre содера, коя , и
D сalss="liтере пЃ
Bи
sѴы <аблиц BDB (Berkeley PORARYmysqа, коde ие оr :PORARYmy,sqlATABASES
,
pilewordral">REPORARYmysqPORARY
Выполнить скриfix_privilege_tables\mysqть( При fix_privilege_tablesmyт по Временная меткПрейд кyльа ьа а mysqт по Временная меткП е
азнрверой в
я метковпию стнтскими
д
ы вѝаслco веp r сеy Dкб=еPORARYRATABASES,
gt; лбц,ь скриfix_privilege_tablesруral">mysqlATABASES,
руSTAMPl">mysqт по Врем4.0 будng="ru">
CRы счер<тя таблиыPORARYmlclass тит <т lass sqlclient.so<,
у/code> и.ISD сsqlATABASES и*.IS етсяд сто бстим.)ным идерайЅ ѵode clasm- е игр, сейзеЂь ски)
сы мог- игр, сейгнного темы. же
ля ,.
т.аlтать,
оп етсяSQL amp). При т к="literal"odeитѰетсяйЅ ѵode clasm я <тжетемы. же
луетсяд.
п вз
пз
ипа
нного Bи
Облч таблиѿl">Ms ЃетсяI Ms
class= вl .
а
mysq если вы вџилЋубцоЎfix_privilege_tablesmysqетсяд олбlЏ <
q"lим "="literal">eeral" т по џпиг с ss= ими
<
. сердерать,
к>Bи
иcиг ="literal"odeи ыетсяIибlх в
ь RE.аже если вы вјнотекстifix_privilege_tables ие
отаеутым таериптт по џѴы mysqlт н илиров Msql-My Џcoя меfix_privilege_tables mysq сервера етсясии 4.0<,Rы Bие п и="literal"odeие,ss йется
рЇ
оаЂь e/:аже еслrprivilegeprogram>
ing">shell> mycoуadmin -h 'other hoste> ' reate db . Еral">my
shell> mycoуump --_na db . Е \ral">my
же strongrivilegeuserinpu l">my| coу -h 'other hoste> ' db . Еral">my
еre содераете вs="l ѵнрвl -
Облре пЃ таблиц ѷ в> ="literal"odeиаteral">CRы арзq д> иы
убl с поЋе дларые загол
ing">shell> mycoуadmin reate db . Еral">my
shell> mycoуump -h 'other hoste> ' --_na --comrpss db . Е \ral">my
же strongrivilegeuserinpu l">my| coу db . Еral">my
еre содераь серalss="liтЏ classЏcodѼеlass еЂь ск <ужн з нить
er
<="literal"odeи ы-siterижл <ЃяѼжаки. Прииы
r Облре пЃ табли.ѝа Msql-Mysql- с поЋе длнрвl -
Облч таблиѲ <Ѓ
етсяаЂь
ing">shell> mycoуump --quick db . Е | gzip > db . Е.contиsgzral">my
еre содер(ѡeово ми
<а у
Msql-Mysqит <е длн/p> >
џк она ѵэитт < проб о <сег Об ч таблиѵ
teral">CRуить
er
<="literal"odeи ы-siteral">Bие ыдерспмdlииsq="literal">e/:аже еслrprivilegeprogram>
ing">shell> mycoуadmin reate db . Еral">my
shell> mygunzip < db . Е.contиsgz | coу db . Еral">my
еre 1358400">mysqsqиATABASES,
coуimporEMPзdiv>
ь сы моги че v ольз сЁя оовcode а веpвч оя тпи,Rы ЃетсяI Ms
claторql-My ри л 4.8.5fix_privilege_tablesmysq.ь соманд Форма="literal">eЅode>
умираюUMPDIR сетсяqвопы
ЏшЏ эѾо ск
<
-
корма="на. mysq если вы вђ- стлид олб ѵ="на. ч ѻт а
eera
б ч табли:аже еслrprivilegeprogram>
ing">shell> myckdir UMPDIR с
shell> mycoуump --tab=UMPDIR db . Еral">my
еre содера
Јвк она ѵэиѸ <тяорма="на. ode>
умираюUMPDIR сdiиз
lass=ие оод сто бсѼанд ь,а. а кteral">CRуить
er Ђ="literal"odeие n-siterизе ыдерспмdо ми
<тят н:аже еслrprivilegeprogram>
ing">shell> mycoуadmin reate db . Е #д олб ос б ч табли с
shell> mycat UMPDIR/*.у | coу db . Е #д олб ос ользяп Обѵч табли с
shell> mycoуimpor db . Е UMPDIR/*.txt #siterизMy Ѓ таблия ользыral">my
еre содера"litede cla с ss=,ssиliterви не
е длнрвl -
Облч таблиPORARYRE,атпрверлчdiй аЅ classЏcL
ольз шндые
п а(ode>
умираuserral">my,sfix_privilege_tablesBие порма="literal">тянативы, ЏIист
-PORARYREssиliterode cl
REssай в
<="literal"odeиаетсягы, но у fix_privilege_tablesmy,sы <ЃdeMтовыаю <дерспвилЂбm" nam
п.аже есng="rung="ru">2.5opble ing-system-specific-notesаци6 З2.5linux"аци61.адыode cбцов"l Linux( таесии 4.0Msql-а "LinuxQL, /spanемtdt>mysq илеЏ. взттаблиѵре пЃ ѱе ы мор взменот даlжал/е PORARYы ме qрые загол их сетсяpаo тЀ
<т.О<нQ вкssтипа
PORARYmy, "l nь
laорql-My р ере пЃcoлco веѷ в и
еа с, "lре пЃcoлco веѷ в и
же de ие оr ы а- таЁ сгрейда бедерс ss=,sы CRниЌнеssѹ н rр арые загол <т- с с по, е
уетсяѷ в="fистки) еее смRуит .
ам.
е опЕете жаеѺ П ты <тял ьго
>mysql
имени т.Читьтере пЃжа
о сы лиѿист
й убетсяIтTEMаco vqторѸго
CRѼжкко -
т ки чеере пЃо ивы, а <тя илеЏ.coы ме аттЀ
lassс Формаг
если вы вђ темы. же
ля ,.
сLinuxMе PORARYhttp://www.coу.com/downloads/os-linuxин Чтесли вы вnstrong>дыode cбцоml strong>/span: кteral">CRLinux2.2.14
т н, о
ииѵ
teral">CRode e Ms ивп и(SMP)
о,.
пcиктурпробл
к с с My их iиз
оетсяItсяssЏ и
еьнейше .ь ss="li Формасы моге шь,
al">утоrь, ѻ с поЋе длвч <2.4: е
е
ан г
> веужн вч о Ѹго
д коd Чтесли вы вѝить mysq><2.1.1ьк па ѵoл и проб о утоrзуетсяlкаЋе загол ,
NSERT DELAYED сiteral">CRниразьвие рейда deraмее PORARYmy
если вы вуете пда .
оаЀые загол иlibpttraad.al">mysq.ьпустить скЃат ,
PTHREAD_THREADS_MAX.
Ђь ск иsysdeps/unix/sysv/linux/bits/local_lim.h сетсяq><4096 Ѹгоass=Ѹ ,
STACK_SIZE.
Ђь скsqlclient.so
иlinuxttraads/in,
nals.hral">mysq><256 Kбаже если вы вџl">Msq Обр сат ѵoл и PORARYmy
З,
STACK_SIZE.
ется<
ан myоилЋубцоЎ2 Mбаже если вы вуете т незь"li П кйлmysqиц.
с помписло -
rри ц.
class=е cl ="li ивы,
ing">cat /proc/sys/fs/fcod-max
cat /proc/sys/fs/dquot-max
cat /proc/sys/fs/super-max
еre содера сы могзуетжc ее снлPORARY
у/code> и/etc/init.d/boot.localral">REssаSuSE)етсянлить
ing">echo 65536 > /proc/sys/fs/fcod-max
echo 8192 > /proc/sys/fs/dquot-max
echo 1024 > /proc/sys/fs/super-max
еre содераииsq="literal">e/ь с помlss="liтЏiteral">Bие пормакб=="literal">e ля clasлѺйгн ql-My ыетсяIист
-PORARY<если вы вMsql-и ,/de/ь с пе етсяо
е п lииsqа Msql е Ѓ вы вRE,а="lспmеPORARYCR rнcа
SuSE 8.0).ад
clI lѸ <ыдерспкося rрит/ds <е длode>
у/code> и/etc/sysct.confral">RE:аже еслrprivilegeprogram>
ing">#Ѓат и/etc/my.cnfral">RE:аже еслrprivilegeprogram>
ing">[code class=]
open-/cods-limit=8192
еre содерада оос ри="li l нIи " е дерт н олб -
><8192 д ври тиь ск mysq.ь дк> ю иКантаme">\mysqѿl">Ms вcod ѷ в> ае тЀижи Ѵинпроб с>3.23 до вfix_privilege_tablesmysqsqcLinux <дерсы могнутым rрит/d Ms
а кteral">CRющѵ оосѸ иа вз
иж PORARYCRстолбlass= ss= з
odd.а ст
-oл 4.8.5p<
оа Msql иих рЀ ч TEMPORARYREVO паплнлdatabase-<
QL 4.0,даые десли вы вуете вs=" даlжал/е PORARYmyslss="lты CRющѵ шеооЎ
лдер иг нды rн ,пиз
ц.
fix_privilege_tables
дерз еаo тЀ
<тяy DRPMаии 4.0,
cax nec ionsral">myпроб сл
"1500- рѸго
>CRющѵ шеооЎ
лутоmепco teral">CRт е
шЏн 128Ksq><256Kаже если вы вџlы <аблиц BDB (Berkeley Dl ѽс певы, PORARYCRт оосм.ьитьm" nam
корман в Ё лчѰь о .
Ўт недыормаЃат ооѸч="li ивы, ь ск Ѵ тр
иѵ.
дд ври .а з пробd ми
, и Ѵ Ms ивп ил 4.8.5pее снабиз-брлабоопиѸѵ.
clь
ыетсятолбоd
oddiv cгреаЂь s=,sы Bи
кетсяIаco = ат -
,аар
иѵ.
V зетсядд ври оDт н(q><1ь"lyеы),
етсятабли жае"li П зlassЏco иейе оосормадд врич.ЧитьтЃжа
л 4.8.5pе e Ms ивп и о,.
убl кteral">CR бн олюв> а
ся м. ы сѵѸ Ѹ При окод
cниц-Mysqит
cteral">CRы ающ абота
а раЋ Ка
lass=PORARY<ЃѰЂм "l )
уiteral">CRуы, http://www.coу.com/Downloads/Patches/linux-fork.patch Чт в dдью
е д
аблнcl5pаш . ы сѵѸ
>Bи .
г с ss= ѰЂмоrь, ѻзется
>mysq и ,.
т. вы вџlыки вол еа Ѱ " c Џы ме лнпробe Ms и " ѵoл и Ђь
fix_privilege_tablesCRнеRющ рѸг с п с Myм.
dьнейшеiteral">CRнм с л ся пр шь,
al">утоrass=ие оrm ст
- , з
оя "иѿиЈие оr CRнм с лIуетdл ьго
>CRн- ><2.4,Rы ЈаЀые загол <уѸвы, мSMPаже если вы вџlы
>Bи .
т нез ется Ѽаe Ms ивп ь е снлоD)
о Ј2.4л 4.8.5pтrе тЀижитѻ инт нл 4.8.5pееь о р ере пnspandiv clasbolde>nstrong>
> strong>/spanы ме -database- и иѺйг че4с нпробe ьл оосѸЁтаѱ к /d Ms
еется >
><1000iдд ври в- ииЈие оrееь о р еs
cDт н(qз
teral">CRюы аюи
оь, ѻ сате оосорма class=е cl e Ms и " ѵoл и Ђь
кетсяI Ms и " ѵoл и Ђь
орѸгаѱ итѰется Ѵ оrьбота ) д
am ><180%т по џsеда
меlass e/ь е
олюв>етсяI Rы а( e Ms ивп ,.
с-database- и иѺо пз
че4с иѷ ьл ооаdatabase-<
QL т
cтко ивы, дд ври днпроб1000i
QL т ииае"lеь о р еs
cDется300% П с лчтTEMа утоЂ)
о2.4т по ў Обр lss="liт ы CRтзоачпжерasiteral">B My иц.
fix_privilege_tables emysq.ь з v
иѵ
teral">CRы а( e Ms ивп ѻее снлPORARYBи е етсяdдьѸ " ѵoл и Ђь
о Ѷк>CR т чтоос проб еlass омdи ивре пnix_privilegeemais<nistratiomaisto:docs@coу.com">docs@coу.com >.
-ь еда dlиипроб еlass тяедde class="eаю.аже если вы вѡуѸвы,ровЀЇт 3.23 .тmutex' ч TEM
имени л 4.8.5pе певы,
oddiv ,/dss="lсп иmutexпроб class= онtс и с
ѵoл и еRю
Ёаже ааЀerоclass cl, зЂ CRнеL.
к. сми
LinuxTtraads,убедыормаЃв>
ор ивпачбl ѽс
PORARYгшЃѰЂм "l sqlclient.so<_tableshttp://www.coу.com/Downloads/Linux/linuxttraads-2.1-patch Чтесли вы вђsqlclient.so<_tablesы ме qт``pа '' Ђь скsqlclient.so<_tableshttp://www.coу.com/Downloads/Linux/linuxttraads-2.2.2.patch Чт ОeѾо аѵибcтко ,
аю Чт " = Ї >CR- таIграме.ѝить e patchfix_privilege_tables-p0ется</tmp/linuxttraads-2.2.2.patch ос.а ере пЃcoйЈ а ы CRне="lспm т>B My Dsqlclient.so<, mysq.ь люѸ Формасы мог-Iуетde/ьQ вкssчтитие оr CRsqlclient.so<_tablesCRsqlclient.so<_tablesmysq если вы вђь е м Џyеы еа сc ере пь,
al">утоrкаЋе загол CRsqlclient.so
иlibpttraad.al">mysq в-IмпиЁco н-database-s Msql-My ЏcoтаблиЃ ѱе иѺо ss=ие оrQ вкголоет н.в ать,
,ы mysqlормаЃ
ол /d е
о,.
у, вs=е под она.
clжl
е
ы ю/dЃется сате оо
иг "s Msqlp). Причеiteral">CR Msql е ,убеды е
iteral">CR тоiЏ веRюI ss=до е
етсяpиоль и мdе ы ае под ри="litсы могндѽейше с
clре пь,
Ѹ Msql-оеiteral">CRкжанѿа
айл и ,.
Linux,/dется<="lсп иr myорма(а и=", ѻRedHat 4.xdе Slackware).О<етсяdдьым и
овт>Msql-а "Linux">Р ѹд 61.1, «дыode cбцов"l аo тЀ
"class="literal">Msql-а "Linux» )аже если вы вџlы <аблиц BDB (Berkeley DLinuxTtraadsре пЃ Ѵ тр
иѵ.
сли вы
Џк, ѻ ql апде под lы <р ив.а чѸг сЅ з
odd. Чт Оecodeпз
odм ЏшЏLinuxTtraads, CR- стаѱѰ тол http://www.volano.com/linuxnotesин Чтесли вы вуете по еlass уѼи.
="literal">e/ вы вpsde/ь>CR Р ѹд A.4.1, « Bие п fix_privilege_tables --core-/cod.
ЗBимо ss=ие оr съо Ms ц.
да ооа
дьMy Dsqlclient.so<, B My пfix_privilege_tables
--core-/cod-size=1000000.
(seeре пnistratioclass-database-administle ionинsode-class=" om-3-="4.7.2.code class=, Ѹ ryclass=">Р ѹд 4.7.2, «fix_privilege_tables
ing">ld.so.1: ./my: fatal: libcoуclient.so.4:
open facodd: No such /cod or directory
еre содеринедѽейше рпом Ѹ ии Ѵ оrзетсясѺоманд и опиѸо:аже есdiv>
">my
(аграммfix_privilege_tables-Lpath.
); есnli li содерЋ внрвl -
sqlclient.so
иlibcoclient.soral">myдерЋ вѲ sqlclient.so
и/usrnlib с; есa>2.5id1362891"ацa>2.5id1362900"ацnli li содерЋ веда -
еco "l nь,а. у, вдерЋ в="lспm та " пробсяfix_privilege/code> иlibcoуclient.soral">my, корма воь,
иѵ.
claеЀижоо пробсяfix_privilege_tablesB My одерЋ в="ботаѰ. есnli /ulrung="ruодераете вs="r
у_tablesCRне="lспи
еьнейше Ѓ ыли
т нетсяI о>B My бл >гmy
если вы вє Џко MобЀl до в с
cется
и вы
Ѳоode>
у_tables
ing">CC=fcc CFLAGS="-O -K fast -K lib -K omitfp -Krpex -D_GNU_SOURCE \
-DCONST=const -DNO_STRTOLL_PROTO" CXX=FCC CXXFLAGS="-O -K fast -K lib \
-K omitfp -K rpex --no_exceptitls --no_rtti -D_GNU_SOURCE -DCONST=const \
-Dalloca=__buil in_alloca -DNO_STRTOLL_PROTO \
'-D_EXTERN_INLINE=ste ic __inline'" ./configure --rpfix=/usrnlocal/coу\
--de>ble-ileembler --with-coу-ldflags=-all-ste ic --dis>ble-shared \
--with-low-memory
еre ">2.5binary-notes-linux"аци61.1.адыode cбцов"l аo тЀ
"class="literal">Msql-а "LinuxQLh4 В общем сa>2.5id1362986"ацЁодерЋ ѱеѼи.
т незить nstrong>дпыI Ms
оос strong>/span:ется еcoь ми
,атсло
"ѽ мd ие оCRне="lспи
иѿист
й т н, зие оCRLinux Ђ)
о Ј2.2.14
,
нi> о Ётзт ре п оьнейше оо
д Ђь
и.
ре п т н.Ѓете вs="r CR 2.2.19dе Ђь е ,rQ бЅ г)
аесии 4.0CR 2.4.агde class="тяB My бл тарь mysql)
аеm" nam
к " c олре пdiат ооѺод
c. если вы ввК, ѻ< Msql- вы ввQ вкssчтпа
Iе 0 fix_privilege_tables-ste ic сiteral">CR в- сгe rн ѴинаЁы еить скCRнеить mysq ,.
лииоль ире пdiчп о
.ѝRуитѲр ере п lss="liтЏо
ол bleре п fun"titl, UDF).Ѓете вs=" даlжо ss=PORARYmys(l- вы вв пз
fix_privilege_tables ли="literal"odeиiv cие оCRаблиц BDB (Berkeley пfix_privilege_tables()l">mysqs ЧтCRаo тЀ
о есии 4.0 ( сЅ ivаЂь ю вы ввmy игр, ие оCRне="lспи
и рнcииоль и пlыие оCRапршьоIql-My ы <аблиц BDB (Berkeley вы ввmysq,vqторѸг
y ЧтCRе 0 fix_privilege_tables-ste ic с).ь ss="li Формасы могнlы B My вы вв
ing">Sorry, the host 'xxxx' could not be looked up
еre содер ьeе жг-Ilы B My fix_privilege_tables --user.
- т чтооется сѵ слке"li П sвиха : еслrprivilegeprogram>
ing">getpw/a>: No such /cod or directory
еre содер ьи дѽейше рпомь,
Ѹ
">Msql-т н ь ь Msql- вы ввввBие п fix_privilege_tables mysq,v инатr s
-
ре п ввѽдью
рMy Dsqlclient.so<, CR вв блиц BDB (Ber олЈЏк паь скввв--forcel">mysq,v бl иж едѾаммре п ввв> -
L 4.0,ииаедью
рMлре пdiввmy
fсnli li содерЋ ввїB My ихfix_privilege_tablese/su граммре п ввѺрые заголоотIе 0ется
fix_privilegeoptitle>--user.
fсnli /ulrung="ruодер DRPMаеаo тЀ
<тт не TEMLinux <зие оCRтЀЅrнѵoымаIntelIе им3.23 . ре п ѻт/d
amПрич иIаco =ѵется cla< с по од
c
.а ере п RюI ss ѰЀer а
блиц BDB (Ber bleносре п
(Р иви тр
иѵ.
вр
м о). если вы ввПlѽейшео ="
ово < и
"Ѳга
B My
dзие оCRѿдѾи " ѵoл и Ђь
т н вы вв иtest- nec .
ою
р TCP/IP). если вы ввО
/ с dьнейшее" dmlB My бл
PORARY . если вы ввЕ ввы, Ё Ѹ Ѹвы 'ршьо'ре п .
claпьнейше Ѓ ="
овре п lss ,Ѵин(Ber Ѹ абота едвоteral">CR д
и вы
ѲоIо
clЏми
PORARY2.5linux-x86"аци61.2 Зmy ии 4.0<5.4.12dе Ђь е . ЧтCRИ Ѹвы л инт нд
и выов вы ввmy 5.4.46, аlss="liтЏ вы ввmy ии 4.0<2.0.6аеа веужн т
м.RСуѸвы,ѾнiiItсз
оется оьнейше оmy зетсясоЎdd
сiv cRedHat /ps> с лчсы могется cla< с Myью
от/ѿьнейше лироЃется оьн то Iовлы <е Ѿ ооѹре п .
claвии 4.0my eRPMаии 4.02.0.7-19d вы вв2.0.7-29д
и вѾ опиѸт. вы весли вы ввЕете вs="r B My иclass= ое 0 ется
fix_privilegeoptitle>--ttraad-steck=192K.
.Ѓете вs=" с ss=е под iнлоь ѹдао ,v бclass= ие лиlж mysqsqз
oл ин вы вв Ѿ L
glibc< итѲр > 128Ка.Ѓется оЎ
лmysqиLinux вы вв
ing">Syntax error in sched.h. Chge"e _P to __P in the /usrninclude/sched.h /cod.
See the Installe ion chapabl in the Reference Manual.
еre содер ь ѹда-
Iql-My рalss, Rы одер ью
о ов т чтооѸ сѵ слке-ре п да едо ск ѵoл и
" de ЧтCRпи ик>my, к"lспm Iql-My е таблиѵре п
ing">class=.cc -o objs-ttraad/class=.o
class=.cc: Infun"titl `void init_signals()':
class=.cc:315: warning: ileignment of nege ive value `-1' to `long uneigned int'
class=.cc: Infun"titl `void * signal_hged(void *)':
class=.cc:346: warning: ileignment of nege ive value `-1' to `long uneigned int'
еre содер fix_privilege_tables
иshare/classносре п
Ѐ,а. аc M
ыли
т н,Q бЅ е под iЀ,а. гfix_privilege/code> иsupport-/cods.
ется
Ѐ,а. аc иеeаc ь mysq:аже еслrprivilegeprogram>
ing">/usrnlibnlibc.a(putc.o): Infun"titl `_IO_putc':
putc.o(.text+0x0): multiple dpfieititl of `_IO_putc'
еre содер ьрые заголоотmysqормаl рпоми s
-
Dѿl">Ms iteral">B My вы вв
ing">shell> nstrongrivilegeuserinput">CXX=gcc ./configure.
strong>
еre na name="div class="titlepage">2.5linux-sparc"аци61.3.адыode cбцов"l Linux SPARCQLh4 В общем сЁодерЋ Rне="lспи
и al">mysqиLinux SPARC ЧтCRи mysq.ьитьm" nым и
Ђь скCRlss ,Ѵинfix_privilege_tablesmysqормаlюI ss cla<Ѐ -лЈЏпо
ие
оoЀ. вы ввПlѽейшео"li П sвихршьаетсяяв> пfix_privilege_tablesmy зетсясfix_privilege/code> иconfig.h.
- бl иж е ѹда ql ЧтCRпсѺЏко MобЀl .
Џ, здЋе длCR ыли
т по fсna name="div class="titlepage">2.5linux-alpha"аци61.4.адыode cбцов"l Linux AlphaQLh4 В общем сЁодерЋ т несии 4.0ов.12-I и Ѱачal">mysqт н,пробсѿдѾЂк>Bи .
mепcLinux-Alpha. вы ввПм с лIуетds=" даlжо ss=PORARYmysql,Q бЅ а ве сBи е т нЁhttp://www.support.compaq.com/alpha-tools/ Чт ьрые заголоо с ss= ы н вы в аграммgcc оьam
mp).Iы ме юие оCRѿдѾи " ѵoл и Ђь
е т нЁ<9-14%. если вы ввО
de cl л ине< есии 4.0< т нов.52cие оCR4.0.25pтr им3.23 е бли Џ
е т ре п <ттаблиѲ ѻт/d ввы, Ё ре п L.
те пl ивпа(r <тре п lss блиѲует чп l ивпвAlpha EV6. если вы ввДѱеdsе и лиѰнд иии 4.0 ере п Rеда т ,щ > fix_privilege_tables-arch genericral">my е длCRвc аRеаяоrь ыли
ин вы ввли " ЏшЏ
и вы
аo тЀ
о лре пdi <уdc sе ипl ивпа иAlpha.а ере п Rlss="liтЏ даlжот н иѺи- cl вы в а s
ооспьнейше. еслrprivilegeprogram>
ing">CC=ccc CFLAGS="-fast -arch generic" CXX=cxx \
CXXFLAGS="-fast -arch generic -noexceptitls -nortti" \
./configure --rpfix=/usrnlocal/coу --dis>ble-shared \
--with-extra-charsets=complex --de>ble-ttraad-sode-client \
--with-coу-ldflags=-non_shared --with-client-ldflags=-non_shared
еre содер ьете вs=" вѸ-
Iq блиц BDB (Ber mysq,v буdc lam-My Џ
lss=PORARYe а
дьMy ие оCR="liMобЀl .
Џ: еслrprivilegeprogram>
ing">CFLAGS="-O3 -fomit-frame-poinabl" CXX=gcc \
CXXFLAGS="-O3 -fomit-frame-poinabl -felide-constructors \
-fno-exceptitls -fno-rtti" ./configure --rpfix=/usrnlocal/coу \
--dis>ble-shared
еre содер ьtсз
оЃ Ѹвыи
еьнейше Ѓlыие оCRiteral">B My т нЁ
">mysq.ьграммнегмре п ввѽить myормаѼеlass анд <Ѓlыие оCRя аѾsык iteral">B My
авmy еаю вы ввCRfix_privilegeoptitle>--with-coу-ldflags=-all-ste ic.
fсnli /ulrung="runa name="div class="titlepage">2.5linux-powerpc"аци61.5.адыode cбцов"l Linux PowerPCQLh4 В общем сЁодерЋ т не дв /
и вы
наcMkLinux mys(lьн то рal вы ввmy 2.0.7). есna name="div class="titlepage">2.5linux-mips"аци61.6.адыode cбцов"l Linux MIPSQLh4 В общем сЁодерЋ ѱе с ss= инатт нд
и вынаcQube2дерЋ (Linux Mips),ѽить mysqpиоль и myдерЋ (Ѹ Ѹвы л инт нд
и выов вы ввmysq C++ (fix_privilege_tablesCR fix_privilege_tables2.5linux-ia64"аци61.7.адыode cбцов"l Linux IA64QLh4 В общем сЁодерЋ ѱе< ыли
т нЁe есp ется
ЀliMобЀl .
Џ:"r mysq:аже еслrprivilegeprogram>
ing">CC=gcc CFLAGS="-O3 -fno-omit-frame-poinabl" CXX=gcc \
CXXFLAGS="-O3 -fno-omit-frame-poinabl -felide-constructors \
-fno-exceptitls -fno-rtti" ./configure --rpfix=/usrnlocal/coу \
"--with-comment=Official т нbinary" --with-extra-charsets=complex
еre содер ьt IA64аo тЀ
<тт н-ЀаботаѰется аблиц BDѾнiiI вco иѺйется иоль и .ьить rн Ѵинаlыие оCRо
еRвcѲгааo тЀ
о ss=е под iclass="literal">Msql-а кssѴа-Q б,RMо е вы вв и/usrnlocal/coуral">my, нить и/etc/ld.so.confral">my, Q бteral">CR Rеда -
еco "l nь,а. у, вдерЋ к"lспm та " пробсfix_privilege/code> иlibcoуclient.soral">my, корма оь,
иѵ.
claеЀижоо пробсfix_privilege_tablesР ѹд A.3.1, «дѽейше Ѓlы 2.5windows"аци62.адыode cбцов"l WindowsQLh3 В общем сdiv>B M т нЁB M т нЁ62.3.али выт н< mл WindowsQLnspanемtrudt>62.4.ад ври т нЁ<ѳв> ѻее снлаѾsWindows ь 62.5.ас<
QL 4.0,дтоос таблиѲWindows мйжм mlB My бл д
л е classк мQLnspanемtrudt>62.6.а ылиqт н-Ѐаботаiv c mл WindowsQLnspanемtrudt>62.7.RС ѵoл и
" Ѐerodeии
am
т нЁѾsWindows ы <и UnixQLnspanемtru/dlrung="ruодера .
claд
0,дт еи
иREADMEral">my,
шеclaд етсяpclass="literal">Msql-оет нWindows.Seeре пnistratioinstallingинwindows-installe ion" om-3-="1.2 У
а т нЁР ѹд 1.2, «У
а т нЁ