| |
Эта глава описывает, как получить и установить MySQL:
Рекомендуемый способ установки MySQL на Linux: используя файл RPM. MySQL
RPM в настоящее время формируются на системе RedHat Version 6.2, но должны
работать и на других версиях Linux, которые поддерживают rpm
и
используют библиотеку glibc
.
Если Вы имеете проблемы с файлом RPM, например, если Вы получаете ошибку
``Sorry, the host 'xxxx' could not be looked up
'', почитайте
раздел "2.6.1.1 Замечания по Linux
для двоичного дистрибутива".
RPM-файлы, которые Вам понадобятся:
MySQL-VERSION.i386.rpm
Сервер MySQL. Вы будете нуждаться
в нем, если Вы не хотите соединяться с сервером MySQL на другой машине.
MySQL-client-VERSION.i386.rpm
Стандартный клиент MySQL. Вы,
вероятней всего, всегда будете устанавливать этот пакет.
MySQL-bench-VERSION.i386.rpm
Тесты и бенчмарки. Требуют
RPM-пакета msql-mysql-modules и поддержки языка Perl.
MySQL-devel-VERSION.i386.rpm
Библиотеки и включаемые файлы
заголовков необходимые, если Вы хотите компилировать другую MySQL клиентуру,
типа модулей Perl.
MySQL-VERSION.src.rpm
Исходные тексты для всех приведенных
выше пакетов. Это может также использоваться, чтобы пробовать формировать
RPM-пакеты для других архитектур (например, для Alpha или SPARC).Чтобы увидеть все файлы в пакете RPM, выполните:
shell> rpm -qpl MySQL-VERSION.i386.rpm
Чтобы выполнить стандартную минимальную установку, выполните:
shell> rpm -i MySQL-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm
Чтобы установить только клиентский пакет, выполните:
shell> rpm -i MySQL-client-VERSION.i386.rpm
RPM помещает данные в /var/lib/mysql. RPM также создает соответствующие записи в /etc/rc.d, чтобы запустить сервер автоматически при начальной загрузке. Имейте в виду, что старый файл запуска (если таковой был Вами создан) будет затерт.
После установки из файлов RPM mysqld
daemon должен работать,
и Вы должны теперь иметь возможность начать использовать MySQL. Подробности в
разделе "2.4 Послеустановочная
настройка и тестирование".
Если что-то пошло не так, Вы можете найти подробную информацию в разделе "2.7 Установка MySQL из двоичного дистрибутива".
Следующие команды применимы к заранее откомпилированным двоичным дистрибутивам. Если Вы загружаете исходники, Вы будете должны компилировать и устанавливать их лично.
Если Вы не имеете копию дистрибутива MySQL, Вы должны сначала скачать ее с http://www.mysql.com/downloads/mysql-3.23.html.
Если Вы планируете соединяться с MySQL из некоторой другой программы, Вы, вероятно, также будете нуждаться в драйвере MyODBC. Вы можете скачать его с http://www.mysql.com/downloads/api-myodbc.html.
Чтобы устанавливать любой дистрибутив, разожмите его программой unzip в
некотором пустом каталоге и выполните программу Setup.exe
.
По умолчанию MySQL-Windows конфигурирован так, чтобы быть установленным в
C:\mysql. Если Вы хотите устанавливать MySQL в другом месте,
установите его сначала в C:\mysql, а потом переместите установку в
то, где Вы хотите ее видеть. Если Вы перемещаете MySQL, Вы должны указать,
где все размещено, с помощью опции --basedir
при запуске
сервера. Например, если Вы переместили MySQL в D:\programs\mysql,
Вы должны запустить mysqld
так:
C:\> D:\programs\mysql\bin\mysqld --basedir D:\programs\mysql
Использование mysqld --help
отображает все параметры, которые
понимает mysqld
!
Со всеми более новыми MySQL версиями Вы можете также создавать файл C:\my.cnf, который хранит любые заданные по умолчанию параметры для сервера MySQL. Скопируйте файл \mysql\my-xxxxx.cnf в C:\my.cnf и отредактируйте его, чтобы он соответствовал Вашей установке. Обратите внимание, что Вы должны определить все пути с помощью `/' вместо `\'. Если Вы используете `\', Вы должны определить этот символ дважды, так как `\' представляет собой управляющий символ в MySQL.
Начиная с MySQL 3.23.38, Windows-дистрибутив включает файлы для
нормального и для MySQL-Max. Основная польза от
использования нормальной версии mysqld.exe
в том, что она
работает немного быстрее и использует меньшее количество ресурсов.
Имеется список различных серверов MySQL, которые Вы можете использовать:
mysqld | Откомпилирован с полной отладкой и автоматической проверкой распределения памяти, символическими связями, таблицами BDB и InnoDB. |
mysqld-opt | Оптимизирован без поддержки для транзакционных таблиц. |
mysqld-nt | Оптимизирован для NT с поддержкой именованных каналов. Вы можете выполнять эту версию и на Win98, но в этом случае, никакие именованные каналы не будут созданы, и Вы должны иметь установленный TCP/IP. |
mysqld-max | Оптимизирован с поддержкой символических связей, а также таблиц BDB и InnoDB. |
mysqld-max-nt | Подобно mysqld-max ,
но с поддержкой именованных каналов. |
Все приведенные выше бинарные файлы оптимизированы для процессора Pentium Pro, но должны работать на любом процессоре Intel >= i386.
ОБРАТИТЕ ВНИМАНИЕ: Если Вы хотите использовать таблицы InnoDB, имеются некоторые параметры запуска, которые должны быть определены в Вашем файле my.ini! Подробности в разделе " 7.6.2 Опции запуска InnoDB".
Проверьте домашнюю страницу MySQL http://www.mysql.com для поиска информации относительно текущей версии и того, где ее искать.
Наше основное зеркало загрузки размещено на:
http://mirrors.sunsite.dk/mysql
Если Вы заинтересованы в создании своего зеркала MySQL, Вы можете
использовать анонимный rsync: rsync://sunsite.dk/ftp/mirrors/mysql
. Пожалуйста, пошлите e-mail на
webmaster@mysql.com с сообщением о зеркале, которое будет добавлено к
приведенному ниже списку.
Если Вы имеете проблемы при загрузке с нашего основного сайта, попробуйте использовать одно из зеркал, перечисленных в списке ниже.
Пожалуйста, сообщите о плохих или устаревших зеркалах на webmaster@mysql.com.
Европа:
Северная Америка:
Южная Америка:
Азия:
Африка:
Авторы используют GNU Autoconf, так что возможно портирование MySQL на все современные системы с поддержкой потоков Posix и языка C++. C++ нужен только, чтобы откомпилировать код клиента, но не потоков. Все программное обеспечение разрабатывается прежде всего на Sun Solaris (Versions 2.5-2.7) и на SuSE Linux Version 7.x.
Обратите внимание, что для многих операционных систем, местная поддержка потоков работает только в последних версиях. MySQL компилировался успешно на следующих комбинациях пакетов потоков/операционных систем:
glibc
2.0.7+.
Подробности в разделе 2.6.1 Замечания по Linux
(все версии Linux).
Обратите внимание, что не все платформы одинаково хорошо подходят для работы MySQL. Как хорошо некоторая платформа подходит для задания с высокой загрузкой, определена следующими факторами:
Основываясь на вышеупомянутых критериях, можно сказать, что самые лучшие платформы для MySQL на сегодняшний день: на x86 SuSE Linux 7.1, с ядром 2.4 и ReiserFS (или любой подобный дистрибутив Linux), а на Sparc Solaris 2.7 или 2.8. FreeBSD занимает третье место, но в ней идет реконструкция библиотеки потоков, глядишь, и выплывет наверх...
Пожалуйста, обратите внимание, что сравнение выше не говорит, что одни OS вообще лучше или хуже, чем другие. Мы говорим относительно выбора OS для специализированной цели, а именно, для работы с MySQL, и сравниваем платформы только в этом отношении.
Первое решение состоит в том, хотите ли Вы использовать последний выпуск для разработки или последний устойчивый выпуск:
Второе решение состоит в том, хотите ли Вы использовать исходники или двоичный дистрибутив. В большинстве случаев Вы должны использовать двоичный дистрибутив, если таковой существует для Вашей платформы, поскольку это в общем-то будет проще, чем установить все из исходников.
В следующих случаях лучше использовать именно исходники:
MySQL
отмечен суффиксом -max
и сконфигурировано с
теми же самыми параметрами, что и mysqld-max
. Подробности в
разделе "4.7.5 mysqld-max, расширенный сервер
mysqld". Если Вы хотите использовать MySQL-Max
RPM, Вы
должны сначала установить стандартный MySQL
RPM.
mysqld
с некоторыми
дополнительными свойствами, которых нет в стандартных двоичных дистрибутивах.
Имеется список наиболее часто встречающихся дополнительных параметров,
которые Вы можете хотеть использовать:
--with-berkeley-db
--with-innodb
--with-raid
--with-libwrap
--with-named-z-lib (это уже выполнено для некоторых
из двоичных дистрибутивов)
--with-debug[=full]
pgcc
) или
использовать параметры транслятора, которые являются лучше оптимизированными
для Вашего процессора.
MySQL при своем именовании версий использует числа выпуска, которые
состоят из трех чисел и суффикса. Например, имя выпуска, подобное
mysql-3.21.17-beta
, интерпретируется таким образом:
3
) описывает формат файла. Все выпуски
версии 3 имеют тот же самый формат файла.
21
) задает уровень выпуска. Обычно имеется два
выпуска. Один стабильный (сейчас это 23
), второй разрабатываемый
(сейчас 4.0
). Обычно оба устойчивы, но версия для разработки
может иметь причуды, отсутствие документации по новым свойствам или может
не компилироваться на некоторых системах.
17
) представляет собой номер версии внутри
уровня выпуска. Это число будет увеличено для каждого нового дистрибутива.
Обычно Вы должны скачать последнюю версию для того уровня выпуска, который
Вы себе выбрали.
beta
) указывает уровень стабильности выпуска.
Возможны следующие суффиксы:
alpha
указывает, что выпуск содержит некоторый большой
раздел нового кода, который не был оттестирован на 100%. Известные ошибки
(обычно там их нет) должны быть зарегистрированы в разделе News. Имеются
также новые команды и расширения в большинстве alpha-версий. Активная
разработка, которая может включать серьезные изменения кода, может
происходить на alpha-версии, но все будет проверено перед выполнением
выпуска. Не должно быть никаких известных ошибок в любом выпуске MySQL.
beta
означает, что весь новый код был проверен. Никакие
новые свойства, которые могли бы вызывать искажение на старом коде, не были
добавлены. Не должно иметься никаких известных ошибок. Версия изменяется от
alpha к beta когда нет сообщений о фатальных ошибках внутри alpha-версии по
крайней мере за последний месяц, и не планируется добавлять любые свойства,
которые могли бы сделать любую старую команду ненадежной.
gamma
это такая бета-версия, которая была проверена
временем, и, вроде бы, работает прекрасно. Только маленькие изменения могут
быть внесены. Это то, что многие другие компании называют релизом.
Все версии MySQL проходят стандартные и эталонные тесты, чтобы гарантировать, что они относительно безопасны.
Обратите внимание, что все выпуски были проверены по крайней мере с:
crash-me
Этот раздел описывает заданное по умолчанию размещение каталогов, созданных при установке.
Двоичный дистрибутив установлен, распаковываясь в расположение установки, которое Вы выбираете (обычно /usr/local/mysql), и создает следующие каталоги в этом расположении:
Каталог | Содержимое |
bin | Клиентские программы и сервер
mysqld |
data | Файлы протоколов и баз данных |
include | Заголовочные (header) файлы |
lib | Библиотеки |
scripts | mysql_install_db |
share/mysql | Файлы сообщений об ошибках |
sql-bench | Бенчмарки (эталонные тесты) |
Дистрибутив из исходных кодов будет установлен после того, как Вы его сконфигурируете и откомпилируете. По умолчанию, шаг установки копирует файлы в следующие подкаталоги в /usr/local:
Каталог | Содержимое |
bin | Клиентские программы и скрипты |
include/mysql | Заголовочные (header) файлы |
info | Документация в формате Info |
lib/mysql | Библиотеки |
libexec | Сервер mysqld |
share/mysql | Файлы сообщений об ошибках |
sql-bench | Бенчмарки (эталонные тесты)+тест
crash-me |
var | Файлы протоколов и баз данных |
Внутри каталога установок, размещение установки из исходного кода отличается от таковой из двоичного дистрибутива так:
mysqld
установлен в каталог libexec, а
не в каталог bin.
mysql_install_db
установлен в каталог
/usr/local/bin, а не в каталог /usr/local/mysql/scripts.
Вы можете создать Ваш собственный двоичный дистрибутив из откомпилированных исходников (иногда очень полезно!), выполняя скрипт scripts/make_binary_distribution.
MySQL развивается быстро. MySQL AB использует следующую стратегию при модифицировании MySQL:
Текущий устойчивый выпуск: Version 3.23. Авторы пакета уже переместили активную разработку в Version 4.0. Ошибки все еще будут отлавливаться и исправляться в устойчивой версии по мере их обнаружения.
В MySQL AB обеспечивают набор двоичных дистрибутивов, которые компилируются непосредственно авторами пакета, или в местах, где заказчики доброжелательно дали доступ к их машинам.
Эти дистрибутивы сгенерированы scripts/make_binary_distribution
и сконфигурированы со следующими трансляторами и параметрами:
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
egcs
1.0.3a или 2.90.27 или gcc
2.95.2 и новее
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
gcc
2.8.1
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
--with-low-memory --with-extra-charsets=complex
pgcc
2.90.29 (egcs
1.0.3a)
CFLAGS="-O3 -mpentium -mstack-align-double" CXX=gcc CXXFLAGS="-O3
-mpentium -mstack-align-double -felide-constructors -fno-exceptions
-fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler
--with-mysqld-ldflags=-all-static --with-extra-charsets=complex
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-charset=complex
gcc
2.7-95q4
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex
gcc
2.7.2.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex
gcc
2.8.1
CC=gcc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 ./configure
--prefix=/usr/local/mysql --with-low-memory
--with-extra-charsets=complex
gcc
2.8.0
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex
gcc
2.7.2.1
CC=gcc CXX=gcc CXXFLAGS=-O ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex
gcc
2.7.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
--with-extra-charsets=complex
Любой, кто имеет более оптимальные параметры для любой из конфигураций, перечисленных выше, может всегда отправлять по почте их в лист рассылки разработчиков по адресу internals@lists.mysql.com.
RPM-дистрибутивы до MySQL Version 3.22 создавались пользователями. Начиная с версии Version 3.22, RPM-пакеты генерируются в MySQL AB.
Если Вы хотите компилировать версию для отладки MySQL, Вы должны добавить
--with-debug
или --with-debug=full
к вышеупомянутым
строкам выбора конфигурации и удалить все параметры
-fomit-frame-pointer
.
Как только Вы установили 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> ./bin/mysql_install_db shell> ./bin/safe_mysqld --user=mysql &
Это создает базу данных 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, если Вы не определили
другой каталог установок вместо /usr/local, когда Вы выполнили
configure
. 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
и func
) в
базе данных mysql
. Описание начальных привилегий дано в разделе
"4.3.4 Установка начальных
привилегий MySQL". Кратко, эти привилегии позволяют MySQL-пользователю
root
делать что угодно, а любому другому пользователю только
создавать или использовать базы данных с именем 'test'
или
начинающемся на test_
.
Если Вы не устанавливаете таблицы предоставления привилегий, следующая ошибка появится в журнале, когда Вы запускаете сервер:
mysqld: Can't find file: 'host.frm'Вышеупомянутое может также случаться с двоичным дистрибутивом MySQL, если Вы не запускаете MySQL, выполняя именно
./bin/safe_mysqld
!
Подробности в разделе "4.7.2 safe_mysqld,
обертка вокруг mysqld".
Вы должны выполнить mysql_install_db
как root
.
Однако, если Вы считаете это невозможным, можете выполнять сервер MySQL как
непривилегированный пользователь (не-root
), при условии, что
этот пользователь может читать и писать файлы в каталоге баз данных. Команды
для управления MySQL от имени непривилегированного пользователя есть в
разделе "8.3.2 Как запустить MySQL
от имени нормального пользователя".
Если Вы имеете проблемы с mysql_install_db
, изучите раздел
"2.4.1 Проблемы с запуском
mysql_install_db
".
Имеются некоторые варианты запуска mysql_install_db
, поскольку
это обеспечивается в дистрибутиве MySQL:
mysql_install_db
перед его
запуском, изменять начальные привилегии, которые будут установлены в таблицы
предоставления привилегий. Это полезно, если Вы хотите устанавливать MySQL на
большом количестве машин с теми же самыми привилегиями. В этом случае Вы,
вероятно, должны будете только добавить несколько дополнительных инструкций
INSERT
к таблицам mysql.user
и
mysql.db
!
mysql_install_db
, а затем
использовать mysql -u root mysql
, чтобы соединиться с таблицами
предоставления привилегий как MySQL-пользователь root
и выдавать
инструкции SQL, чтобы непосредственно изменить таблицы предоставления.
mysql_install_db
.shell> cd mysql_installation_directory shell> bin/safe_mysqld &Если Вы имеете проблемы при запуске сервера, обратитесь за дополнительной информацией к разделу "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, если Вы еще не там. Если это не работает, обратитесь за
подробностями к разделу "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 Version 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_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
не запустился.
mysqld
.
mysql_install_db
. Скурипт mysql_install_db
следует
выполнять только однажды, когда Вы устанавливаете MySQL в первый раз.
mysqld
не работает, когда первый
сервер уже запущен.
Can't start server: Bind on TCP/IP port: Address already in use
или Can't start server : Bind on unix socket...
. Подробности в
разделе "4.1.3 Установка
нескольких серверов на одной и той же машине".
mysql_install_db
или mysqld
.
Вы можете определять иной сокет и временный каталог следующим образом:
shell> TMPDIR=/some_tmp_dir shell> MYSQL_UNIX_PORT=/some_tmp_dir/mysqld.sock shell> export TMPDIR MYSQL_UNIX_PORTПодробности есть в разделе " 8.4.5 Как защитить или менять файл сокета MySQL /tmp/mysql.sock". some_tmp_dir должен быть путем к некоторому каталогу, для которого Вы имеете разрешение на запись. Подробности в разделе "Приложение 2. Переменные окружения ". После этого Вы должны выполнить
mysql_install_db
и запустить
сервер с помощью этих команд:
shell> scripts/mysql_install_db shell> BINDIR/safe_mysqld &
mysqld
немедленно рушится.
glibc
старше,
чем 2.0.7-5, Вы должны удостовериться, что установили все заплаты для
glibc
! Имеется много информации относительно этого в архиве
почты MySQL. Связь с архивом почты доступна интерактивно на
http://www.mysql.com/documentation. Также следует ознакомиться с разделом
"2.6.1 Замечания по Linux (все версии Linux)".
Вы можете также запустить mysqld
вручную, используя опции
--skip-grant-tables
и добавлять информацию о привилегиях
самостоятельно, используя mysql
:
shell> BINDIR/safe_mysqld --skip-grant-tables & shell> BINDIR/mysql -u root mysqlИз
mysql
вручную выполните команды из
mysql_install_db
. Удостоверьтесь, что позже Вы выполняете
mysqladmin flush-privileges
или mysqladmin reload
,
чтобы сервер перезагрузил таблицы предоставления.Если Вы собираетесь использовать таблицы, которые поддерживают транзакции (BDB, InnoDB), Вы должны сначала создать файл my.cnf и установить параметры запуска для тех типов таблиц, которые Вы планируете использовать. Подробности в разделе "7 Типы таблиц MySQL".
Вообще, Вы запускаете сервер mysqld
одним из трех путей:
mysql.server
. Этот скрипт используется прежде
всего при запуске системы, и описан более подробно в разделе
"2.4.3
Автоматический запуск и останов MySQL".
safe_mysqld
, который пробует определить
соответствующие параметры для mysqld
и затем выполняет его с
этими параметрами.. Подробности в разделе "
4.7.2 safe_mysqld, обертка вокруг mysqld".
mysqld
как сервис:
bin\mysqld-nt --install # Install MySQL as a serviceВы можете запускать и выключать сервер
mysqld
так:
NET START mysql NET STOP mysqlЗаметьте, что в этом случае, Вы не можете использовать каких-либо опций для
mysqld
! Можно удалить сервис:
bin\mysqld-nt --remove # remove MySQL as a service
mysqld
непосредственно.Когда mysqld
запускается, он переходит в каталог данных, где
ожидает найти базы данных. Именно там будут записываться файлы протокола и
pid (process ID).
Расположение каталога данных зависит от настроек при построении пакета.
Однако, если mysqld
ожидает найти каталог данных в одном месте,
а он реально расположился где-нибудь в другом, сервер не будет работать
правильно. Если Вы имеете проблемы с неправильными путями, Вы можете выяснить
то, какие параметры понимает mysqld
и заданные по умолчанию
параметры настройки вызовом mysqld
с опцией --help
.
Вы можете отменять значения по умолчанию, определяя правильные имена
каталогов как параметры командной строки 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
падает в дамп ядра при запуске, это может быть из-за
некоторых проблем с файлом регистрации 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...
Используйте ps
, чтобы удостовериться, что Вы не имеете
другого сервера mysqld
. Если Вы не можете его найти, Вы можете
попробовать выполнить команду telnet your-host-name tcp-ip-port-number
и нажать RETURN
несколько раз. Если Вы не получаете
сообщений об ошибках подобно telnet: Unable to connect to remote host:
Connection refused
, стало быть что-то использует TCP/IP порт, который
пробует занять mysqld
. Подробности в разделах
"2.4.1 Проблемы с запуском
mysql_install_db
" и в
"4.1.4 Выполнение нескольких серверов
на одной и той же машине".
Если mysqld
в настоящее время работает, Вы можете выяснить,
какие параметры настройки он использует, выполняя эту команду:
shell> mysqladmin variables
или
shell> mysqladmin -h 'your-host-name' variables
Если safe_mysqld
сервер запускает, но Вы не можете
соединиться с ним, Вы должны удостовериться, что имеете запись в файле
/etc/hosts, которая выглядит следующим образом:
127.0.0.1 localhost
Эта проблема происходит только на системах, которые не имеют рабочую библиотеку потоков, и для которых MySQL должен быть сконфигурирован так, чтобы использовать MIT-pthreads.
Если Вы не можете запустить mysqld
, Вы можете попробовать
сделать файл трассировки, чтобы найти проблему. Подробности в разделе
"6.1.2 Создание файлов трассировки
".
Если Вы используете InnoDB-таблицы, обратитесь к специфическим параметрам запуска. Подробности в разделе "7.6.2 Параметры запуска InnoDB".
Если Вы используете таблицы BDB (Berkeley DB), Вы должны ознакомиться с различными специфическими параметрами запуска BDB. Подробности в разделе "7.5.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 для
промышленных прикладных программ. Обратите внимание, что, если Вы изменяете
mysql.server
, а потом проапгрейдите MySQL, измененная версия
будет перезаписана, так что Вы должны сделать копию Вашей версии.
Если Ваша система использует /etc/rc.local, чтобы запустить внешние скрипты, Вы должны дописать к нему следующее:
/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
на всех таблицах. Иначе Ваши индексы
нельзя будет упорядочивать правильно.
Если Вы боитесь новых версий, Вы можете всегда переименовать Ваш старый
mysqld
на что-то вроде mysqld
-'old-version-number'.
Если Ваш новый mysqld
сделает что-то непредвиденное, Вы можете
просто закрыть его и перезапустить старую версию mysqld
!
Когда Вы делаете обновление, Вы, конечно, должны также зарезервировать Ваши старые базы данных.
Если после обновления Вы испытываете проблемы с перекомпиляцией программ
пользователя, подобно Commands out of sync
, или получаете
неожиданные дампы ядра, Вы, вероятно, использовали старые заголовки или
не тот библиотечный файл при компиляции Ваших программ. В этом случае Вы
должны проверить дату для Вашего файла mysql.h и библиотеки
libmysqlclient.a, чтобы проверить, что они из нового дистрибутива
MySQL. Если это не так, перекомпилируйте Ваши программы!
Если Вы получаете некоторые проблемы, например, новый сервер
mysqld
не хочет запускаться, или Вы не можете соединиться без
пароля, проверьте, что Вы не имеете старый файл my.cnf из Вашей
старой установки! Вы можете проверить это командой program-name
--print-defaults
. Если это выводит что-нибудь другое, чем имя
программы, Вы имеете активный файл my.cnf
, который будет
воздействовать на все вокруг!
Неплохо бы повторно установить дистрибутив Msql-Mysql-modules
всякий раз, когда Вы устанавливаете новый выпуск MySQL, особенно, если Вы
обращаете внимание на нехорошие признаки, типа Ваших скриптов
DBI
, сбрасывающих дамп ядра после апгрейда MySQL.
Вы можете использовать Ваши старые файлы данных без модификаций с Version
4.0. Если Вы хотите перемещать Ваши данные с сервера MySQL 4.0 на старый
сервер, Вы должны использовать mysqldump
.
Старые клиенты могут работать с новым сервером версии 4.0 без проблем.
Следующий список сообщает, что Вы должны не упустить при обновлении до Version 4.0;
mysql_drop_db
,
mysql_create_db
и mysql_connect
теперь не
поддерживаются. Для совместимости можно компилировать MySQL с опцией
USE_OLD_FUNCTIONS
.
TRUNCATE TABLE
, когда Вы хотите
удалить все строки из таблицы. (Потому, что TRUNCATE TABLE
работает быстрее, чем DELETE FROM table_name
).
LOCK TABLES
или
транзакцию при попытке выполнить TRUNCATE TABLE
или
DROP DATABASE
.MySQL Version 3.23 поддерживает таблицы нового типа MyISAM
и
старого типа ISAM
. Вы не должны преобразовывать Ваши старые
таблицы, чтобы использовать их с Version 3.23. По умолчанию, все новые
таблицы будут созданы с типом MyISAM
(если Вы не запускаете
mysqld
с опцией --default-table-type=isam
). Вы
можете изменять таблицы ISAM
на таблицы MyISAM
командой ALTER TABLE table_name TYPE=MyISAM
или Perl-скриптом
mysql_convert_table_format
.
Клиенты версий 3.22 и 3.21 могут работать с новым сервером версии 3.23 без каких-либо проблем.
Следующий список сообщает, что Вы должны не упустить при обновлении до Version 3.23:
tis620
,
должны быть подправлены с помощью myisamchk -r
или REPAIR
TABLE
.
DROP DATABASE
на символически связанной базе
данных, связь и первоначальная база данных будут удалены. Этого не случалось
в версии 3.22 потому, что выбор конфигурации не обнаруживал системный вызов
readlink
).
OPTIMIZE TABLE
теперь работает только для таблиц
MyISAM. Для других типов Вы можете использовать
ALTER TABLE
, чтобы оптимизировать таблицу. В течение работы
OPTIMIZE TABLE
обрабатываемая таблица теперь блокирована.
mysql
теперь по умолчанию запускается с опцией
--no-named-commands (-g)
. Эта опция может быть заблокирована с
помощью --enable-named-commands (-G)
. Это может вызывать
проблемы несовместимости в некоторых случаях, например, в скриптах SQL,
которые используют именованные команды без точки с запятой! Длинный формат
команд все еще работает из первой строки.
german
) символьный порядок
сортировки, Вы должны обработать все Ваши таблицы с isamchk -r
,
поскольку авторы пакета сделали некоторые изменения в порядке сортировки!
IF
теперь будет зависеть
от обоих параметров, а не только от первого параметра.
AUTO_INCREMENT
не будет работать с отрицательными числами.
Причина этого в том, что отрицательные числа вызывали проблемы при переходе
от -1 к 0. AUTO_INCREMENT
теперь для таблиц MyISAM работает
намного быстрее, чем прежде. Для таблиц MyISAM старые числа больше
многократно не используются, даже если Вы удаляете строки из таблицы.
CASE
, DELAYED
, ELSE
,
END
, FULLTEXT
, INNER
,
RIGHT
, THEN
и WHEN
теперь представляют
собой зарезервированные слова.
FLOAT(X)
теперь истинный тип с плавающей запятой, а не
значение с фиксированном числом десятичных чисел.
DECIMAL(length,dec)
параметр длины больше не
включает место для знака или десятичной отметки.
TIME
теперь должна иметь один из следующих форматов:
[[[DAYS] [H]H:]MM:]SS[.fraction]
или
[[[[[H]H]H]H]MM]SS[.fraction]
LIKE
теперь сравнивает строки, использующие те же самые
символьные правила сравнения, что и =
. Если Вы требуете
старого поведения, Вы можете откомпилировать MySQL с параметром
CXXFLAGS=-DLIKE_CMP_TOUPPER
.
REGEXP
теперь нечувствителен к регистру для нормальных (не
двоичных) строк.
CHECK TABLE
или myisamchk
для таблиц
MyISAM
(.MYI
) и isamchk
для
ISAM-таблиц (.ISM
).
mysqldump
были совместимыми
между MySQL Version 3.22 и Version 3.23, Вы не должны использовать опции
--opt
или --full
в вызове mysqldump
.
DATE_FORMAT()
чтобы
удостовериться, что имеется символ `%' перед каждым символом
управления форматом данных.
mysql_fetch_fields_direct
теперь функция (раньше это было
макрокомандой) и возвращает указатель на MYSQL_FIELD
вместо
MYSQL_FIELD
.
mysql_num_fields()
больше не может использоваться на объекте
MYSQL*
: это теперь функция, которая берет как параметр
MYSQL_RES*
. Вы должны теперь использовать вместо этого
mysql_field_count()
.
SELECT DISTINCT ...
почти всегда
сортировался. В Version 3.23 Вы должны использовать GROUP BY
или
ORDER BY
, чтобы получить сортируемый вывод.
SUM()
теперь возвращает NULL
вместо 0, если не
имеется никаких строк соответствий. Это согласно ANSI SQL.
AND
или OR
со значениями NULL
теперь возвратит NULL
вместо 0. Это обычно воздействует на
запросы, которые используют NOT
на выражениях с
AND/OR
как NOT NULL
=NULL
.
LPAD()
и RPAD()
сократит строку результата, если
она более длинная, чем заданный параметр длины.Ничего такого, что воздействует на совместимость, не изменилось между
Version 3.21 и 3.22. Единственная ловушка в том, что новые таблицы, которые
созданы со столбцами типа DATE
, используют новый способ хранить
дату. Вы не можете обращаться к этим новым полям из старой версии
mysqld
.
После установки MySQL Version 3.22 Вы должны запустить новый сервер, а
затем выполнить скрипт mysql_fix_privilege_tables
. Это добавит
новые привилегии для команды GRANT
. Если Вы забудете сделать
это, получите ошибку Access denied
, когда попробуете
использовать ALTER TABLE
, CREATE INDEX
или
DROP INDEX
. Если Ваш MySQL-пользователь root требует пароль, Вы
должны задать его как параметр mysql_fix_privilege_tables
.
интерфейс C API для mysql_real_connect()
изменился. Если Вы
имеете старую программу-клиента, которая вызывает эту функцию, Вы должны
поместить 0
в новый параметр db
(или переписать
клиента, чтобы послать элемент db
, чтобы делать более быстрые
подключения). Вы должны также вызвать mysql_init()
перед вызовом
mysql_real_connect()
! Это изменение было выполнено, чтобы
позволить новой функции mysql_options()
сохранять параметры в
структуре драйвера MYSQL
.
Переменная mysqld
key_buffer
переименована в
key_buffer_size
, но Вы все еще можете использовать старое имя в
Ваших файлах запуска.
Если Вы управляете версией старше, чем Version 3.20.28, и хотите перейти на Version 3.21, Вы должны сделать следующее:
Вы можете запустить сервер mysqld
Version 3.21 вызовом
safe_mysqld --old-protocol
, чтобы использовать с клиентами из
дистрибутива Version 3.20. В этом случае новая клиентская функция
mysql_errno()
не будет возвращать серверных ошибок, только
CR_UNKNOWN_ERROR
(но это работает для ошибок клиента), а сервер
использует старый способ проверки пароля функцией password()
.
Если Вы НЕ используете опцию --old-protocol
с mysqld
, Вы должны сделать следующие изменения:
scripts/add_long_password
должен быть выполнен, чтобы
преобразовать поле Password
в таблице mysql.user
к типу CHAR(16)
.
mysql.user
(чтобы стать 62-разрядными).
MySQL Version 3.20.28 и выше может обрабатывать новый формат таблицы
user
без того, чтобы воздействовать на клиентуру. Если Вы имеете
MySQL версии ниже, чем Version 3.20.28, пароли больше не будут работать с
ним, если Вы преобразуете таблицу user
.
Новый код клиентов работает с сервером mysqld
3.20.x, так
что, если Вы испытываете проблемы с 3.21.x, Вы можете использовать старый
сервер 3.20.x без того, чтобы перекомпилировать клиентуру еще раз.
Если Вы не используете опцию --old-protocol
с
mysqld
, старая клиентура выдаст сообщение об ошибке:
ERROR: Protocol mismatch. Server Version = 10 Client Version = 9
Новый интерфейс Perl DBI
/DBD
также поддерживает
старый интерфейс mysqlperl
. Единственное изменение, которое Вы
должны сделать, если Вы используете интерфейс mysqlperl
: нужно
заменить параметры в функции connect()
. Новые аргументы:
host
, database
, user
и
password
(параметры user
и password
теперь поменялись местами).
Следующие изменения могут воздействовать на запросы в старых программах:
HAVING
теперь должно быть определено перед любым
предложением ORDER BY
.
LOCATE()
переставлены местами.
DATE
, TIME
и TIMESTAMP
.Если Вы используете MySQL Version 3.23, Вы можете копировать файлы
.frm
, .MYI
и .MYD
между различным
архитектурами, которые поддерживают тот же самый формат с плавающей запятой.
MySQL ISAM
-файлы данных и индекса (.ISD и
*.ISM, соответственно) зависимы от архитектуры. Если Вы хотите
переместить Ваши прикладные программы на другую машину, которая имеет иную
архитектуру или ОС, Вы не должны пробовать перемещать базу данных, просто
копируя файлы на другую машину. Вместо этого используйте
mysqldump
.
По умолчанию mysqldump
создаст файл с инструкциями SQL. Вы
можете затем передать файл на другую машину и подать его на ввод клиента
mysql
.
Вызов mysqldump --help
покажет то, какие параметры являются
доступными. Если Вы перемещаете данные к более новой версии MySQL, Вы должны
использовать mysqldump --opt
с более новой версией, чтобы
получить быстрый, компактный дамп.
Самый простой (хотя не самый быстрый) способ перемещать базу данных между двумя машинами состоит в том, чтобы выполнить следующие команды на машине, на которой база данных размещена сейчас:
shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name | \ mysql -h 'other hostname' db_name
Если Вы хотите копировать базу данных с удаленной машины через медленную сеть, Вы можете использовать:
shell> mysqladmin create db_name shell> mysqldump -h 'other hostname' --opt --compress db_name \ | mysql db_name
Вы можете также сохранять результат в файле, затем передавать файл целевой машине и загружать файл в базу данных там. Например, Вы можете сбросить в дамп базу данных на исходной машине подобно этому:
shell> mysqldump --quick db_name | gzip > db_name.contents.gz
Файл, созданный в этом примере сжат. Затем передайте это файл целевой машине и выполните эти команды там:
shell> mysqladmin create db_name shell> gunzip < db_name.contents.gz | mysql db_name
Вы можете также использовать mysqldump
и
mysqlimport
, чтобы выполнить передачу базы данных. Для больших
таблиц это намного быстрее, чем простое использование mysqldump
.
В командах, показанных ниже, DUMPDIR
представляет полное имя
каталога, который Вы используете, чтобы сохранить
вывод из mysqldump
.
Сначала создайте каталог для выходных файлов и дампа база данных:
shell> mkdir DUMPDIR shell> mysqldump --tab=DUMPDIR db_name
Затем передайте файлы в каталоге DUMPDIR
соответствующему
каталогу на целевой машине и загрузите файлы в MySQL там:
shell> mysqladmin create db_name # Создать базу данных shell> cat DUMPDIR/*.sql | mysql db_name # Создать таблицы в базе данных shell> mysqlimport db_name DUMPDIR/*.txt # Загрузить данные в таблицы
Также не забудьте скопировать базу данных mysql
потому, что
именно там хранятся таблицы предоставления привилегий (user
,
db
, host
). Вам, вероятно, придется выполнять
команды как MySQL-пользователь root
на новой машине, пока Вы не
имеете на ней базу данных mysql
со старой.
После того, как Вы импортируете базу данных mysql
на новую
машине, выполните mysqladmin flush-privileges
, чтобы сервер
перезагрузил информацию таблицы предоставления привилегий.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |