Глава 2. Установка и обновление MySQL

Эта глава описывает, как получить и установить MySQL. Более поздние разделы обеспечивают детали. Если Вы планируете обновить существующую версию MySQL к более новой версии, а не установить MySQL впервые, см. раздел 2.10.1.

Если Вы интересуетесь переходом к MySQL от другой системы базы данных, см. раздел A.8, который содержит ответы на некоторые общие вопросы относительно проблем перехода.

Установка MySQL вообще следует за шагами, обрисованными в общих чертах здесь:

  1. Определите, работает ли MySQL и поддержан на Вашей платформе.

    Пожалуйста, отметьте, что не все платформы являются одинаково подходящими для того, чтобы выполнить MySQL, и что не все платформы, на которых MySQL, как известно, работает, официально поддержаны Oracle Corporation. Для информации о тех платформах, которые официально поддержаны, см. http://www.mysql.com/support/supportedplatforms/database.html .

  2. Выберите, который дистрибутив установить.

    Несколько версий MySQL доступны, и большинство доступно в нескольких форматах. Вы можете выбрать из предварительно упакованных, содержащих предварительно собранные программы или исходный код. Когда в сомнении, используйте двоичный дистрибутив. Oracle также обеспечивает доступ к исходному коду MySQL для тех, кто хочет видеть недавние события и проверить новый код. Чтобы определить, какую версию и тип Вы должны использовать, см. раздел 2.1.1.

  3. Загрузите дистрибутив, который Вы хотите установить .

    Для инструкций см. раздел 2.1.2. Чтобы проверить целостность, используйте инструкции в разделе 2.1.3.

  4. Установите дистрибутив.

    Чтобы установить MySQL из двоичного дистрибутива, используйте инструкции в разделе 2.2.

    Чтобы установить MySQL из исходного дистрибутива или текущего исходного дерева развития, используйте инструкции в разделе 2.8.

  5. Выполните любую необходимую постустановку.

    После установки MySQL см. раздел 2.9 для информации об удостоверении, что сервер MySQL работает должным образом. Также обратитесь к информации, предоставленной в разделе 2.9.4. Этот раздел описывает, как обеспечить начальную учетную запись пользователя MySQL root у которой нет никакого пароля, пока Вы не назначите его.

  6. Если Вы хотите выполнить эталонные тесты MySQL, поддержка Perl MySQL должна быть доступной. См. раздел 2.11.

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

2.1. Общее руководство по установке

Следующие разделы содержат информацию, необходимую, чтобы выбрать, загрузить и проверить Ваш дистрибутив. Инструкции в более поздних разделах главы описывают, как установить дистрибутив, который Вы выбираете. Для двоичных дистрибутивов см. инструкции в разделе 2.2 или соответствующем разделе для Вашей платформы при наличии. Чтобы создать MySQL из исходных текстов, используйте инструкции в разделе 2.8.

2.1.1. Какую версию MySQL и дистрибутив установить

MySQL доступен на многих операционных системах и платформах. Для информации о платформах, поддержанных GA releases MySQL см. http://www.mysql.com/support/supportedplatforms/database.html . Для версий развития MySQL доступных для многих платформ, см. http://dev.mysql.com/downloads/mysql/8.0.html. Чтобы узнать больше о поддержке MySQL, см. http://www.mysql.com/support/.

Готовясь устанавливать MySQL, решите, который формат дистрибутива и версию использовать.

Во-первых, решите, установить ли выпуск развития или General Availability (GA). Выпуски развития имеют новейшие особенности, но не рекомендуются для производственного использования. Выпуски GA, также названные устойчивыми выпусками, предназначаются для производственного использования. Мы рекомендуем использовать новый выпуск GA.

Схема именования в MySQL 8.0 применяет имена, которые состоят из трех чисел и дополнительного суффикса: например, mysql-8.0.0-dmr. Числа в пределах имени выпуска интерпретируются следующим образом:

Имена выпуска могут также включать суффикс, чтобы указать на уровень стабильности выпуска. Выпуски в пределах ряда прогрессируют через ряд суффиксов, чтобы указать, как уровень стабильности улучшается. Возможные суффиксы:

Развитие в пределах ряда начинается с выпусков DMR, сопровождаемых RC, и наконец достигает выпусков состояния GA.

После выбора, которую версию MySQL установить, решите, который формат дистрибутива установить для Вашей операционной системы. Для большинства случаев использования подходит двоичный дистрибутив. Двоичные дистрибутивы доступны в родном формате для многих платформ, как пакеты RPM для Linux или DMG для OS X. Дистрибутивы также доступны в большем количестве форматов, таких как архивы Zip или сжатые файлы tar. В Windows Вы можете использовать MySQL Installer, чтобы установить двоичный дистрибутив.

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

2.1.2. Как получить MySQL

Проверьте нашу страницу загрузок http://dev.mysql.com/downloads/ для информации о текущей версии MySQL и для того, чтобы загрузить инструкции. Полный современный список зеркал сайта есть на http://dev.mysql.com/downloads/mirrors.html. Вы можете также найти там информацию о создании зеркала сайта MySQL и том, как сообщить о плохом или устаревшем зеркале.

Для RPM Linux, которые используют Yum в качестве их системы управления пакетами, MySQL может быть установлен, используя MySQL Yum Repository. См. раздел 2.5.1.

Для многих Debian Linux, таких как Ubuntu, MySQL может быть установлен, используя MySQL APT Repository. См. раздел 2.5.2.

Для SUSE Linux Enterprise Server (SLES) MySQL может быть установлен, используя MySQL SLES Repository. См. раздел 2.5.3.

Чтобы получить исходные тексты см. раздел 2.8.3.

2.1.3. Подтверждение целостности пакета, используя контрольные суммы MD5 или GnuPG

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

Следующие разделы описывают, как использовать эти методы.

Если Вы замечаете, что контрольная сумма MD5 или подпись GPG не соответствуют, сначала попытайтесь загрузить соответствующий пакет еще раз, возможно, с другого зеркала сайта.

2.1.3.1. Подтверждение контрольной суммы MD5

После того, как Вы загрузили пакет MySQL, Вы должны удостовериться, что его контрольная сумма MD5 соответствует обеспеченной на странице загрузки MySQL. У каждого пакета есть отдельная контрольная сумма, что Вы можете проверить для пакета, что загружали. Правильные контрольные суммы MD5 перечислены на странице загрузок для каждого продукта MySQL, сравните это с контрольной суммой MD5 файла, который Вы загружаете.

Каждая операционная система и установка предлагают свою собственную версию инструментов для того, чтобы проверить контрольную сумму MD5. Как правило, команду называют md5sum или это можно назвать md5, некоторые операционные системы не поставляют это вообще. В Linux это часть пакета GNU Text Utilities, который доступен для широкого диапазона платформ. Вы можете также загрузить исходный код с http://www.gnu.org/software/textutils/. Если Вы устанавливали OpenSSL, можете использовать команду openssl md5 package_name . Windows md5 доступна с http://www.fourmilab.ch/md5/. winMd5Sum графический инструмент проверки MD5, который может быть получен из http://www.nullriver.com/index/products/winmd5sum. Наши примеры для Microsoft Windows используют имя md5.exe.

Linux и Microsoft Windows:

shell> md5sum mysql-standard-8.0.1-linux-i686.tar.gz
aaab65abbec64d5e907dcd41b8699945mysql-standard-8.0.1-linux-i686.tar.gz

shell> md5.exe mysql-installer-community-8.0.1.msi
aaab65abbec64d5e907dcd41b8699945mysql-installer-community-8.0.1.msi

Вы должны проверить, что получающаяся контрольная сумма (строка шестнадцатеричных цифр) соответствует выведенной на экран на странице загрузки сразу после соответствующего пакета.

Удостоверьтесь, что проверили контрольную сумму архивного файла (например, .zip, .tar.gz или .msi), а не файлов, которые содержатся в архиве. Другими словами, проверьте файл прежде, чем извлечь его содержание.

2.1.3.2. Проверка подписи, используя GnuPG

Другой метод подтверждения целостности и подлинности пакета должен использовать цифровые подписи. Это более надежно, чем использование контрольных сумм MD5, но требует большей работы.

Мы подписываем загружаемые пакеты MySQL с помощью GnuPG (GNU Privacy Guard). GnuPG это Open Source альтернатива известной Pretty Good Privacy (PGP) by Phil Zimmermann. См. http://www.gnupg.org/ для получения дополнительной информации о GnuPG и том, как получить и установить его на Вашей системе. Большинство дистрибутивов Linux идут с GnuPG по умолчанию. Для получения дополнительной информации о GnuPG см. http://www.openpgp.org/.

Чтобы проверить подпись для определенного пакета, Вы сначала должны получить копию публичного ключа GPG, который Вы можете загрузить с http://pgp.mit.edu/. Ключ, который Вы хотите получить, называется mysql-build@oss.oracle.com. Альтернативно, Вы можете скопировать и вставить ключ непосредственно из следующего текста:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (SunOS)

mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q2TXlTUUwgUmVs
ZWFzZSBFbmdpbmVlcmluZyA8bXlzcWwtYnVpbGRAb3NzLm9yYWNsZS5jb20+iGkE
ExECACkCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAIZAQUCUwHUZgUJGmbLywAK
CRCMcY07UHLh9V+DAKCjS1gGwgVI/eut+5L+l2v3ybl+ZgCcD7ZoA341HtoroV3U
6xRD09fUgeq0O015U1FMIFBhY2thZ2Ugc2lnbmluZyBrZXkgKHd3dy5teXNxbC5j
b20pIDxidWlsZEBteXNxbC5jb20+iG8EMBECAC8FAk53Pa0oHSBidWlsZEBteXNx
bC5jb20gd2lsbCBzdG9wIHdvcmtpbmcgc29vbgAKCRCMcY07UHLh9bU9AJ9xDK0o
xJFL9vTl9OSZC4lX0K9AzwCcCrS9cnJyz79eaRjL0s2r/CcljdyIZQQTEQIAHQUC
R6yUtAUJDTBYqAULBwoDBAMVAwIDFgIBAheAABIJEIxxjTtQcuH1B2VHUEcAAQGu
kgCffz4GUEjzXkOi71VcwgCxASTgbe0An34LPr1j9fCbrXWXO14msIADfb5piEwE
ExECAAwFAj4+o9EFgwlmALsACgkQSVDhKrJykfIk4QCfWbEeKN+3TRspe+5xKj+k
QJSammIAnjUz0xFWPlVx0f8o38qNG1bq0cU9iEwEExECAAwFAj5CggMFgwliIokA
CgkQtvXNTca6JD+WkQCgiGmnoGjMojynp5ppvMXkyUkfnykAoK79E6h8rwkSDZou
iz7nMRisH8uyiEYEEBECAAYFAj+s468ACgkQr8UjSHiDdA/2lgCg21IhIMMABTYd
p/IBiUsP/JQLiEoAnRzMywEtujQz/E9ono7H1DkebDa4iEYEEBECAAYFAj+0Q3cA
CgkQhZavqzBzTmbGwwCdFqD1frViC7WRt8GKoOS7hzNN32kAnirlbwpnT7a6NOsQ
83nk11a2dePhiEYEEBECAAYFAkNbs+oACgkQi9gubzC5S1x/dACdELKoXQKkwJN0
gZztsM7kjsIgyFMAnRRMbHQ7V39XC90OIpaPjk3a01tgiEYEExECAAYFAkTxMyYA
CgkQ9knE9GCTUwwKcQCgibak/SwhxWH1ijRhgYCo5GtM4vcAnAhtzL57wcw1Kg1X
m7nVGetUqJ7fiEwEEBECAAwFAkGBywEFgwYi2YsACgkQGFnQH2d7oexCjQCcD8sJ
NDc/mS8m8OGDUOx9VMWcnGkAnj1YWOD+Qhxo3mI/Ul9oEAhNkjcfiEwEEBECAAwF
AkGByzQFgwYi2VgACgkQgcL36+ITtpIiIwCdFVNVUB8xe8mFXoPm4d9Z54PTjpMA
niSPA/ZsfJ3oOMLKar4F0QPPrdrGiEwEEBECAAwFAkGBy2IFgwYi2SoACgkQa3Ds
2V3D9HMJqgCbBYzr5GPXOXgP88jKzmdbjweqXeEAnRss4G2G/3qD7uhTL1SPT1SH
jWUXiEwEEBECAAwFAkHQkyQFgwXUEWgACgkQfSXKCsEpp8JiVQCghvWvkPqowsw8
w7WSseTcw1tflvkAni+vLHl/DqIly0LkZYn5jzK1dpvfiEwEEBECAAwFAkIrW7oF
gwV5SNIACgkQ5hukiRXruavzEwCgkzL5QkLSypcw9LGHcFSx1ya0VL4An35nXkum
g6cCJ1NP8r2I4NcZWIrqiEwEEhECAAwFAkAqWToFgwd6S1IACgkQPKEfNJT6+GEm
XACcD+A53A5OGM7w750W11ukq4iZ9ckAnRMvndAqn3YTOxxlLPj2UPZiSgSqiEwE
EhECAAwFAkA9+roFgwdmqdIACgkQ8tdcY+OcZZyy3wCgtDcwlaq20w0cNuXFLLNe
EUaFFTwAni6RHN80moSVAdDTRkzZacJU3M5QiEwEEhECAAwFAkEOCoQFgwaWmggA
CgkQOcor9D1qil/83QCeITZ9wIo7XAMjC6y4ZWUL4m+edZsAoMOhRIRi42fmrNFu
vNZbnMGej81viEwEEhECAAwFAkKApTQFgwUj/1gACgkQBA3AhXyDn6jjJACcD1A4
UtXk84J13JQyoH9+dy24714Aniwlsso/9ndICJOkqs2j5dlHFq6oiEwEExECAAwF
Aj5NTYQFgwlXVwgACgkQLbt2v63UyTMFDACglT5G5NVKf5Mj65bFSlPzb92zk2QA
n1uc2h19/IwwrsbIyK/9POJ+JMP7iEwEExECAAwFAkHXgHYFgwXNJBYACgkQZu/b
yM2C/T4/vACfXe67xiSHB80wkmFZ2krb+oz/gBAAnjR2ucpbaonkQQgnC3GnBqmC
vNaJiEwEExECAAwFAkIYgQ4FgwWMI34ACgkQdsEDHKIxbqGg7gCfQi2HcrHn+yLF
uNlH1oSOh48ZM0oAn3hKV0uIRJphonHaUYiUP1ttWgdBiGUEExECAB0FCwcKAwQD
FQMCAxYCAQIXgAUCS3AvygUJEPPzpwASB2VHUEcAAQEJEIxxjTtQcuH1sNsAniYp
YBGqy/HhMnw3WE8kXahOOR5KAJ4xUmWPGYP4l3hKxyNK9OAUbpDVYIh7BDARAgA7
BQJCdzX1NB0AT29wcy4uLiBzaG91bGQgaGF2ZSBiZWVuIGxvY2FsISBJJ20gKnNv
KiBzdHVwaWQuLi4ACgkQOcor9D1qil/vRwCdFo08f66oKLiuEAqzlf9iDlPozEEA
n2EgvCYLCCHjfGosrkrU3WK5NFVgiI8EMBECAE8FAkVvAL9IHQBTaG91bGQgaGF2
ZSBiZWVuIGEgbG9jYWwgc2lnbmF0dXJlLCBvciBzb21ldGhpbmcgLSBXVEYgd2Fz
IEkgdGhpbmtpbmc/AAoJEDnKK/Q9aopfoPsAn3BVqKOalJeF0xPSvLR90PsRlnmG
AJ44oisY7Tl3NJbPgZal8W32fbqgbIkCIgQQAQIADAUCQYHLhQWDBiLZBwAKCRCq
4+bOZqFEaKgvEACCErnaHGyUYa0wETjj6DLEXsqeOiXad4i9aBQxnD35GUgcFofC
/nCY4XcnCMMEnmdQ9ofUuU3OBJ6BNJIbEusAabgLooebP/3KEaiCIiyhHYU5jarp
ZAh+Zopgs3Oc11mQ1tIaS69iJxrGTLodkAsAJAeEUwTPq9fHFFzC1eGBysoyFWg4
bIjz/zClI+qyTbFA5g6tRoiXTo8ko7QhY2AA5UGEg+83Hdb6akC04Z2QRErxKAqr
phHzj8XpjVOsQAdAi/qVKQeNKROlJ+iq6+YesmcWGfzeb87dGNweVFDJIGA0qY27
pTb2lExYjsRFN4Cb13NfodAbMTOxcAWZ7jAPCxAPlHUG++mHMrhQXEToZnBFE4nb
nC7vOBNgWdjUgXcpkUCkop4b17BFpR+k8ZtYLSS8p2LLz4uAeCcSm2/msJxT7rC/
FvoH8428oHincqs2ICo9zO/Ud4HmmO0O+SsZdVKIIjinGyOVWb4OOzkAlnnhEZ3o
6hAHcREIsBgPwEYVTj/9ZdC0AO44Nj9cU7awaqgtrnwwfr/o4V2gl8bLSkltZU27
/29HeuOeFGjlFe0YrDd/aRNsxbyb2O28H4sG1CVZmC5uK1iQBDiSyA7Q0bbdofCW
oQzm5twlpKWnY8Oe0ub9XP5p/sVfck4FceWFHwv+/PC9RzSl33lQ6vM2wIkCIgQT
AQIADAUCQp8KHAWDBQWacAAKCRDYwgoJWiRXzyE+D/9uc7z6fIsalfOYoLN60ajA
bQbI/uRKBFugyZ5RoaItusn9Z2rAtn61WrFhu4uCSJtFN1ny2RERg40f56pTghKr
D+YEt+Nze6+FKQ5AbGIdFsR/2bUk+ZZRSt83e14Lcb6ii/fJfzkoIox9ltkifQxq
Y7Tvk4noKu4oLSc8O1Wsfc/y0B9sYUUCmUfcnq58DEmGie9ovUslmyt5NPnveXxp
5UeaRc5Rqt9tK2B4A+7/cqENrdZJbAMSunt2+2fkYiRunAFPKPBdJBsY1sxeL/A9
aKe0viKEXQdAWqdNZKNCi8rd/oOP99/9lMbFudAbX6nL2DSb1OG2Z7NWEqgIAzjm
pwYYPCKeVz5Q8R+if9/fe5+STY/55OaI33fJ2H3v+U435VjYqbrerWe36xJItcJe
qUzW71fQtXi1CTEl3w2ch7VF5oj/QyjabLnAlHgSlkSi6p7By5C2MnbCHlCfPnIi
nPhFoRcRGPjJe9nFwGs+QblvS/Chzc2WX3s/2SWm4gEUKRX4zsAJ5ocyfa/vkxCk
SxK/erWlCPf/J1T70+i5waXDN/E3enSet/WL7h94pQKpjz8OdGL4JSBHuAVGA+a+
dknqnPF0KMKLhjrgV+L7O84FhbmAP7PXm3xmiMPriXf+el5fZZequQoIagf8rdRH
HhRJxQgI0HNknkaOqs8dtrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWs
EN/lxaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLm
RDRiRjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hk
AWzE7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkb
f4fmLe11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHb
uE5p/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+
Lwqqa8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1Z
aSafanFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGo
TbOWI39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev4
2LmuQT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkK
Ht926s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUO
etdZWhe70YGNPw1yjWJT1IhUBBgRAgAMBQJOdz3tBQkT+wG4ABIHZUdQRwABAQkQ
jHGNO1By4fUUmwCbBYr2+bBEn/L2BOcnw9Z/QFWuhRMAoKVgCFm5fadQ3Afi+UQl
AcOphrnJ
=443I
-----END PGP PUBLIC KEY BLOCK-----

Чтобы импортировать ключ в Ваш личный публичный брелок GPG, используйте gpg --import. Например, если Вы сохранили ключ в файле mysql_pubkey.asc, команда импорта похожа на это:

shell> gpg --import mysql_pubkey.asc
gpg: key 5072E1F5: public key "MySQL Release Engineering
<mysql-build@oss.oracle.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: no ultimately trusted keys found

Вы можете также загрузить ключ с общественного keyserver с использованием id открытого ключа 5072E1F5:

shell> gpg --recv-keys 5072E1F5
gpg: requesting key 5072E1F5 from hkp server keys.gnupg.net
gpg: key 5072E1F5: "MySQL Release Engineering <mysql-build@oss.oracle.com>"
1 new user ID
gpg: key 5072E1F5: "MySQL Release Engineering <mysql-build@oss.oracle.com>"
53 new signatures
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: new user IDs: 1
gpg: new signatures: 53

Если Вы хотите импортировать ключ в свою конфигурацию RPM, чтобы утвердить пакеты установки RPM, Вы должны быть в состоянии импортировать ключ непосредственно:

shell> rpm --import mysql_pubkey.asc

Если Вы испытываете проблемы или требуете RPM-специфичную информацию, см. раздел 2.1.3.4.

После того, как Вы загрузили и импортировали ключ, загрузите Ваш желаемый пакет MySQL и соответствующую подпись, которая также доступна со страницы загрузки. У файла подписи есть то же самое имя, как у файла дистрибутива с расширением .asc, как показано примерами в следующей таблице.

Таблица 2.1. Пакет MySQL и файлы подписи для исходных файлов

Тип файлаИмя файла
Файл дистрибутива mysql-standard-8.0.1-linux-i686.tar.gz
Файл подписи mysql-standard-8.0.1-linux-i686.tar.gz.asc

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

shell> gpg --verify package_name.asc

Если загруженный пакет будет допустим, то Вы будете видеть "Good signature" подобно:

shell> gpg --verify mysql-standard-8.0.1-linux-i686.tar.gz.asc
gpg: Signature made Tue 01 Feb 2011 02:38:30 AM CST using DSA key ID 5072E1F5
gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>"

Сообщение Good signature указывает, что подпись файла допустима. Но Вы могли бы также видеть предупреждения:

shell> gpg --verify mysql-standard-8.0.1-linux-i686.tar.gz.asc
gpg: Signature made Wed 23 Jan 2013 02:25:45 AM PST using DSA key ID 5072E1F5
gpg: checking the trustdb
gpg: no ultimately trusted keys found
gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:There is no indication that the signature belongs to the owner.
Primary key fingerprint: A4A9 4068 76FC BD3C 456770C8 8C71 8D3B 5072 E1F5

Это нормально, поскольку они зависят от Вашей установки и конфигурации. Вот объяснения этих предупреждений:

См. документацию GPG для получения дополнительной информации о том, как работать с открытыми ключами.

2.1.3.3. Проверка подписи, используя Gpg4win для Windows

Раздел 2.1.3.2 описывает, как проверить загрузки MySQL, используя GPG. То руководство также относится к Microsoft Windows, но другая опция должна использовать инструмент GUI Gpg4win. Вы можете использовать различный инструмент, но наши примеры основаны на Gpg4win, и используют его GUI Kleopatra.

Загрузите и установите Gpg4win, затем загрузите Kleopatra. Диалог должен выглядеть подобным образом:

Рис. 2.1. Экран после загрузки Kleopatra

Затем, добавьте сертификат MySQL Release Engineering. Сделайте это, щелкая File, Lookup Certificates on Server . Введите "Mysql Release Engineering" в поле поиска и нажмите Search.

Рис. 2.2. Поиск сертификата MySQL Release Engineering

Выберите сертификат "MySQL Release Engineering". Fingerprint и Key-ID должны быть "5072E1F5", или выберите Details..., чтобы подтвердить, что сертификат допустим. Теперь импортируйте это, щелкая Import. Диалог импорта будет выведен на экран, в нем выберите Okay, и этот сертификат будет теперь перечислен под вкладкой Imported Certificates.

Затем, сконфигурируйте трастовый уровень для нашего сертификата. Выберите сертификат, затем из главного меню выберите Certificates, Change Owner Trust.... Мы предлагаем выбрать I believe checks are very accurate для нашего сертификата, поскольку иначе Вы не в состоянии проверить нашу подпись. Выберите I believe checks are very accurate и OK.

Рис. 2.3. Изменение трастового уровня

Затем, проверьте загруженный файл пакета MySQL. Это требует файлов для упакованного файла и подписи. У файла подписи должно быть то же самое имя, как упакованного файла, но с расширением .asc, как показано примером в следующей таблице. Подпись указана на странице загрузок для каждого продукта MySQL. Вы должны создать файл .asc с этой подписью.

Таблица 2.2. Файлы подписи для установщика MySQL для Microsoft Windows

Тип файлаИмя файла
Файл дистрибутива mysql-installer-community-8.0.1.msi
Файл подписи mysql-installer-community-8.0.1.msi.asc

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

Рис. 2.4. Диалог Decrypt/Verify Files

Нажмите Decrypt/Verify, чтобы проверить файл. Два наиболее распространенных результата будут похожи на следующий, и хотя желтое предупреждение выглядит проблематичным, следующее показывает, что проверка файла прошла с успехом. Вы можете теперь выполнить этот установщик.

Рис. 2.5. Decrypt/Verify Results: Good

Видя красное сообщение "The signature is bad" знайте, что файл недопустим. Не выполняйте файл MSI, если Вы видите эту ошибку.

Рис. 2.6. Decrypt/Verify Results: Bad

Раздел 2.1.3.2 объясняет, почему Вы, вероятно, не видите зеленый цвет результата Good signature.

2.1.3.4. Проверка подписи, используя RPM

Для пакетов RPM нет никакой отдельной подписи. У пакетов RPM есть встроенная подпись GPG и контрольная сумма MD5. Вы можете проверить пакет, выполняя следующую команду:

shell> rpm --checksig package_name.rpm

Пример:

shell> rpm --checksig MySQL-server-8.0.1-0.linux_glibc2.5.i386.rpm
MySQL-server-8.0.1-0.linux_glibc2.5.i386.rpm: md5 gpg OK

Если Вы используете RPM 4.1, и он жалуется на (GPG) NOT OK (MISSING KEYS: GPG#5072e1f5), даже при том, что Вы импортировали публичный ключ MySQL в Ваш собственный брелок GPG, Вы должны импортировать ключ в брелок RPM сначала. Чтобы импортировать открытый ключ MySQL в брелок RPM, сначала получите ключ, затем используйте rpm --import, чтобы импортировать ключ. Например:

shell> gpg --export -a 5072e1f5 > 5072e1f5.asc
shell> rpm --import 5072e1f5.asc

Альтернативно, rpm также поддерживает загрузку ключа непосредственно с URL, и Вы можете использовать эту страницу руководства:

shell> rpm --import http://dev.mysql.com/doc/refman/8.0/en/checking-gpg-signature.html

Если Вы должны получить открытый ключ MySQL, см. раздел 2.1.3.2.

2.1.4. Типы установки

Типы установки отличаются для различных типов дистрибутива (например, родные пакеты, бинарные файлы и исходные тексты), что может привести к беспорядку, управляя различными системами или используя различные источники установки. Отдельные разметки даны в соответствующем типе установки или платформе, как описано после.

2.1.5. Определенные для компилятора характеристики

В некоторых случаях, компилятор, используемый, чтобы создать MySQL, затрагивает особенности, доступные для использования. Примечания в этом разделе касаются двоичных дистрибутивов, обеспеченных Oracle Corporation или того, что Вы собираете из исходных текстов.

icc (Intel C++ Compiler) Builds

У сервера, созданного с icc есть эти характеристики:

2.2. Установка MySQL на Unix/Linux, используя двоичные файлы

Oracle обеспечивает ряд двоичных дистрибутивов MySQL. Они включают двоичные дистрибутивы в форме сжатых файлов tar (файлы с расширением .tar.gz) для многих платформ, и двоичные модули в определенном для платформы формате пакета для выбранных платформ.

Этот раздел покрывает установку MySQL из сжатого дистрибутива tar. Для других определенных для платформы форматов пакета см. другие определенные для платформы разделы. Например, для дистрибутивов Windows см. раздел 2.3.

У сжатых дистрибутивов MySQL tar есть названия формы mysql-VERSION-OS.tar.gz, где VERSION число (например, 8.0.1), а OS указывает на тип операционной системы, для которой предназначен дистрибутив (например, pc-linux-i686 или winx64).

Если Вы ранее установили MySQL, используя Вашу систему управления пакетами операционной системы, такую как yum или apt-get, Вы можете получить проблемы, используя двоичный дистрибутив. Удостоверьтесь, что Ваша предыдущая установка MySQL была удалена полностью (используя Вашу систему управления пакетами), и что любые дополнительные файлы, такие как старые версии Ваших файлов с данными, были также удалены. Вы должны также проверить на конфигурационные файлы, такие как /etc/my.cnf или каталог /etc/mysql и удалить их.

Для информации о замене имеющих отношение к третьей стороне пакетов официальными пакетами MySQL, см. связанные руководства по Apt или Yum.

У MySQL есть зависимость от библиотеки libaio. Инициализация каталога данных и последующие шаги запуска сервера потерпят неудачу, если эта библиотека не будет установлена локально. В случае необходимости, установите это используя соответствующий диспетчер пакетов. Например, на Yum-системах:

shell> yum search libaio  # search for info
shell> yum install libaio # install library

На APT-системах:

shell> apt-cache search libaio # search for info
shell> apt-get install libaio1 # install library

Если Вы сталкиваетесь с проблемами и потребностью зарегистрировать отчет об ошибках, пожалуйста, используйте инструкции в разделе 1.7.

На Unix, чтобы установить сжатый двоичный дистрибутив tar, распакуйте это в местоположение установки, которое Вы выбираете (как правило, /usr/local/mysql). Это создает каталоги, показанные в следующей таблице.

Таблица 2.3. Расположение установки MySQL для двоичного пакета в Unix/Linux

КаталогСодержание
bin, scripts Сервер mysqld , клиент и утилиты
data Файлы системного журнала, базы данных
docs Руководство MySQL в формате Info
manUnix manual pages
include Включаемые (заголовочные) файлы
libБиблиотеки
shareРазные файлы поддержки, включая сообщения об ошибках, типовые конфигурационные файлы, SQL для установки базы данных

Версии отладки mysqld доступны как mysqld-debug. Чтобы собрать Вашу собственную версию отладки MySQL из исходного дистрибутива, используйте соответствующие параметры конфигурации. См. раздел 2.8.

Чтобы установить и использовать двоичный дистрибутив MySQL, последовательность команд похожа на это:

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chmod 750 mysql-files
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysql_ssl_rsa_setup
shell> chown -R root .
shell> chown -R mysql data mysql-files
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

Эта процедура предполагает, что Вы имеете доступ root (administrator) к Вашей системе. Альтернативно, Вы можете выполнить каждую команду, используя команду sudo (Linux) или pfexec (OpenSolaris).

Каталог mysql-files обеспечивает удобное местоположение, чтобы использовать в качестве значения системной переменной secure_file_priv, которая ограничивает операции импорта/экспорта определенным каталогом. См. раздел 6.1.5.

Создайте пользователя и группу mysql

Если у Вашей системы нет пользователя и группы, чтобы использовать для того, чтобы выполнить mysqld , Вы, возможно, должны их создать. Следующие команды добавляют группу mysql и пользователя mysql. Вы могли бы хотеть назвать пользователя и группу как-то иначе вместо mysql. Если это так, замените соответствующее имя в следующих инструкциях. Синтаксис для useradd и groupadd может немного отличаться в разных версиях Unix, или у них могут быть различные имена, такие как adduser и addgroup .

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql

Поскольку пользователь требуется только в целях собственности, а не входа в систему, useradd использует опции -r и -s /bin/false, чтобы создать пользователя, у которого нет разрешений входа в систему. Опустите эти опции, если Ваш useradd не поддерживает их.

Получите и распакуйте дистрибутив

Выберите каталог, в соответствии с которым Вы хотите распаковать дистрибутив и перейдите в него. Пример здесь распаковывает дистрибутив в /usr/local. Инструкции, поэтому, предполагают, что у Вас есть разрешение создавать файлы и каталоги в /usr/local. Если этот каталог защищен, Вы должны выполнить установку как root.

shell> cd /usr/local

Получите файл дистрибутива, используя инструкции в разделе 2.1.2. Для данного выпуска двоичные дистрибутивы для всех платформ созданы из того же самого исходного дистрибутива MySQL.

Распакуйте дистрибутив, который создает каталог установки. tar может расжать и распаковать дистрибутив, если имеет поддержку опции z:

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz

Команда tar создает каталог mysql-VERSION-OS.

Чтобы установить MySQL из сжатого дистрибутива tar , у Вашей системы должна быть утилита GNU gunzip, чтобы расжать, и умная версия tar, чтобы распаковать это. Если Ваша программа tar поддерживает опцию z, она может расжать и распаковать файл.

GNU tar, как известно, работает. Стандартный tar, предоставленный некоторыми операционными системами, не в состоянии распаковать длинные имена файла. Вы должны загрузить и установить GNU tar или, при наличии, использовать предварительно установленную версию GNU tar. Обычно это доступно как gnutar, gtar, или tar в пределах каталога GNU или Free Software в /usr/sfw/bin или /usr/local/bin. GNU tar доступен на http://www.gnu.org/software/tar/.

Если Ваш tar не имеет поддержки опции z, используйте gunzip, чтобы расжать дистрибутив и tar, чтобы распаковать это. Замените предыдущую команду tar следующей альтернативной командой, чтобы расжать и извлечь дистрибутив:

shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

Затем создайте символическую ссылку к каталогу установки, создаваемому tar:

shell> ln -s full-path-to-mysql-VERSION-OS mysql

Команда ln делает символическую ссылку к каталогу установки. Это позволяет Вам обратиться более легко к этому как к /usr/local/mysql. Чтобы избежать необходимости ввода пути программ клиента всегда, когда Вы работаете с MySQL, Вы можете добавить /usr/local/mysql/bin в Вашу переменную PATH:

shell> export PATH=$PATH:/usr/local/mysql/bin

Выполните установку

Остаток процесса установки вовлекает собственность дистрибутива установки и разрешения на доступ, инициализацию каталога данных, запуск сервера MySQL и настройку конфигурационного файла. Для инструкций см. раздел 2.9.

2.3. Установка MySQL на Microsoft Windows

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

Простой метод установки

Самый простой и рекомендуемый метод это загрузить установщик MySQL для Windows и позволить ему устанавливать и конфигурировать все продукты MySQL на Вашей системе:

Вы, вероятно, также устанавливали другие полезные продукты MySQL, например, MySQL Workbench и MySQL Notifier на Вашей системе. Изучите главу 28, чтобы проверить Ваше новое соединение с сервером MySQL, и раздел 2.3.4, чтобы рассмотреть состояние соединения. По умолчанию, эти две программы автоматически запускаются после установки MySQL.

Этот процесс также устанавливает приложение MySQL Installer на Вашей системе, и позже Вы можете использовать MySQL Installer, чтобы обновить или реконфигурировать Ваши продукты MySQL.

Дополнительная информация об установке

MySQL доступен для Microsoft Windows для 32 и 64-битных версий. Для поддержанной информации о платформе Windows см. http://www.mysql.com/support/supportedplatforms/database.html .

Возможно выполнить MySQL как стандартное приложение или как службу Windows. При использовании службы Вы можете контролировать и управлять работой сервера через стандартные инструменты управления службами Windows. Для получения дополнительной информации см. раздел 2.3.5.8.

Вообще, Вы должны установить MySQL на Windows, используя учетную запись, которая имеет права администратора. Иначе, Вы можете столкнуться с проблемами с определенными операциями, такими как редактирование переменной окружения PATH или доступ к Service Control Manager . После того, как установлен, MySQL не должен быть выполнен, используя пользователя с привилегиями Администратора.

Для списка ограничений на использование MySQL на платформе Windows см. раздел C.10.5.

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

Дистрибутивы MySQL для Windows могут быть загружены с http://dev.mysql.com/downloads/. См. раздел 2.1.2.

MySQL for Windows доступен в нескольких форматах дистрибутива, детализированных здесь. Вообще говоря, Вы должны использовать MySQL Installer. Это содержит больше особенностей и продуктов MySQL, чем более старый MSI, более просто использовать, чем файл Zip, и Вы не нуждаетесь ни в каких дополнительных инструментах. MySQL Installer автоматически устанавливает сервер MySQL и дополнительные продукты MySQL, создает файл опций, запускает сервер и позволяет Вам создать учетные записи пользователей по умолчанию. Для получения дополнительной информации о выборе пакета см. раздел 2.3.2.

Проблемы MySQL в Windows:

2.3.1. Расположение установки MySQL на Microsoft Windows

Для MySQL 8.0 в Windows каталог установки по умолчанию C:\Program Files\MySQL\MySQL Server 8.0. Некоторые пользователи Windows предпочитают устанавливать в C:\mysql, каталог, который прежде использовался в качестве значения по умолчанию. Однако, расположение подкаталогов остается тем же самым.

Все файлы расположены в пределах этого родительского каталога, используя структуру, показанную в следующей таблице.

Таблица 2.4. Расположение установки MySQL для Microsoft Windows по умолчанию

Каталог СодержаниеПримечания
bin, scripts mysqld сервер, клиент и утилиты
%PROGRAMDATA%\MySQL\MySQL Server 8.0\ Файлы системного журнала, базы данных Системная переменная Windows %PROGRAMDATA% по умолчанию C:\ProgramData
examples Примеры программ и скриптов
include Файлы заголовков (включаемые)
libБиблиотеки
share Разные файлы поддержки, включая сообщения об ошибках, файлы набора символов, типовые конфигурационные файлы, SQL для установки базы данных

Если Вы устанавливаете MySQL, используя MySQL Installer, этот пакет создает и настраивает каталог данных, который установленный сервер будет использовать, а также создает каталог данных data в соответствии с каталогом установки. После того, как установка была выполнена, используя этот пакет, каталог данных может быть скопирован, чтобы настроить дополнительные экземпляры MySQL. См. раздел 6.7.

2.3.2. Выбор пакета установки

Для MySQL 8.0 есть много форматов пакета установки MySQL в Windows.

Program Database (PDB) (с расширением имени файла pdb) предоставляют информацию для того, чтобы отладить Вашу установку MySQL в случае проблемы. Эти файлы включены в дистрибутив ZIP Archive (но не MSI).

MySQL Installer рекомендуется для большинства пользователей.

Ваш выбор пакета установки затрагивает процесс установки, за которым Вы должны следовать. Если Вы хотите использовать MySQL Installer, см. раздел 2.3.3. Если Вы хотите устанавливать архив Noinstall, см. раздел 2.3.5.

2.3.3. Установка MySQL на Microsoft Windows с помощью MySQL Installer

MySQL Installer это приложение, которое управляет продуктами MySQL на Microsoft Windows. Это устанавливает, обновляет, удаляет и конфигурирует продукты MySQL, и остается в системе ее собственным приложением. MySQL Installer доступен только для Microsoft Windows и включает GUI и интерфейс командной строки.

Поддержанные продукты MySQL включают:

Типы пакета установщика

Выпуски Installer

MySQL Installer совместим с существующими ранее установками и добавляет их к своему списку установленных компонентов. В то время как стандартный MySQL Installer связан определенной версией сервера MySQL, единственный случай MySQL Installer может установить и управлять многими версиями сервера MySQL. Например, единственный MySQL Installer может установить (и обновить) версии 5.6, 5.7, и 8.0 на том же самом хосте.

У единственного узла не может быть установлен MySQL server коммерческой и версии сообщества. Например, если Вы хотите MySQL Server 5.7 и 8.0 на единственном узле, оба должны быть тем же самым выпуском.

MySQL Installer обрабатывает начальную конфигурацию. Например:

MySQL Installer может произвольно проверить обновленные компоненты и загрузить их для Вас.

2.3.3.1. MySQL Installer GUI

MySQL Installer добавляет ссылку в меню "Пуск" под группой MySQL. Щелкните Start, All Programs, MySQL, MySQL Installer, чтобы перезагрузить MySQL Installer GUI.

Полные разрешения предоставляют MySQL Installer доступ ко всем произведенным файлам, таким как my.ini. Это не относится к файлам и каталогам для определенных продуктов, таким как каталог серверных данных в %ProgramData%, это принадлежит SYSTEM.

MySQL Installer требует, чтобы Вы приняли лицензионное соглашение прежде, чем это установит продукты MySQL.

Рис. 2.7. MySQL Installer License Agreement

Установка новых пакетов

Выберите соответствующий Setup Type для своей системы. Этот тип определяет, какие продукты MySQL первоначально установлены в Вашей системе, или выберите Custom, чтобы вручную выбрать продукты.

Рис. 2.8. MySQL Installer. Выбор типа установки

MySQL Installer проверяет Вашу систему на внешние требования (предпосылки), требуемые, чтобы устанавливать выбранные продукты MySQL. MySQL Installer может загрузить и установить некоторые пакеты, но другие требуют ручного вмешательства. Загрузите и установите все пакеты, которые имеют Status "Manual". Щелкните Check, чтобы перепроверить, если пакет был установлен вручную. После ручной установки тех требований, щелкните Execute, чтобы загрузить и установить другие пакеты. После того, как закончите, щелкните Next.

Рис. 2.9. MySQL Installer. Проверка требований

Следующее окно перечисляет продукты MySQL, которые намечены для установки:

Рис. 2.10. MySQL Installer. Продвижение установки

Поскольку компоненты установлены, их Status изменяется на "Complete".

После того, как все компоненты установлены, следующий шаг конфигурирует некоторые из недавно установленных продуктов MySQL. Окно Configuration Overview показывает процесс и затем загружают окно конфигурации, если требуется. Наш пример конфигурирует MySQL Server 5.7.x.

Настройка MySQL Server

Конфигурирование сервера MySQL начинается с определения нескольких опций Type and Networking.

Рис. 2.11. MySQL Installer. Краткий обзор конфигурации

Тип конфигурации сервера

Выберите тип конфигурации сервера MySQL, который описывает Вашу установку. Эта установка определяет количество системных ресурсов (памяти), которые будут назначены на Ваш экземпляр сервера MySQL.

Связь

Опции связи управляют, как соединение с MySQL сделано. Опции включают:

Расширенная конфигурация

Нажмите Show Advanced Options, чтобы установить дополнительные Logging Options. Это включает определяющие пользовательские пути к файлам для журнала ошибок, общего журнала, журнала медленных запросов (включая конфигурацию секунд, которые требуются, чтобы выполнить запрос) и двоичного журнала.

Рис. 2.12. MySQL Installer. MySQL Server Configuration: Type and Networking

Учетные записи и роли

Определите свою информацию об учетной записи MySQL. Назначение пароля root требуется.

Вы можете добавить дополнительные учетные записи пользователя MySQL с предопределенными пользовательскими ролями. Каждая предопределенная роль, такая как "DB Admin", сконфигурирована с их собственным набором привилегий. Например, у "DB Admin" больше привилегий, чем у "DB Designer". Щелкните по Role для списка ролевых описаний.

Если MySQL Server уже установлен, то Вы должны также ввести Current Root Password.

Рис. 2.13. MySQL Installer. Конфигурация сервера MySQL: Учетные записи пользователя и роли

Рис. 2.14. MySQL Installer. Добавление пользователя

Windows Service

Сконфигурируйте детали Windows Service. Это включает имя службы, должен ли сервер MySQL быть загружен при запуске, как служба Windows сервера MySQL выполнена.

Рис. 2.15. MySQL Installer. Конфигурация сервера MySQL: служба Windows

Конфигурируя Run Windows Services as ... с использованием Custom User, у пользователя должны быть привилегии, чтобы войти в систему Microsoft Windows как служба. Кнопка Next будет отключена, пока этот пользователь не будет сконфигурирован с необходимыми привилегиями.

В Microsoft Windows 7 это может быть сконфигурировано, загружая Start Menu, Control Panel, Administrative Tools, Local Security Policy, Local Policies, User Rights Assignment, Log On As A Service. Выберите Add User or Group, чтобы добавить пользователя, а затем OK, OK, чтобы сохранить.

Плагины и расширения

Включите плагины и расширения MySQL. В этом примере мы позволяем X Plugin использовать MySQL в качестве хранилища документа.

Рис. 2.16. MySQL Installer. Плагины и расширения

Экран Plugins and Extensions в MySQL Installer появляется только при новой установке MySQL. Если Вы обновляетесь от предыдущей версии MySQL, то Вы должны выполнить установщик снова и выбрать reconfigure MySQL Server.

Расширенные опции

Следующий шаг конфигурации доступен, если отмечена опция Advanced Configuration. Этот раздел включает опции, которые связаны с файлами системного журнала MySQL:

Рис. 2.17. MySQL Installer. Журналирование MySQL Server

Нажмите Next, чтобы перейти к заключительной странице прежде, чем все требуемые изменения будут применены. Страница Apply Server Configuration показывает шаги конфигурации, которые будут выполнены.

Рис. 2.18. MySQL Installer. Apply Server Configuration

Нажмите Execute, чтобы выполнить шаги конфигурации. Значок для каждого шага переключается от белого до зеленого при успехе, или процесс прервется при сбое. Щелкните по вкладке Log, чтобы просмотреть журнал.

После того, как процесс конфигурации MySQL Installer закончен, MySQL Installer перезагружает вводную страницу, где Вы можете выполнить другую установку.

MySQL Installer добавлен к Microsoft Windows Start menu в группе MySQL. Открытие MySQL Installer загружает свою инструментальную панель, где установленные продукты MySQL перечислены и доступны другие действия MySQL Installer:

Рис. 2.19. MySQL Installer. Основная инструментальная панель

Добавление продуктов MySQL

Нажмите Add, чтобы добавить новые продукты. Это загружает страницу Select Products and Features:

Рис. 2.20. MySQL Installer. Select Products and Features

Выберите продукты MySQL, которые Вы хотите установить с левой панели Available Products, затем щелкните по зеленой стрелке вправо к продуктам очереди для установки.

Или щелкните Edit, чтобы открыть фильтр поиска:

Рис. 2.21. MySQL Installer. Фильтр продуктов и особенностей

Например, Вы могли бы хотеть включать продукты Pre-Release в свой выбор, такие как Beta-версии, которые еще не достигли статуса General Availability (GA).

Выберите все продукты MySQL, которые Вы хотите установить, затем щелкните Next, чтобы использовать значения по умолчанию, или выделите выбранный продукт и щелкните Advanced Options, чтобы произвольно изменить опции, такие как серверные данные MySQL и пути установки. Щелкните Execute, чтобы выполнить процесс установки, чтобы установить все выбранные продукты.

2.3.3.1.1. MySQL Product Catalog

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

Обновление каталога продукции также проверяет на более новую версию MySQL Installer и запрашивает обновление, если оно есть.

Ручные обновления

Вы можете обновить каталог продукции MySQL в любое время, щелкая Catalog в инструментальной панели.

Рис. 2.22. MySQL Installer. Каталог продукции MySQL

Щелкните Execute, чтобы обновить каталог продукции.

Автоматические обновления

MySQL Installer может автоматически обновить каталог продукции MySQL. По умолчанию эта опция активирована, чтобы выполнить проверку обновлений каждый день в 0:00. Чтобы сконфигурировать эту особенность, щелкните по значку на инструментальной панели.

Следующее окно конфигурирует Automatic Catalog Update. Включите или отключите эту опцию, а также установите час.

Рис. 2.23. MySQL Installer. Настройка планировщика каталога

Эта опция использует планировщик задач Windows, чтобы наметить задачу по имени "Manifest Update".

История изменения

MySQL Installer отслеживает историю изменения для всех продуктов MySQL. Щелкните Catalog в инструментальной панели, произвольно обновите каталог (или переключите Do not update at this time), нажмите Next/Execute и затем рассмотрите историю изменения.

Рис. 2.24. MySQL Installer. История изменения каталога

2.3.3.1.2. Удаление продуктов MySQL

MySQL Installer может также удалить продукты MySQL из Вашей системы. Чтобы удалить продукт MySQL, щелкните Remove из инструментальной панели. Это открывает окно со списком установленных продуктов MySQL. Выберите продукты MySQL, которые Вы хотите удалить, а затем щелкните Execute . Чтобы выбрать все продукты MySQL, щелкните [ ] слева от метки Product.

Рис. 2.25. MySQL Installer. Удаление продуктов: выбор

Рис. 2.26. MySQL Installer. Удаление продуктов: выполнение

2.3.3.1.3. Измените продукты MySQL

Используйте MySQL Installer, чтобы изменить, сконфигурировать или обновить Ваши установки продукта MySQL.

Обновление

Допускающие обновление продукты MySQL перечислены на основной инструментальной панели со значком стрелки () рядом с их номером версии.

Рис. 2.27. MySQL Installer. Обновление продукта MySQL

Функциональность "обновления" требует текущего каталога продукции. Этот каталог обновлен вручную или автоматически (ежедневно), активируя Automatic Catalog Update.

Щелкните Upgrade, чтобы обновить доступные продукты. Наш пример указывает, что инструментальные средства MySQL 6.2.4 могут быть обновлены до версии 6.3.1 или 6.2.5, а сервер MySQL с 5.5.41 до 5.5.42.

Рис. 2.28. MySQL Installer. избранные продукты, чтобы обновить

Если много версий обновления доступны (такие, как наш пример инструментальных средств MySQL выше), выберите желаемую версию для обновления в области Available Upgrades.

Щелкните по ссылке Changes, чтобы просмотреть информацию о версии.

После выбора (проверки) продуктов и версий, чтобы обновить, щелкните по Next.

Рис. 2.29. MySQL Installer применяет обновления

Обновление сервера MySQL также проверит и обновит базу данных сервера. Этот шаг рекомендуется.

Рис. 2.30. MySQL Installer. Проверка и обновление базы данных

После завершения Ваши продукты будут обновлены и доступны к использованию. Обновление сервера MySQL также перезапускает сервер MySQL.

Реконфигурирование

Некоторые продукты MySQL, такие как сервер MySQL, включают опцию Reconfigure. Это открывает те же самые параметры конфигурации, которые были установлены, когда продукт MySQL был установлен.

Чтобы выполнить, щелкните Reconfigure под столбцом Quick Action на основной инструментальной панели для продукта MySQL, который Вы хотите реконфигурировать.

Рис. 2.31. MySQL Installer. Реконфигурирование продукта MySQL

В случае сервера MySQL это открывает мастер конфигурации, который касается выбранного продукта. Например, для сервера MySQL это включает установку типа, портов, путей журнала и так далее.

Изменение

Много продуктов MySQL содержат компоненты, которые могут быть добавлены или удалены. Например, Debug binaries и Client Programs субкомпоненты сервера MySQL.

Для изменения особенностей продукта, щелкните Modify в основной инструментальной панели.

Рис. 2.32. MySQL Installer. Изменение характеристик продукта

Щелкните Execute, чтобы выполнить запрос модификации.

2.3.3.2. Консоль MySQL Installer

MySQLInstallerConsole обеспечивает функциональность, подобную версии GUI MySQL Installer, но из командной строки. Это установлено, когда MySQL Installer первоначально выполнен, и затем доступно в пределах каталога MySQL Installer. Как правило, это находится в C:\Program Files (x86)\MySQL\MySQL Installer\, консоль должна быть выполнена с административными привилегиями.

Чтобы использовать, вызовите командную строку с административными привилегиями выбором Start, Accessories, затем кликните правой кнопкой мыши по Command Prompt и выберите Run as administrator. Из командной строки произвольно измените каталог туда, где расположен MySQLInstallerConsole.exe:

C:\> cd "C:\Program Files (x86)\MySQL\MySQL Installer for Windows"
C:\> MySQLInstallerConsole.exe help

C:\Program Files (x86)\MySQL\MySQL Installer for Windows > MySQLInstallerConsole.exe help

The following commands are available:

Configure - Configures one or more of your installed programs.
Help      - Provides list of available commands.
Install   - Install and configure one or more available MySQL programs.
List      - Provides an interactive way to list all products available.
Modify    - Modifies the features of installed products.
Remove    - Removes one or more products from your system.
Status    - Shows the status of all installed products.
Update    - Update the current product catalog.
Upgrade   - Upgrades one or more of your installed programs.

MySQLInstallerConsole.exe поддерживает следующие опции, которые определены в командной строке:

Значения блока конфигурации, которые содержат двоеточие (":"), должны быть обернуты в двойные кавычки. Например, installdir="C:\MySQL\MySQL Server 8.0".

2.3.4. MySQL Notifier

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

MySQL Notifier установлен MySQL Installer и (по умолчанию) будет запускаться, когда Microsoft Windows будет запущена.

Чтобы установить, загрузите и выполните MySQL Installer, убедитесь, что продукт MySQL Notifier выбран, затем возобновите установку.

Возможности включают:

2.3.4.1. Использование MySQL Notifier

MySQL Notifier находится в системном трее и обеспечивает визуальную информацию о статусе для Ваших копий сервера MySQL. Зеленый значок выведен на экран в верхнем левом углу значка трея, если текущий сервер MySQL работает. Значок красный, если служба остановлена.

MySQL Notifier автоматически добавляет службы MySQL на местной машине, каждая служба конфигурируема. По умолчанию опция Automatically add new services whose name contains включена и установлена в mysql. Связанные Notifications Options включают регистрацию, когда новые службы обнаружены или изменяют состояние, и также включены по умолчанию. Удаление службы также удалит службу из MySQL Notifier.

Щелчок по значку системного трея покажет несколько опций:

Меню Service Instance это основное окно MySQL Notifier, позволяет Вам остановить, запустить и перезапустить сервер MySQL.

Рис. 2.33. MySQL Notifier. Меню Service Instance

Меню Actions включает несколько ссылок к внешним приложениям (если они установлены) и опцию Refresh Status, чтобы вручную освежить состояние всех проверенных служб (в местных и в удаленных компьютерах) и экземпляры MySQL.

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

Рис. 2.34. MySQL Notifier. Меню Actions

Меню Actions, Options конфигурирует MySQL Notifier и включает опции:

Рис. 2.35. MySQL Notifier. Меню Options

Меню Actions, Manage Monitored Items позволяет Вам сконфигурировать проверенные службы и копии MySQL:

Рис. 2.36. MySQL Notifier. Меню Manage Services

Вкладка Instances проста:

Рис. 2.37. MySQL Notifier. Меню Manage Instances

Добавление службы или экземпляра (после нажатия Add в окне Manage Monitored Items) позволяет Вам выбрать рабочую службу Microsoft Windows или соединение и сконфигурировать MySQL Notifier, чтобы контролировать это. Добавьте новую службу или экземпляр, щелкая по имени службы из списка, а затем по OK. Может быть выбрано много служб.

Рис. 2.38. MySQL Notifier. Добавление новых служб

Добавление новых экземпляров:

Рис. 2.39. MySQL Notifier. Добавление новых экземпляров

Проблемы

Для решения проблем, которые не зарегистрированы здесь, посетите MySQL Notifier Support Forum.

2.3.4.2. Установка дистанционного мониторинга в MySQL Notifier

MySQL Notifier применяет Windows Management Instrumentation (WMI), чтобы управлять и контролировать службы на отдаленных компьютерах. Этот раздел объясняет, как он работает и как настроить Вашу систему, чтобы контролировать удаленные копии MySQL.

Чтобы сконфигурировать WMI, важно понять, что архитектура Distributed Component Object Model (DCOM) делает работу WMI. MySQL Notifier использует асинхронные запросы уведомления на отдаленных узлах Microsoft Windows как .NET события. Эти события посылают асинхронный отзыв в MySQL Notifier, таким образом, это знает, когда состояние службы изменилось на отдаленном компьютере. Асинхронные уведомления предлагают лучшую работу по сравнению с полусинхронными уведомлениями или синхронными уведомлениями, использующими таймеры.

Асинхронное уведомление требует, чтобы отдаленный компьютер послал отзыв в компьютер клиента (таким образом открывающий обратное соединение), значит, настройки Firewall и DCOM Windows должны быть должным образом сконфигурированы для коммуникации.

Рис. 2.40. MySQL Notifier. Distributed Component Object Model (DCOM)

Большинство распространенных ошибок, созданных асинхронными уведомлениями WMI, связано с брандмауэром Windows, блокирующим коммуникацию, или с DCOM/настройками WMI, не настроенных должным образом.

Следующие шаги нужны, чтобы наладить WMI. Эти шаги разделены между двумя машинами. Единственный хост, который выполняет MySQL Notifier (Computer A), и много отдаленных машин, которые проверяются (Computer B).

Computer A
  1. Включите удаленное администрирование редактированием Group Policy Editor или через NETSH:

    Используя Group Policy Editor:

    1. Нажмите Start, Run, введите GPEDIT.MSC и нажмите OK.

    2. В соответствии с Local Computer Policy, откройте Computer Configuration.
    3. Разверните Administrative Templates, Network, Network Connections и Windows Firewall.
    4. Если компьютер находится в домене, то сделайте двойной клик по Domain Profile, иначе по Standard Profile.
    5. Дважды щелкните Windows Firewall: Allow inbound remote administration exception, чтобы открыть окно конфигурации.
    6. Проверьте переключатель Enabled, затем нажмите OK.

    Используя команду NETSH:

    Команда "netsh firewall" устарела в Microsoft Server 2008 и Vista и заменена на "netsh advfirewall firewall".

    1. Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).

    2. Выполните следующую команду:
      NETSH advfirewall firewall set service RemoteAdmin enable
      
  2. Откройте DCOM порт TCP 135:

    1. Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).

    2. Выполните следующую команду:
      NETSH advfirewall firewall add rule name=DCOM_TCP135 protocol=TCP localport=135 dir=in action=allow
      
  3. Добавьте приложение-клиент (MySqlNotifier.exe) в Windows Firewall Exceptions List (используйте конфигурацию Windows Firewall или NETSH):

    Используя конфигурацию Windows Firewall:

    1. В Control Panel дважды щелкните по Windows Firewall.

    2. В левой панели окна Windows Firewall кликните Allow a program or feature through Windows Firewall.
    3. В окне Allowed Programs кликните Change Settings и сделайте одно из следующего:

      • Если MySqlNotifier.exe находится в списке Allowed programs, удостоверьтесь, что он проверен на тип сетей, с которыми компьютер соединяется (Private, Public или оба).

      • Если MySqlNotifier.exe не находится в списке, щелкните Allow another program....

        1. В окне Add a Program выберите MySqlNotifier.exe, если это существует в списке Programs, иначе кликните Browse... и перейдите в каталог, где был установлен MySqlNotifier.exe, чтобы выбрать его, затем щелкните Add.

        2. Удостоверьтесь, что MySqlNotifier.exe проверен на тип сетей, с которыми компьютер соединяется (Private, Public или оба).

    Используя команду NETSH:

    1. Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).

    2. Выполните следующую команду, где Вы замените "[YOUR_INSTALL_DIRECTORY]" на каталог установки:
      NETSH advfirewall firewall add rule name=MySqlNotifier program=[YOUR_INSTALL_DIRECTORY]\MySqlNotifier.exe action=allow dir=in
      
  4. Если Computer B является членом WORKGROUP или находится в домене, которому не доверяет Computer A, тогда соединение отзыва (Соединение 2) создается как Anonymous. Предоставьте анонимным соединениям разрешения удаленного доступа DCOM:

    1. Нажмите Start, Run, введите DCOMCNFG и кликните OK.

    2. В окне Component Services раскройте Component Services, Computers и кликните правой кнопкой мыши по My Computer, затем выберите Properties.
    3. В окне My Computer Properties перейдите на вкладку COM Security.
    4. В Access Permissions нажмите Edit Limits.
    5. В Access Permission выберите ANONYMOUS LOGON name в поле имени пользователя или группы. В столбце Allow под Permissions для User выберите Remote Access и нажмите OK.

Computer B

Если учетная запись пользователя, которая зарегистрирована для компьютера, выполняющего MySQL Notifier (Computer A) является местным администратором на отдаленном компьютере (Computer B), Вы можете пропустить шаг разрешения удаленного администрирования.

Установите безопасность DCOM, чтобы позволить не административному пользователю получмть доступ к компьютеру удаленно:

  1. Предоставьте права "DCOM remote launch" и разрешения активации для пользователя или группы:

    1. Кликните Start, Run, введите DCOMCNFG и нажмите OK.

    2. В окне Component Services разверните Component Services, Computers и правой кнопкой мыши щелкните по My Computer, выберите Properties.
    3. В окне My Computer Properties перейдите на вкладку COM Security.
    4. Под Launch and Activation Permission нажмите Edit Limits.
    5. В окне Launch and Activation Permission следуйте этим шагам, если Ваше имя или группа не появляются в списке групп или имен пользователя:

      1. В окне Launch and Activation Permission кликните Add.

      2. В окне Select Users or Groups добавьте включите свое имя и группу в поле Enter the object names to select и кликните OK.

    6. В окне Launch and Activation Permission выберите своего пользователя и группу в поле имен пользователя или группы. В столбце Allow под Permissions for User, выберите Remote Launch, Remote Activation и нажмите OK.

    Предоставьте разрешения удаленного доступа DCOM:

    1. Кликните Start, Run, введите DCOMCNFG и нажмите OK.

    2. В окне Component Services разверните Component Services, Computers и правой кнопкой мыши щелкните по My Computer, выберите Properties.
    3. В окне My Computer Properties перейдите на вкладку COM Security.
    4. Под Access Permissions нажмите на Edit Limits.
    5. В окне Access Permission выберите ANONYMOUS LOGON name в поле имен пользователя или группы. В столбце Allow под Permissions for User выберите Remote Access и нажмите OK.

  2. Разрешение пользовательского доступа не администратору к определенному пространству имен WMI:

    1. В Control Panel откройте Administrative Tools .

    2. В окне Administrative Tools откройте Computer Management.
    3. В окне Computer Management разверните дерево Services and Applications.
    4. Кликните правой кнопкой по WMI Control и выберите Properties.
    5. В окне WMI Control Properties перейдите на вкладку Security.
    6. На вкладке Security выберите выберите пространство имен и щелкните Security. Root/CIMV2 обычно используемое пространство имен.
    7. Определите местонахождение соответствующей учетной записи и проверьте наличие Remote Enable в списке Permissions.

  3. Разрешите удаленное администрирование через Group Policy Editor или NETSH:

    Используя Group Policy Editor:

    1. Кликните Start, Run, введите GPEDIT.MSC и нажмите OK.

    2. В Local Computer Policy дважды кликните по Computer Configuration.
    3. Дважды кликните по Administrative Templates, Network, Network Connections и Windows Firewall.
    4. Если компьютер находится в домене, то дважды кликните по Domain Profile, иначе по Standard Profile.
    5. Кликните по Windows Firewall: Allow inbound remote administration exception.
    6. В меню Action выберите Edit.
    7. Проверьте выбор Enabled и нажмите OK.

    Используя команду NETSH:

    1. Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).

    2. Выполните такую команду:
      NETSH advfirewall firewall set service RemoteAdmin enable
      
  4. Подтвердите, что учетная запись пользователя использует значение Name, а не Full Name:

    1. В Control Panel откройте Administrative Tools.

    2. В окне Administrative Tools дважды щелкните по Computer Management.
    3. В окне Computer Management откройте System Tools, затем Local Users and Groups.
    4. Кликните по узлу Users и на правой панели определите местонахождение Вашего пользователя и удостоверьтесь, что это использует значение Name, чтобы соединиться, а не значение Full Name.

Распространенные ошибки

2.3.5. Установка MySQL в Microsoft Windows, используя архив noinstall Zip

Пользователи, которые устанавливают пакет noinstall, могут использовать инструкции в этом разделе, чтобы вручную установить MySQL. Процесс для того, чтобы установить MySQL из архива Zip:

  1. Извлеките основной архив.

    Дополнительно: также извлеките архив теста отладки, если Вы планируете выполнить точку отсчета MySQL и испытательный набор.

  2. Создайте файл опций.
  3. Выберите тип сервера MySQL.
  4. Инициализируйте MySQL.
  5. Запустите сервер MySQL.
  6. Обеспечьте учетные записи пользователя по умолчанию.

Этот процесс описан в разделах ниже.

2.3.5.1. Извлечение архива установки

Чтобы установить MySQL вручную, сделайте следующее:

  1. Если Вы обновляете от предыдущей версии, пожалуйста, обратитесь к разделу 2.3.8 прежде, чем начать процесс обновления.

  2. Удостоверьтесь, что Вы зарегистрированы как пользователь с привилегиями администратора.
  3. Выберите местоположение установки. Традиционно, сервер MySQL установлен в C:\mysql. MySQL Installation Wizard ставит MySQL в C:\Program Files\MySQL. Если Вы не устанавливаете MySQL в C:\mysql, Вы должны определить путь к каталогу установки во время запуска или в файле опций. См. раздел 2.3.5.2.

    Установщик MySQL устанавливает MySQL в C:\Program Files\MySQL .

  4. Извлеките архив установки в выбранное местоположение, используя распаковщик Zip. Некоторые инструменты могут извлечь архив в папку в Вашем выбранном местоположении установки. Если это происходит, Вы можете переместить содержание подпапки в выбранное местоположение установки.

2.3.5.2. Создание файла опций

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

Когда сервер MySQL запускается в Windows, он ищет файлы опции в нескольких местоположениях, таких как каталог Windows, C:\ и каталог установки MySQL (для полного списка местоположений см. раздел 5.2.6). Каталог Windows, как правило, C:\WINDOWS. Вы можете определить его точное местоположение от значения переменной окружения WINDIR, используя следующую команду:

C:\> echo %WINDIR%

MySQL ищет опции в каждом местоположении сначала в файле my.ini, а потом в my.cnf. Однако, чтобы избежать беспорядка, лучше, если Вы используете только один файл. Если Ваш PC использует загрузчик операционной системы, где C: не диск начальной загрузки, Ваша единственная опция должна использовать файл my.ini. Какой бы ни был файл опций, который Вы используете, это должен быть только файл простого текста.

При использовании установщика MySQL, чтобы установить сервер MySQL, это создаст my.ini в местоположении по умолчанию и предоставлет полные разрешения доступа этому новому файлу my.ini.

Другими словами, убедитесь, что у пользователя сервера MySQL есть разрешение читать файл my.ini.

Вы можете также использовать в качестве примера файлы опций, включенные в Ваш дистрибутив MySQL, см. раздел 6.1.2.

Файл опции может быть создан и изменен любым текстовым редактором, таким как Notepad. Например, если MySQL установлен в E:\mysql, а каталог данных находится в E:\mydata\data, Вы можете создать файл опции, содержащий раздел [mysqld], чтобы определить значения для опций basedir и datadir:

[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data

Пути Microsoft Windows определены в файлах опции, используя прямые, а не обратные слэши. Если Вы используете обратные слэши, укажите их дважды:

[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data

Правила для использования наклонной черты влево в значениях файла опции даны в разделе 5.2.6.

Zip-архив не включает каталог data. Чтобы инициализировать установку MySQL, создавая каталог данных и заполняя таблицы в системной базе данных mysql, инициализируйте MySQL, используя --initialize или --initialize-insecure. Подробности в разделе 2.9.1.1.

Если Вы хотели бы использовать каталог данных в ином местоположении, Вы должны скопировать все содержание каталога data к новому местоположению. Например, если Вы хотите использовать E:\mydata как каталог данных вместо этого, Вы должны сделать две вещи:

  1. Переместите каталог data и все его содержание от местоположения по умолчанию (например, C:\Program Files\MySQL\MySQL Server 8.0\data) в E:\mydata.

  2. Используйте опцию --datadir, чтобы определить новое местоположение каталога данных каждый раз, когда Вы запускаете сервер.

2.3.5.3. Выбор типа сервера MySQL

Следующая таблица показывает доступные серверы для Windows в MySQL 8.0.

ФайлОписание
mysqld Оптимизированный с поддержкой именованного канала.
mysqld-debug аналог mysqld , но с полной отладкой и автоматической проверкой распределения памяти.

Все предыдущие наборы оптимизированы для современных процессоров Intel, но должны работать на любом процессоре i386-class или выше.

Каждый из серверов поддерживает тот же самый набор механизмов хранения. SHOW ENGINES покажет механизмы, которые поддерживают данный сервер.

Все серверы Windows MySQL 8.0 имеют поддержку символических ссылок каталогов базы данных.

MySQL поддерживает TCP/IP на всех платформах Windows. Серверы MySQL на Windows также поддерживают именованные каналы, если Вы запускаете сервер с опцией --enable-named-pipe. Необходимо использовать эту опцию явно, потому что некоторые пользователи испытали проблемы с закрытием сервера MySQL, когда использовали каналы. Значение по умолчанию должно использовать TCP/IP независимо от платформы, потому что каналы медленнее, чем TCP/IP во многих конфигурациях Windows.

2.3.5.4. Инициализация каталога данных

Если Вы устанавливали MySQL, используя пакет Noinstall, никакой каталог данных не включен. Чтобы инициализировать каталог данных, используйте инструкции в разделе 2.9.1.1.

2.3.5.5. Запуск сервера впервые

Этот раздел дает общий обзор запуска сервера MySQL. Следующие разделы предоставляют более определенную информацию для того, чтобы запустить сервер MySQL из командной строки или как службу Windows.

Информация здесь применяется прежде всего, если Вы устанавливали MySQL, используя версию Noinstall или если Вы хотите сконфигурировать и проверить MySQL вручную, а не с инструментами GUI.

Сервер MySQL автоматически запустится после использования MySQL Installer, и GUI MySQL Notifier может использоваться, чтобы запустить/остановить/перезапустить в любое время.

Примеры в этих разделах предполагают, что MySQL установлен под местоположением по умолчанию C:\Program Files\MySQL\MySQL Server 8.0 . Скорректируйте пути, показанные в примерах, если установили MySQL в иное местоположение.

У клиентов есть две опции. Они могут использовать TCP/IP или канал, если сервер поддерживает соединения по именованному каналу.

MySQL для Windows также поддерживает соединения совместно используемой памяти, если сервер запущен с опцией --shared-memory . Клиенты могут соединиться через совместно используемую память при использовании опции --protocol=MEMORY.

Тестирование лучше всего делать из командной строки в консоли (или DOS window). Таким образом у Вас могут быть сообщения о состоянии сервера в окне, где их легко видеть. Если что-то является неправильным с Вашей конфигурацией, эти сообщения облегчают для Вас идентификацию и решение любых проблем.

База данных должна быть инициализирована прежде, чем MySQL может быть запущен. Для дополнительной информации о процессе инициализации см. раздел 2.9.1.1 .

Чтобы запустить сервер, введите эту команду:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --console

Для сервера, который включает InnoDB, Вы должны видеть сообщения, подобные этим, после запуска (пути и размеры могут отличаться):

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

Когда сервер заканчивает свою последовательность запуска, Вы должны видеть что-то вроде этого, что указывает, что сервер готов обслужить соединения клиента:

mysqld: ready for connections
Version: '8.0.1'socket: ''port: 3306

Сервер продолжает писать на консоль диагностический вывод, который производит. Вы можете открыть новую консоль, в которой можно выполнить программы клиента.

Если Вы опускаете опцию --console, сервер пишет диагностический вывод в журнал ошибок в каталоге данных (по умолчанию это C:\Program Files\MySQL\MySQL Server 8.0\data). Журнал ошибок это файл с расширением .err, может быть установлен, используя опцию --log-error.

Первоначально у пользвателя root в таблицах прав доступа MySQL нет никакого пароля. После запуска сервера Вы должны настроить пароль для этого, использя инструкции в разделе 2.9.4.

2.3.5.6. Запуск MySQL из командной строки Windows

Сервер MySQL может быть запущен вручную из командной строки. Это может быть сделано в любой версии Windows.

GUI MySQL Notifier может также использоваться, чтобы запустить/остановить/перезапустить сервер MySQL.

Чтобы запустить mysqld из командной строки, Вы должны запустить консоль (или DOS window) и ввести эту команду:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"

Путь к mysqld может измениться в зависимости от местоположения установки MySQL в Вашей системе.

Вы можете остановить сервер MySQL, выполняя эту команду:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin" -u root shutdown

Если у учетной записи пользователя MySQL root есть пароль, Вы должны вызвать mysqladmin с опцией -p и ввести пароль, когда он запрошен.

Эта команда вызывает административную утилиту MySQL mysqladmin , чтобы соединиться с сервером и сказать ему завершать работу. Команда соединяется как пользователь MySQL root, который является по умолчанию административной учетной записью в системе MySQL.

Пользователи в системе MySQL совершенно независимы от любых пользователей Microsoft Windows.

Если mysqld не запускается, проверьте журнал ошибок, чтобы видеть, написал ли сервер какие-либо сообщения там, чтобы указать на причину проблемы. По умолчанию журнал ошибок расположен в каталоге C:\Program Files\MySQL\MySQL Server 8.0\data. Это файл с суффиксом .err, или может быть определен в опции --log-error. Альтернативно, Вы можете попытаться запустить сервер с опцией --console, в этом случае, сервер может вывести на экран немного полезной информации, которая поможет решить проблему.

Последняя опция должна запустить mysqld с опциями --standalone и --debug. В этом случае mysqld пишет файл системного журнала C:\mysqld.trace, который должен содержать причину, почему mysqld не запускается. См. раздел 26.5.3.

Используйте mysqld --verbose --help, чтобы вывести на экран все опции mysqld.

2.3.5.7. Настройка PATH для инструментов MySQL

Вы должны быть внимательны, редактируя Вашу системную переменную PATH: случайное удаление или модификация любой части существующего значения PATH может привести к серьезным проблемам или даже непригодной системе.

Чтобы облегчить вызов MySQL, Вы можете добавить путь к каталогу MySQL bin к Вашей системной переменной PATH:

Вы не должны добавить каталог MySQL bin к переменной Windows PATH, если Вы выполняете много серверов MySQL на той же самой машине.

2.3.5.8. Запуск MySQL как сервис Windows

В Windows рекомендуемый способ выполнить MySQL состоит в том, чтобы установить это как службу Windows, так, чтобы MySQL запустился и остановился автоматически, когда Windows запускается и останавливается. Сервером MySQL, установленным как служба, можно также управлять из командной строки, используя команды NET, или графической утилитой Services. Вообще, чтобы установить MySQL как службу Windows Вы должны быть зарегистрированы, используя учетную запись, которая имеет права администратора.

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

Утилита Services (Windows Service Control Manager) может быть найдена в Windows Control Panel (в Administrative Tools в Windows Vista и Server 2003). Чтобы избежать конфликтов, желательно закрыть утилиту Services, выполняя установку сервера или операции удаления из командной строки.

Установка службы

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

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin"
        -u root shutdown

Установите сервер как службу, используя эту команду:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install

Команда установки службы не запускает сервер. Инструкции для этого даны позже в этом разделе.

Следующие дополнительные параметры могут использоваться, устанавливая службу:

Для сервера MySQL, который установлен как служба Windows, следующие правила определяют имя службы и файлы опции, которые использует сервер:

Как более сложный пример, рассмотрите следующую команду:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"
        --install MySQL --defaults-file=C:\my-opts.cnf

Здесь, имя службы по умолчанию (MySQL) дано после опции --install. Если нет --defaults-file , эта команда будет заставлять сервер читать группу [mysqld] стандартных файлов опции. Однако, потому что задана --defaults-file , опции читаются из группы [mysqld] только названного файла.

В Windows, если сервер запущен с опциями --defaults-file и --install , --install должна быть первой. Иначе mysqld.exe попытается запустить сервер MySQL.

Вы можете также определить опции, как Start parameters в утилите Windows Services прежде, чем Вы запустите службу MySQL.

Запуск службы

Как только сервер MySQL был установлен как служба, Windows запускает службу автоматически всякий раз, когда Windows запускается. Служба также может быть немедленно запущена из утилиты Services или командой NET START MySQL. Команда NET не является чувствительной к регистру.

Когда выполнен как служба, mysqld не имеет никакого доступа к консоли, таким образом, никакие сообщения не могут быть замечены там. Если mysqld не запускается, проверьте журнал ошибок, чтобы видеть, написал ли сервер какие-либо сообщения там, чтобы указать на причину проблемы. Журнал ошибок расположен в каталоге данных MySQL (например, C:\Program Files\MySQL\MySQL Server 8.0\data). Это файл с суффиксом .err.

Когда сервер MySQL был установлен как служба, и служба работает, Windows останавливает службу автоматически, когда Windows закрывается. Сервер также может быть остановлен вручную при использовании утилиты Services, командой NET STOP MySQL или mysqladmin shutdown .

У Вас также есть выбор установки сервера как ручной службы, если Вы не хотите, чтобы служба была запущена автоматически во время процесса загрузки. Чтобы сделать это, используйте опцию --install-manual до опции --install:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install-manual
Удаление службы

Чтобы удалить сервер, который установлен как служба, сначала остановите его, если это работает, выполняя NET STOP MySQL . Затем используйте опцию --remove:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --remove

Если mysqld не работает как служба, Вы можете запустить его из командной строки. Для инструкций см. раздел 2.3.5.6.

Если Вы сталкиваетесь с трудностями во время установки, см. раздел 2.3.6.

Для получения дополнительной информации об остановке или удалении службы Windows MySQL см. раздел 6.7.2.2.

2.3.5.9. Тестирование установки MySQL

Вы можете проверить, работает ли сервер MySQL, выполняя какую-либо из следующих команд:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqlshow"
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqlshow" -u root mysql
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin" version status proc
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" test

Если mysqld не спешит отвечать на соединения TCP/IP из программ клиента, есть, вероятно, проблема с Вашим DNS. В этом случае запустите mysqld с опцией --skip-name-resolve и используйте localhost и IP-адреса в столбце Host таблиц прав доступа MySQL. Убедитесь, что существует учетная запись, которая определяет IP-адрес, или Вы не сможете соединиться.

Вы можете вынудить клиента MySQL использовать соединение именованного канала, а не TCP/IP, определяя --pipe или --protocol=PIPE или указывая в качестве имени хоста точку (.). Используйте опцию --socket, чтобы определить название канала, если Вы не хотите использовать имя канала по умолчанию.

Если Вы установили пароль для root, удалили анонимную учетную запись или создали новую учетную запись пользователя, то чтобы соединиться с сервером MySQL, Вы должны использовать соответствующие опции -u и -p с командами, показанными ранее. См. раздел 5.2.2.

Подробности о mysqlshow в разделе 5.5.7.

2.3.6. Поиск неисправностей в Microsoft Windows MySQL Server

Устанавливая и выполняя MySQL впервые, Вы можете столкнуться с определенными ошибками, которые препятствуют тому, чтобы сервер MySQL запустился. Этот раздел помогает Вам диагностировать и исправить некоторые из этих ошибок.

Вашим первым ресурсом, расследуя проблемы сервера, является журнал ошибок. Сервер MySQL использует журнал ошибок, чтобы сделать запись информации, относящейся к ошибке, которая препятствует тому, чтобы сервер запустился. Журнал ошибок расположен в каталоге данных, определенном в Вашем файле my.ini. Местоположение каталога данных по умолчанию C:\Program Files\MySQL\MySQL Server 8.0\data или C:\ProgramData\Mysql в Windows 7 и Windows Server 2008. Каталог C:\ProgramData по умолчанию скрыт. Вы должны изменить свои опции папки, чтобы видеть каталог и содержание. Для получения дополнительной информации о журнале ошибок и понимании контента, см. раздел 6.4.2.

Для информации относительно возможных ошибок, также консультируйтесь с сообщениями в консоли, выведенными на экран, когда служба MySQL запускается. Используйте команду NET START MySQL из командной строки после установки mysqld как службы, чтобы видеть любые сообщения об ошибках при запуске сервера MySQL как службы. См. раздел 2.3.5.8 .

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

2.3.7. Постпроцессы установки в Windows

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

В случае необходимости, инициализируйте каталог данных и составьте таблицы привилегий MySQL. Операции установки в Windows, выполненные MySQL Installer, инициализируют каталог данных автоматически. Для установки из Zip-пакета Вы можете инициализировать каталог данных как описано в разделе 2.9.1.1 .

Относительно паролей, если Вы устанавливали MySQL, используя MySQL Installer, Вы, возможно, уже назначили пароль пользователю root (см. раздел 2.3.3 ). Иначе, используйте процедуру назначения пароля, данную в разделе 2.9.4.

Прежде, чем назначить пароли, Вы могли бы попытаться выполнить некоторые программы клиента, чтобы удостовериться, что Вы можете соединиться с сервером и что он работает должным образом. Удостоверьтесь, что сервер работает (см. раздел 2.3.5.5). Вы можете также настроить службу MySQL, которая работает автоматически, когда Windows запускается (см. раздел 2.3.5.8).

Эти инструкции предполагают, что Ваше текущее местоположение каталог установки MySQL и что есть подкаталог bin, содержащий программы MySQL, используемые здесь. Если это не так, скорректируйте пути команды соответственно.

Если Вы устанавливали MySQL через MySQL Installer (см. раздел 2.3.3), каталог установки по умолчанию C:\Program Files\MySQL\MySQL Server 8.0:

C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0"

Общее местоположение установки для установки из Zip-архива C:\mysql:

C:\> cd C:\mysql

Альтернативно, добавьте каталог bin в переменную PATH системы. Это позволяет Вашему интерпретатору команд найти программы MySQL должным образом, так, чтобы Вы могли выполнить программу, вводя только ее имя. См. раздел 2.3.5.7.

Выполните следующие команды, чтобы проверить, что Вы можете получить информацию от сервера. Вывод должен быть подобным показанному здесь.

Используйте mysqlshow , чтобы видеть, какие базы данных существуют:

C:\> bin\mysqlshow
+--------------------+
| Databases          |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

Список установленных баз данных может измениться, но будет всегда включать минимум mysql и information_schema.

Предыдущая команда (и команды для других программ MySQL, таких как mysql), возможно, не работают, если правильная учетная запись MySQL не существует. Например, программа может потерпеть неудачу с ошибкой, или Вы не можете быть в состоянии рассмотреть все базы данных. Если Вы устанавливали MySQL через MySQL Installer, пользователь root будет создан автоматически с паролем, который Вы задали. В этом случае Вы должны использовать опции -u root и -p. Вы должны использовать эти опции, если Вы уже обеспечили начальные учетные записи MySQL. С -p программа клиента запрашивает пароль для root. Например:

C:\> bin\mysqlshow -u root -p
Enter password: (здесь вводится пароль)
+--------------------+
| Databases          |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

Если Вы определяете имя базы данных mysqlshow, выводит на экран список таблиц в пределах базы данных:

C:\> bin\mysqlshow mysql
Database: mysql
+---------------------------+
| Tables                    |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

Используйте mysql , чтобы выбрать информацию из таблицы в базе данных mysql:

C:\> bin\mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+------+-----------+-----------------------+
| User | Host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | mysql_native_password |
+------+-----------+-----------------------+

2.3.8. Обновление MySQL в Windows

Чтобы обновить MySQL в Windows, следуйте этим шагам:

  1. Изучите раздел 2.10.1 для дополнительной информации об обновлении MySQL, которая не является определенной для Windows.

  2. Всегда резервируйте свою текущую установку MySQL прежде, чем выполнить обновление. См. раздел 8.2.
  3. Загрузите последний дистрибутив Windows MySQL с http://dev.mysql.com/downloads/.
  4. Прежде, чем обновить MySQL, остановите сервер. Если сервер установлен как служба, остановите службу следующей командой:
    C:\> NET STOP MySQL
    

    Если Вы не выполняете сервер MySQL как службу, используйте mysqladmin , чтобы остановить его. Например, прежде, чем обновиться от MySQL 5.7 к 8.0, используйте mysqladmin из MySQL 5.7:

    C:\> "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin" -u root shutdown
    
  5. Прежде, чем обновить до MySQL 8.0 от версии ниже 4.1.5, или от версии MySQL, установленной из Zip-архива, к версии MySQL, установленной через Installation Wizard, Вы должны сначала вручную удалить предыдущую установку и службу MySQL (если сервер установлен как служба).

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

    C:\> C:\mysql\bin\mysqld --remove
    

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

  6. Если Вы используете MySQL Installer, запустите его как описано в разделе 2.3.3.
  7. Если Вы обновляете MySQL из Zip-архива, распакуйте архив. Вы можете перезаписать свою существующую установку MySQL (обычно располагается в C:\mysql) или установить это в иной каталог, такой как C:\mysql5. Перезапись существующей установки рекомендуется. Однако, для обновлений (в противоположность установке впервые), Вы должны удалить каталог данных из своей существующей установки MySQL, чтобы не заменять Ваши текущие файлы с данными. Чтобы сделать так, следуйте этим шагам:

    1. Разархивируйте архив в некотором местоположении кроме Вашей текущей установки MySQL.

    2. Удалите каталог данных.
    3. Повторно создайте архив.
    4. Разархивируйте измененный архив в корень своей существующей установки.

    Или:

    1. Разархивируйте архив в некотором местоположении кроме Вашей текущей установки MySQL.

    2. Удалите каталог данных.
    3. Переместите каталог данных от текущей установки MySQL на место только что удаленного каталога данных.
    4. Удалите текущую установку MySQL.
    5. Переместите разархивированную установку на место только что удаленной установки.

  8. Если Вы выполняли MySQL как службу Windows, и Вы должны были удалить службу ранее в этой процедуре, надо повторно установить службу (см. раздел 2.3.5.8).

  9. Перезапустите сервер. Например, используйте NET START MySQL, если Вы выполняете MySQL как службу, или вызовите mysqld напрямую в противном случае.
  10. Как Администратор, выполните mysql_upgrade, чтобы проверить Ваши таблицы, попытаться восстановить их в случае необходимости, и обновить Ваши таблицы привилегий, если они изменились так, чтобы Вы могли использовать в своих интересах любые новые способности. См. раздел 5.4.5.
  11. Если Вы сталкиваетесь с ошибками, см. раздел 2.3.6.

2.4. Установка MySQL под OS X

Для списка версий OS X, которые поддерживает сервер MySQL, см. http://www.mysql.com/support/supportedplatforms/database.html .

MySQL for OS X доступен во многих различных формах:

2.4.1. Общие сведения об установке MySQL под OS X

Вы должны помнить следующие проблемы и примечания:

2.4.2. Установка MySQL под OS X, используя родные пакеты

Пакет расположен в файле образа диска (.dmg), так что Вы сначала должны смонтировать двойным щелчком его значок в Finder. Это должно смонтировать образ и вывести на экран его содержание.

Перед продолжением установки надо убедиться, что остановили все рабочие копии сервера MySQL при использовании MySQL Manager Application (в OS X Server), preference pane или mysqladmin shutdown .

Чтобы поставить MySQL, используя установщик пакета:

  1. Загрузите образ диска (.dmg). Версия сообщества доступна на http://dev.mysql.com/downloads/mysql/), который содержит установщик пакета MySQL. Двойным щелчком по файлу смонтируйте образ диска, чтобы видеть его содержание.

    Рис. 2.41. MySQL Package Installer: содержание DMG

  2. Двойной щелкните пакет установщика MySQL. Это названо согласно версии MySQL, который Вы загрузили. Например, если Вы загрузили сервер MySQL 8.0.1, кликать надо по mysql-8.0.1-osx-10.11-x86_64.pkg.

  3. Вам покажут вводный диалог установщика. Щелкните Continue.

    Рис. 2.42. MySQL Package Installer: введение

  4. Если Вы загрузили версию сообщества MySQL, Вам покажут копию соответствующей GNU General Public License. Кликните Continue и Agree для продолжения.

  5. На странице Installation Type Вы можете щелкнуть Install, чтобы выполнить мастер установки, используя все значения по умолчанию, щелкнуть Customize, чтобы изменить, какие компоненты установить (сервер MySQL, Preference Pane, Launchd Support, по умолчанию все) или кликнуть по Change Installation Location, чтобы изменить тип установки, при наличии.

    Рис. 2.43. MySQL Package Installer: Тип установки

    Рис. 2.44. MySQL Package Installer: выбор места назначения (местоположения установки)

    Рис. 2.45. MySQL Package Installer: настройка

  6. Нажмите Install для запуска установки.

  7. Как только установка была завершена успешно, Вам предоставят Ваш временный пароль root. Это не может быть восстановлено, таким образом, Вы должны сохранить этот пароль. Например:

    Рис. 2.46. MySQL Package Installer: временный пароль для Root

    После входа в MySQL, используя этот временный пароль, MySQL блокирует этот пароль и потребует, чтобы Вы создали новый.

  8. Затем следует сообщение Install Succeeded с кратким итогом. Закройте мастер.

    Рис. 2.47. MySQL Package Installer: итог

Сервер MySQL теперь установлен, но он не загружен (или запущен) по умолчанию. Используйте launchctl из командной строки или запустите MySQL, щелкая по "Start", используя MySQL preference pane. Для дополнительной информации см. разделы 2.4.3 и 2.4.4. Используйте MySQL Preference Pane или launchd, чтобы сконфигурировать MySQL для автоматического запуска.

Устанавливая использование установщика пакета, файлы установлены в каталог в пределах /usr/local в соответствии с названием версии установки и платформы. Например, файл установщика mysql-8.0.1-osx10.11-x86_64.dmg установит MySQL в /usr/local/mysql-8.0.1-osx10.11-x86_64/. Следующая таблица показывает расположение каталога установки.

Таблица 2.5. Расположение установки MySQL на OS X

Каталог Содержание каталога
bin, scripts Сервер mysqld , клиент и утилиты
data Файлы системного журнала, базы данных
docs Документы, такие как информация о версии
includeФайлы заголовков
libБиблиотеки
manUnix manual pages
mysql-testMySQL test suite
share Разные файлы поддержки, включая сообщения об ошибках, типовые конфигурационные файлы, SQL для установки базы данных
support-files Скрипты и типовые конфигурационные файлы
/tmp/mysql.sock Местоположение скоета MySQL Unix

Во время процесса установки создается ссылка /usr/local/mysql на соответствующий каталог.

2.4.3. Установка демона запуска MySQL

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

По умолчанию, пакет установки (DMG) на OS X установит файл launchd с именем /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist, который содержит plist-определение, подобное:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key><false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key><false/>
<key>UserName</key><string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
</array>
<key>WorkingDirectory</key><string>/usr/local/mysql</string>
</dict>
</plist>

Некоторые пользователи сообщают, что добавление plist DOCTYPE заставляет launchd терпеть неудачу, несмотря на прохождение проверки lint. Мы подозреваем, что это ошибка copy-n-paste. md5 контрольная сумма файла, содержащего вышеупомянутый отрывок, 24710a27dc7a28fb7ee6d825129cd3cf.

Чтобы включить сервис launchd, Вы можете также:

Обновляя сервер MySQL, процесс установки удалит старые элементы запуска, которые были установлены с сервером MySQL 5.7.7 и ниже.

Кроме того, обновление заменит Ваш существующий файл launchd того же самого имени.

Дополнительная информация о launchd:

Поскольку значение по умолчанию plist определяет несколько ProgramArguments, Вы могли бы удалить большинство этих параметров и вместо этого положиться на Ваш конфигурационный файл my.cnf MySQL, чтобы определить их. Например:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key><false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key><false/>
<key>UserName</key><string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>WorkingDirectory</key><string>/usr/local/mysql</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
</array>
</dict>
</plist>

В этом случае опции basedir , datadir, plugin_dir, log_error и pid_file были удалены из определения plist, а затем Вы Вы могли бы определить их в my.cnf.

2.4.4. Установка и использование MySQL Preference Pane

MySQL Installation Package включает MySQL preference pane, которая позволяет Вам запустить, остановить и управлять автоматизированным запуском во время начальной загрузки Вашей установки MySQL.

Эта preference pane установлена по умолчанию и перечислена в окне System Preferences.

Рис. 2.50. MySQL Preference Pane: расположение

Чтобы установить MySQL Preference Pane:

  1. Загрузите образ диска (.dmg), который содержит установщик пакета MySQL. Двойной щелчок по файлу смонтирует образ диска и покажет его содержание.

    Рис. 2.51. MySQL Package Installer: содержание DMG

  2. Пройдите процесс установки сервера MySQL, как описано в документации в разделе 2.4.2.

  3. Нажмите Customize на шаге Installation Type. Опция "Preference Pane" перечислена там и включена по умолчанию, удостоверьтесь, что это так.

    Рис. 2.52 MySQL Installer on OS X: Customize

  4. Завершите процесс установки сервера MySQL.

MySQL preference pane запускает и останавливает только MySQL, установленный из пакета установки MySQL, который был установлен в местоположении по умолчанию.

Как только MySQL preference pane установлен, Вы можете управлять своим сервером MySQL, используя preference pane. Для этого откройте System Preferences... в меню Apple. Выберите MySQL preference pane, щелкая по эмблеме MySQL в пределах нижнего раздела списка preference panes.

Рис. 2.53. MySQL Preference Pane: расположение

Рис. 2.54. MySQL Preference Pane: использование

MySQL Preference Pane показывает текущий статус сервера MySQL, показывая stopped (красный), если сервер не работает и running (зеленый), если сервер был уже запущен. Также показывает текущую установку того, был ли сервер MySQL установлен запускаться автоматически.

Вы можете закрыть окно System Preferences... , как только Вы завершили свои настройки.

2.5. Установка MySQL в Linux

Linux поддерживает много различных решений для того, чтобы установить MySQL. Мы рекомендуем, чтобы Вы использовали один из дистрибутивов от Oracle, для которого несколько методов для установки доступны:

Как альтернатива, Вы можете использовать диспетчер пакетов на своей системе, чтобы автоматически загрузить и установить MySQL с пакетами от родных репозитариев программного обеспечения Вашего дистрибутива Linux. Эти родные пакеты часто на несколько версий позади в настоящее время доступного выпуска. Вы также обычно будете неспособны установить выпуски развития (DMR), поскольку они обычно не делаются доступными в родных репозитариях. Для получения дополнительной информации об использовании родных установщиков пакета см. раздел 2.5.6.

Для многих установок Linux Вы будете хотеть настроить MySQL, который будет запущен автоматически, когда Ваша машина запустится. Многие из родных установок пакета выполняют эту работу для Вас, но для исходных текстов и решений для RPM, Вы, возможно, должны настроить это отдельно. Необходимый скрипт, mysql.server , может быть найден в каталоге support-files в соответствии с каталогом установки MySQL или в исходном дереве MySQL. Вы можете установить это как /etc/init.d/mysql для автоматического запуска MySQL и завершения работы. См. раздел 5.3.3.

2.5.1. Установка MySQL в Linux, используя репозитарий Yum

MySQL обеспечивает репозитарий программного обеспечения стиля Yum для следующих платформ Linux:

В настоящее время MySQL Yum для вышеупомянутых платформ обеспечивает пакеты RPM для того, чтобы они установили сервер MySQL, клиента, инструментальные средства MySQL, утилиты MySQL, Connector/ODBC и Connector/Python (не все пакеты доступны для всех платформ).

Прежде, чем начать

Как популярное, общедоступное, программное обеспечение, MySQL в его оригинальной или повторно упакованной форме широко установлен на многих системах из различных источников, включая различные сайты для скачивания программного обеспечения, репозитарии программного обеспечения и так далее. Следующие инструкции предполагают, что MySQL не установлен на Вашей системе, используя распределенный третьей стороне пакет RPM, если это не так, следуйте инструкциям, данным в разделе 2.10.1.2 или на Replacing a Third-Party Distribution of MySQL Using the MySQL Yum Repository.

Шаги для новой установки MySQL

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

  1. Добавление репозитария MySQL Yum

    Во-первых, добавьте репозитарий MySQL Yum к списку репозитариев своей системы. Это одноразовая работа, которая может быть выполнена, устанавливая RPM, обеспеченный MySQL. Следуйте за этими шагами:

    1. Перейдите на страницу Download MySQL Yum Repository ( http://dev.mysql.com/downloads/repo/yum/) в MySQL Developer Zone.

    2. Выберите и загрузите пакет выпуска для своей платформы.
    3. Установите загруженный пакет выпуска следующей командой, заменяя platform-and-version-specific-package-name названием загруженного пакета RPM:
      shell> sudo yum localinstall platform-and-version-specific-package-name.rpm
      

      Для систем EL6 команда:

      shell> sudo yum localinstall mysql57-community-release-el6-{version-number}.noarch.rpm
      

      Для систем EL7 команда:

      shell> sudo yum localinstall mysql57-community-release-el7-{version-number}.noarch.rpm
      

      Для Fedora 23:

      shell> sudo dnf localinstall mysql57-community-release-fc23-{version-number}.noarch.rpm
      

      Для Fedora 24:

      shell> sudo dnf localinstall mysql57-community-release-fc24-{version-number}.noarch.rpm
      

      Команда установки добавляет репозитарий MySQL Yum к списку репозитариев Вашей системы и загружает ключ GnuPG, чтобы проверить целостность пакетов программ. См. раздел 2.1.3.2 для деталей о проверке ключа GnuPG.

      Вы можете проверить, что репозитарий был успешно добавлен следующей командой (для dnf-систем замените yum на dnf):

      shell> yum repolist enabled | grep "mysql.*-community.*"
      

    Как только репозитарий включен на Вашей системе, любое обновление в масштабе всей системы командой yum update (или dnf upgrade для dnf-систем) обновит пакеты MySQL на Вашей системе, а также заменит любые имеющие отношение к третьей стороне пакеты, если Yum найдет замены для них в репозитарии MySQL Yum, см. раздел 2.10.1.2 и, для обсуждения некоторых возможных эффектов этого на Вашей системе, см. Обновление совместно используемых библиотек клиента.

  2. Выбор ряда выпуска

    Используя репозитарий, последний ряд GA (в настоящее время MySQL 5.7) выбран для установки по умолчанию. Если это то, что Вы хотите, Вы можете пропустить к следующему шагу.

    В пределах репозитария различные серии выпуска MySQL Community Server размещены в различных подрепозитариях. Подрепозитарий для последнего ряда GA (в настоящее время MySQL 5.7) включен по умолчанию, а подрепозитарии для всех других рядов (например, MySQL 8.0) отключены по умолчанию. Используйте эту команду, чтобы видеть все подрепозитарии в репозитарии и видеть, кто из них включен или отключен (для dnf-систем, замените yum на dnf):

    shell> yum repolist all | grep mysql
    

    Чтобы установить последний выпуск из последнего ряда GA, никакая конфигурация не необходима. Чтобы установить последний выпуск из определенного ряда кроме последнего ряда GA, отключите подрепозитарий для последнего ряда GA и включите подрепозитарий для определенного ряда прежде, чем выполнить команду установки. Если Ваша платформа поддерживает yum-config-manager, Вы можете сделать это, этими командами, которые отключают подрепозитарий для 5.7 и включают для ряда 8.0:

    shell> sudo yum-config-manager --disable mysql57-community
    shell> sudo yum-config-manager --enable mysql80-community
    

    Для dnf-систем:

    shell> sudo dnf config-manager --disable mysql57-community
    shell> sudo dnf config-manager --enable mysql80-community
    

    Помимо использования yum-config-manager или dnf config-manager, Вы можете также выбрать ряд выпуска, редактируя вручную файл /etc/yum.repos.d/mysql-community.repo. Это типичный вход для серийного подрепозитария выпуска в файле:

    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    

    Найдите вход для подрепозитария, который Вы хотите сконфигурировать, и отредактируйие опцию enabled. Определите enabled=0, чтобы отключить подрепозитарий, или enabled=1 для включения. Например, чтобы установить MySQL 8.0, удостоверьтесь, что Вы имеете enabled=0 для вышеупомянутого входа подрепозитария для MySQL 5.7 и enabled=1 для входа ряда 8.0:

    # Enable to use MySQL 8.0
    [mysql80-community]
    name=MySQL 8.0 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    

    Вы должны только включить подрепозитарию для одного ряда выпуска в любое время. Когда подрепозитарии больше чем для одного ряда выпуска будут включены, последний ряд будет использоваться Yum.

    Проверьте, что правильные подрепозитарии были включены и отключены, выполняя следующую команду и проверяя ее вывод (для dnf-систем замените yum на dnf):

    shell> yum repolist enabled | grep mysql
    
  3. Установка MySQL

    Установка MySQL делается следующей командой (для dnf-систем замените yum на dnf):

    shell> sudo yum install mysql-community-server
    

    Это устанавливает пакет для сервера MySQL (mysql-community-server), а также пакеты для компонентов, требуемых чтобы выполнять сервер, включая пакеты для клиента (mysql-community-client), сообщения об ошибках и наборы символов для клиента и сервера (mysql-community-common) и совместно используемые библиотеки клиента (mysql-community-libs).

  4. Запуск сервера MySQL

    Запустите сервер MySQL следующей командой:

    shell> sudo service mysqld start
    Starting mysqld:[ OK ]
    

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

    shell> sudo service mysqld status
    mysqld (pid 3066) is running.
    

При начальном запуске сервера происходит следующее, учитывая, что каталог данных сервера пуст:

Информация о совместимости для EL7-платформ: следующие пакеты RPM от родных репозитариев программного обеспечения платформ являются несовместимыми с пакетом от репозитария MySQL Yum, который устанавливает сервер MySQL. Как только Вы установили MySQL, используя репозитарий MySQL Yum, Вы не будете в состоянии установить эти пакеты (и наоборот).

Установка дополнительных продуктов MySQL и компонентов через Yum

Вы можете использовать Yum, чтобы установить и управлять отдельными компонентами MySQL. Некоторые из этих компонентов размещены в подрепозитариях репозитария MySQL Yum: например, MySQL Connectors должны быть найдены в подрепозитарии MySQL Connectors Community, а MySQL Workbench в MySQL Tools Community. Вы можете использовать следующую команду, чтобы перечислить пакеты для всех компонентов MySQL, доступных для Вашей платформы из репозитария MySQL Yum (для dnf-систем замените yum на dnf):

shell> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available

Установите любые пакеты своего выбора со следующей командой, заменяя package-name на имя пакета (для dnf-систем замените yum на dnf):

shell> sudo yum install package-name

Например, чтобы установить инструментальные средства MySQL на Fedora 24:

shell> sudo dnf install mysql-workbench-community

Чтобы установить совместно используемые библиотеки клиента:

shell> sudo yum install mysql-community-libs

Обновление MySQL через Yum

Помимо установки, Вы можете также выполнить обновления для продуктов MySQL и компонентов, используя репозитарий MySQL Yum. См. раздел 2.10.1.2.

2.5.2. Установка MySQL на Linux, используя MySQL репозитарий APT

Репозитарий MySQL APT обеспечивает deb-пакеты для установки и управления сервером MySQL, клиентом и другими компонентами на следующих платформах Linux:

Инструкции для того, чтобы использовать репозитарий MySQL APT доступны на A Quick Guide to Using the MySQL APT Repository.

2.5.3. Установка MySQL на Linux, используя MySQL репозитарий SLES

Репозитарий MySQL SLES обеспечивает пакеты RPM для установки и управления сервером MySQL, клиентом, и другими компонентами на SUSE Enterprise Linux Server.

Инструкции для того, чтобы использовать репозитарий MySQL SLES доступны на A Quick Guide to Using the MySQL SLES Repository.

Репозитарий MySQL SLES находится в разработке. Мы поощряем Вас пробовать это и предоставлять нам обратную связь. Пожалуйста, сообщите о любых ошибках или несогласованностях, которые Вы наблюдаете, через Bugs Database.

2.5.4. Установка MySQL на Linux, используя RPM-пакеты Oracle

Рекомендуемый способ установить MySQL на RPM-Linux дистрибутивах при использовании пакетов RPM, обеспеченных Oracle. Есть два источника для того, чтобы получить их, для Community Edition MySQL:

RPM-дистрибутивы MySQL также обеспечены другими поставщиками. Знайте, что они могут отличаться от созданных Oracle в особенностях, способностях и соглашениях (включая коммуникационную установку), и что инструкции по установке в этом руководстве не обязательно относятся к ним.

RPM-пакеты для MySQL перечислены в следующих таблицах:

Таблица 2.6. RPM-пакеты для MySQL Community Edition

ИмяОбзор
mysql-community-server Сервер и связанные инструменты
mysql-community-client Клиент MySQL и утилиты
mysql-community-common Общие файлы для сервера и библиотек клиента
mysql-community-devel Заголовочные файлы и библиотеки для приложений-клиентов базы данных MySQL
mysql-community-libs Совместно используемые библиотеки для приложений-клиентов базы данных MySQL
mysql-community-libs-compat Совместно используемые библиотеки совместимости для предыдущих установок MySQL
mysql-community-embedded Библиотека MySQL embedded
mysql-community-embedded-devel Заголовочные файлы и библиотеки для MySQL как встраиваемой библиотеки
mysql-community-test Испытательный набор для сервера MySQL

Таблица 2.7. RPM-пакеты для MySQL Enterprise Edition

ИмяОбзор
mysql-commercial-server Сервер и связанные инструменты
mysql-commercial-client Клиент MySQL и утилиты
mysql-commercial-common Общие файлы для сервера и библиотек клиента
mysql-commercial-devel Заголовочные файлы и библиотеки для приложений-клиентов базы данных MySQL
mysql-commercial-libs Совместно используемые библиотеки для приложений-клиентов базы данных MySQL
mysql-commercial-libs-compat Совместно используемые библиотеки совместимости для предыдущих установок MySQL
mysql-commercial-embedded Библиотека MySQL embedded
mysql-commercial-embedded-devel Заголовочные файлы и библиотеки для MySQL как встраиваемой библиотеки
mysql-commercial-test Испытательный набор для сервера MySQL

У полных имен для RPM есть следующий синтаксис:

packagename-version-distribution-arch.rpm

Значения distribution и arch указывают на дистрибутив Linux и тип процессора, для которого был создан пакет. См. таблицу ниже для списков идентификаторов дистрибутива:

Таблица 2.8. Идентификаторы дистрибутива пакета MySQL Linux RPM

Значение дистрибутива Намеченное использование
el6, el7 Red Hat Enterprise Linux/Oracle Linux/CentOS 6 или 7
fc23, fc24 Fedora 23 или 24
sles12 SUSE Linux Enterprise Server 12

Чтобы уидеть все файлы в пакете RPM (например, mysql-community-server), используйте следующую команду:

shell> rpm -qpl mysql-community-server-version-distribution-arch.rpm

Обсуждение в остальной части этого раздела применяется только к процессу установки, используя пакеты RPM, непосредственно загруженные из Oracle, а не через репозитарий MySQL.

Отношения зависимости существуют среди некоторых из пакетов. Если Вы планируете установить многие из пакетов, Вы можете хотеть загрузить вместо этого файл tar, который содержит все упомянутые выше пакеты RPM, так, чтобы Вы не загрузили их отдельно.

В большинстве случаев, Вы должны установить пакеты mysql-community-server, mysql-community-client, mysql-community-libs, mysql-community-common и mysql-community-libs-compat, чтобы получить функциональную, стандартную установку MySQL. Чтобы выполнить такую стандартную, минимальную установку, пойдите в папку, которая содержит все те пакеты (и предпочтительно никакие другие пакеты RPM с аналогичными именами) и примените следующую команду:

shell> sudo yum install mysql-community-{server,client,common,libs}-*

Замените yum на zypper для систем SLES или на dnf для dnf-систем (подобноe Fedora 23 или 24).

В то время как очень предпочтительно использовать высокоуровневый инструмент управления пакетами, например, yum, чтобы установить пакеты, пользователи, которые предпочитают прямые команды rpm могут заменить yum install на rpm -Uvh , однако, использование rpm -Uvh делает процесс установки более склонным к отказу, из-за потенциальной зависимости пакетов.

Чтобы установить только программы клиента, Вы можете пропустить mysql-community-server в Вашем списке пакетов, примените следующую команду:

shell> sudo yum install mysql-community-{client,common,libs}-*

Замените yum на zypper для SLES и на dnf для dnf-систем (Fedora 23 и 24).

Стандартная установка MySQL, используя пакеты RPM приводит к файлам и ресурсам, создаваемым в соответствии с системными каталогами, показанными в следующей таблице.

Таблица 2.9. Расположение установки MySQL для пакетов RPM Linux из зоны разработки MySQL

Файлы или ресурсы Местоположение
Программы клиента и скрипты /usr/bin
Сервер mysqld /usr/sbin
Конфигурационный файл /etc/my.cnf
Каталог данных /var/lib/mysql
Файл журнала ошибок

Для платформ RHEL, Oracle Linux, CentOS или Fedora: /var/log/mysqld.log

Для SLES: /var/log/mysql/mysqld.log

Значение secure_file_priv/var/lib/mysql-files
Скрипт System V init

Для RHEL, Oracle Linux, CentOS или Fedora: /etc/init.d/mysqld

Для SLES: /etc/init.d/mysql

Сервис Systemd

Для RHEL, Oracle Linux, CentOS или Fedora: mysqld

Для SLES: mysql

Файл Pid /var/run/mysql/mysqld.pid
Сокет/var/lib/mysql/mysql.sock
Каталог ключей /var/lib/mysql-keyring
Unix manual pages /usr/share/man
Включаемые файлы (заголовки) /usr/include/mysql
Библиотеки /usr/lib/mysql
Разные файлы поддержки (например, сообщения об ошибках и файлы набора символов) /usr/share/mysql

Установка также создает пользователя и группу mysql.

Установка предыдущих версий MySQL, используя более старые пакеты, возможно, создала конфигурационный файл /usr/my.cnf. Перенесите настройки из него в /etc/my.cnf.

MySQL автоматически не запущен в конце процесса установки. Для Red Hat Enterprise Linux, Oracle Linux, CentOS и Fedora используют следующую команду, чтобы запустить MySQL:

shell> sudo service mysqld start

Для SLES команда та же самая, но имя службы отличается:

shell> sudo service mysql start

Если операционная система поддерживает systemd, команды service, такие как stop, start, status и restart должны использоваться, чтобы управлять службой сервера MySQL. Служба mysqld включена по умолчанию, и она запускается в системе. Заметьте, что определенные вещи могли бы работать по-другому в systemd-платформами: например, изменение местоположения каталога данных могло бы вызвать проблемы. См. раздел 2.5.9.

При начальном запуске сервера происходит следующее, учитывая, что каталог данных сервера пуст:

shell> mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

Плагин MySQL validate_password установлен по умолчанию. Это потребует, чтобы пароли содержали по крайней мере одну прописную букву, одну строчную букву, одну цифру, один специальный символ и что полная длина пароля по крайней мере 8 символов.

Если что-то идет не так, как надо во время установки, Вы могли бы найти информацию об отладке в файле журнала ошибок /var/log/mysqld.log.

Для некоторых дистрибутивов Linux может быть необходимо увеличить предел описателей файла, доступных mysqld. См. раздел B.5.2.17.

Установка библиотек клиента от разных версий MySQL. Возможно установить много версий библиотеки клиента, это касается случая, если Вы хотите поддержать совместимость с более старыми приложениями. Чтобы установить более старую библиотеку клиента, используйте опцию --oldpackage для rpm. Например, чтобы установить mysql-community-libs-5.5 на EL6, которая имеет libmysqlclient.21 из MySQL 8.0, используйте команду:

shell> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm

Пакет отладки. Специальная разновидность сервера MySQL, собранного с debug package была включена в пакеты RPM сервера. Это выполняет отладку, проверку памяти и производит файл следа, когда сервер работает. Чтобы использовать эту версию, запустите MySQL как /usr/sbin/mysqld-debug, вместо того, чтобы запустить это как службу или /usr/sbin/mysqld. См. раздел 26.5.3 для опций отладки, которые Вы можете использовать.

Восстановление RPM из исходных SRPM. Исходный код пакетов SRPM для MySQL доступен для скачивания. Они могут использоваться как есть, чтобы восстановить MySQL RPM со стандартной цепочкой rpmbuild .

2.5.5. Установка MySQL на Linux, используя пакеты Debian от Oracle

Oracle обеспечивает пакеты Debian для того, чтобы они установили MySQL на системах Debian Linux. Пакеты доступны через два различных канала:

Дистрибутивы Debian MySQL также обеспечены другими поставщиками. Знайте, что они могут отличаться от созданных Oracle, и что инструкции в этом руководстве не обязательно относятся к их установке.

2.5.6. Установка MySQL на Linux из родных репозитариев программного обеспечения

Много дистрибутивов Linux включают версию сервера MySQL, инструментов клиента и компонентов развития в их родных репозитариях программного обеспечения и могут быть установлены со стандартными системами управления пакета платформ. Этот раздел обеспечивает исходные мысли для того, чтобы установить MySQL, используя эти системы управления пакета.

Родные пакеты часто на несколько версий позади в настоящее время доступного выпуска. Вы также обычно будете неспособны установить выпуски (DMR), поскольку они обычно не делаются доступными в родных репозитариях. Перед переходом мы рекомендуем, чтобы Вы проверили другие опции установки, описанные в разделе 2.5.

Конкретные инструкции для дистрибутивов:

2.5.7. Установка MySQL на Linux с docker

Структура развертывания docker поддерживает легкую установку и конфигурацию серверов MySQL. Для инструкций см. https://hub.docker.com/r/mysql/mysql-server/. Эта страница также обеспечивает обширную документацию об использовании MySQL с docker.

2.5.8. Установка MySQL на Linux с juju

Структура развертывания juju поддерживает легкую установку и конфигурацию серверов MySQL. Для инструкций см. https://jujucharms.com/mysql/.

2.5.9. Управление сервером MySQL с systemd

Если Вы устанавливаете MySQL, используя дистрибутив RPM на следующих платформах Linux, запуском сервера и завершением работы управляет systemd:

Чтобы получить поддержку systemd, если Вы устанавливаете из исходных текстов, сконфигурируйте дистрибутив, используя опцию -DWITH_SYSTEMD=1 для CMake. См. раздел 2.8.4.

Следующее обсуждение затрагивает эти темы:

Краткий обзор systemd

systemd обеспечивает автоматический запуск сервера и завершение работы. Это также включает ручное управлене сервером, используя команду systemctl. Например:

systemctl {start|stop|restart|status} mysqld

Альтернативно, используйте команду service:

service mysqld {start|stop|restart|status}

Для systemctl или service, если имя службы MySQL не mysqld, используют соответствующее имя (например, mysql на SLES-системах).

Поддержка systemd включает эти файлы:

На платформах, для которых поддержка systemd установлена, такие скрипты, как mysqld_safe скрипт инициализации System V не установлены, потому что они не нужны. Например, mysqld_safe может обработать перезапуски сервера, но systemd обеспечивает ту же самую возможность и делает это совместимо с управлением другими службами вместо того, чтобы использовать определенную для приложения программу.

На платформах, для которых установлена поддержка systemd у systemd есть способность управления многими копиями MySQL. Следовательно, mysqld_multi и mysqld_multi.server не установлены, потому что они не нужны.

Конфигурирование MySQL, используя systemd

Чтобы добавить или изменить опции для MySQL, доступны эти методы:

Чтобы использовать ограниченный systemd конфигурационный файл, создайте каталог /etc/systemd/system/mysqld.service.d. В нем создайте файл, который содержит раздел [Service], перечисляющий желаемые настройки. Например:

[Service]
LimitNOFILE=max_open_files
PIDFile=/path/to/pid/file
Nice=nice_level
LimitCore=core_file_limit
Environment="LD_PRELOAD=/path/to/malloc/library"
Environment="TZ=time_zone_setting"

Обсуждение здесь использует override.conf как название этого файла. Более новые версии systemd поддерживают следующую команду, которая открывает редактор и разрешает Вам редактировать файл:

systemctl edit mysqld

Всякий раз, когда Вы создаете или изменяете override.conf, перезагрузите конфигурацию systemd, затем скажите systemd перезапустить службу MySQL:

systemctl daemon-reload
systemctl restart mysqld

С systemd метод конфигурации override.conf должен использоваться для определенных параметров, а не настроек в группах [mysqld_safe] или [mysqld] файла опций MySQL:

Вы можете установить следующие параметры в override.conf:

Некоторые параметры MySQL сконфигурированы, используя переменные окружения:

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

Чтобы определить опции для mysqld, не изменяя конфигурационные файлы systemd непосредственно, установите или сбросьте переменную systemd MYSQLD_OPTS. Например:

systemctl set-environment MYSQLD_OPTS="--general_log=1"
systemctl unset-environment MYSQLD_OPTS

После изменения окружения systemd перезапустите сервер, чтобы сделать изменения эффективными:

systemctl restart mysqld

Конфигурирование нескольких копий MySQL, используя systemd

На платформах, для которых установлена поддержка systemd, у systemd есть способность управления несколькими копиями MySQL. Следовательно, mysqld_multi и mysqld_multi.server не установлены, потому что они не нужны.

Чтобы использовать несколько копий, измените my.cnf, чтобы включить конфигурацию ключевых опций для каждой копии. Например, чтобы управлять двумя копиями replica01 и replica02, добавьте что-то вроде этого к файлу:

[mysqld@replica01]
datadir=/var/lib/mysql-replica01
socket=/var/lib/mysql-replica01/mysql.sock
port=3307
log-error=/var/log/mysqld-replica01.log

[mysqld@replica02]
datadir=/var/lib/mysql-replica02
socket=/var/lib/mysql-replica02/mysql.sock
port=3308
log-error=/var/log/mysqld-replica02.log

Имена, показанные здесь, используют @ как разделитель потому, что это единственный разделитель, поддержанный systemd.

Копии тогда управляют нормальные команды systemd, такие как:

systemctl start mysqld@replica01
systemctl start mysqld@replica02

Чтобы позволить копиям стартовать во время загрузки, сделайте это:

systemctl enable mysqld@replica01
systemctl enable mysqld@replica02

Использование подстановочных знаков также поддержано. Например, эта команда выводит на экран состояние всех копий:

systemctl status 'mysqld@replica*'

Для управления многими копиями MySQL на той же самой машине, systemd автоматически использует другой файл модуля (mysqld@.service вместо mysqld.service). В этом файле модуля %I и %i ссылаются на параметр, который передают после маркера @ и используется, чтобы управлять определенной копией. Для команды такой, как эта:

systemctl start mysqld@mysql1

systemd запускает сервер, используя такую команду:

mysqld --defaults-group-suffix=@%I ...

Результат состоит в том, что группы опций [server], [mysqld] и [mysqld@mysql1] считаны и используются для этой копии.

Перемещение от mysqld_safe к systemd

Так как mysqld_safe не установлен, когда systemd используется, опции, ранее определенные для той программы (например, в группе опций [mysqld_safe]) должны быть определены иначе:

2.6. Установка MySQL на Solaris и OpenSolaris

MySQL на Solaris и OpenSolaris доступны во многих различных форматах.

Получить двоичный дистрибутив MySQL для Solaris в формате tarball или PKG можно на сайте http://dev.mysql.com/downloads/mysql/8.0.html.

Дополнительные примечания, устанавливая и используя MySQL на Solaris:

2.6.1. Установка MySQL на Solaris, применяя Solaris PKG

Вы можете установить MySQL на Solaris и OpenSolaris, используя двоичный формат Solaris PKG вместо tar-архива.

У пакета установки есть зависимость от Oracle Developer Studio 12.5 Runtime Libraries, которые должны быть установлены прежде, чем Вы выполните пакет установки MySQL. См. опции загрузки для Oracle Developer Studio здесь. Пакет установки позволяет Вам устанавливать только библиотеки выполнения вместо полной Oracle Developer Studio, см. Installing Only the Runtime Libraries on Oracle Solaris 10 and Linux и Installing Only the Runtime Libraries on Oracle Solaris 11.

Чтобы использовать этот пакет, загрузите и распакуйте соответствующий файл mysql-VERSION-solaris11-PLATFORM.pkg.gz. Например:

shell> gunzip mysql-8.0.1-solaris11-x86_64.pkg.gz

Чтобы установить новый пакет, используйте pkgadd и следуйте за экранными подсказками. У Вас должны быть привилегии root:

shell> pkgadd -d mysql-8.0.1-solaris11-x86_64.pkg

The following packages are available:
1 mysql MySQL Community Server (GPL)
  (i86pc) 8.0.1

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

Установщик PKG устанавливает все необходимые файлы и инструменты, а затем инициализирует Вашу базу данных, если ее нет. Чтобы завершить установку, Вы должны установить пароль root для MySQL как предусмотрено в инструкциях в конце установки. Альтернативно, Вы можете выполнить скрипт mysql_secure_installation, который идет с установкой.

По умолчанию пакет PKG устанавливает MySQL под /opt/mysql. Вы можете изменить только путь корня установки, используя pkgadd, который может использоваться, чтобы установить MySQL в иной зоне Solaris. Если Вы должны установить в определенный каталог, используйте двоичный дистрибутив tar.

pkg копирует подходящий скрипт запуска для MySQL в /etc/init.d/mysql. Чтобы включить MySQL в запуск и завершение работы автоматически, Вы должны создать ссылку между этим файлом и каталогами init. Например, чтобы гарантировать безопасный запуск и завершение работы MySQL Вы могли использовать следующие команды, чтобы добавить правильные ссылки:

shell> ln /etc/init.d/mysql /etc/rc3.d/S91mysql
shell> ln /etc/init.d/mysql /etc/rc0.d/K02mysql

Чтобы удалить MySQL, имя пакета mysql. Вы можете использовать это в комбинации с pkgrm, чтобы удалить установку.

Чтобы обновить, используя формат файла пакета Solaris, Вы должны удалить существующую установку прежде, чем установить обновленный пакет. Удаление пакета не удаляет существующую информацию о базе данных, только сервер и файлы поддержки. Типичная последовательность обновления поэтому:

shell> mysqladmin shutdown
shell> pkgrm mysql
shell> pkgadd -d mysql-8.0.1-solaris11-x86_64.pkg
shell> mysqld_safe &
shell> mysql_upgrade

Вы должны проверить примечания в разделе 2.10 прежде, чем выполнить любое обновление.

2.6.2. Установка MySQL на OpenSolaris через IPS

OpenSolaris включает стандартные пакеты для MySQL в основном репозитарии. Пакеты MySQL основаны на определенном выпуске MySQL и обновлены периодически. Для последнего выпуска Вы должны использовать Solaris PKG, tar или исходные тексты. Пакеты OpenSolaris включают файлы SMF так, чтобы Вы могли легко управлять своей установкой MySQL, включая автоматический запуск и восстановление, используя родные инструменты управления службы.

Чтобы установить MySQL на OpenSolaris, используйте pkg. Вы должны быть зарегистрированы как root или использовать pfexec, как показано в примере ниже:

shell> pfexec pkg install SUNWmysql80

Пакет установил три отдельных пакета, SUNWmysql80lib, который содержит библиотеки клиента MySQL, SUNWmysql80r, который содержит компоненты, включая SMF и конфигурационные файлы, и SUNWmysql80u, который содержит скрипты, утилиты и прочие файлы. Вы можете установить эти пакеты индивидуально, если Вы нуждаетесь только в соответствующих компонентах.

Файлы MySQL установлены в /usr/mysql, который имеет сслылки из подкаталогов (bin, lib, ...) на каталоги, специфичные для конкретной версии. Для MySQL 8.0 полная установка расположена в /usr/mysql/8.0. Каталог данных по умолчанию /var/mysql/8.0/data. Конфигурационный файл установлен в /etc/mysql/8.0/my.cnf. Это расположение разрешает многим версиям MySQL быть установленными, не перезаписывая данные от других версий.

После того, как пакет установлен, Вы должны инициализировать каталог данных (см. раздел 2.9.1 ) и используйте mysql_secure_installation, чтобы защитить Вашу установку.

Использование SMF, чтобы управлять Вашей установкой MySQL

После того, как установлен пакет, Вы можете запустить и остановить свой сервер MySQL, используя установленную конфигурацию SMF. Имя службы mysql, или если Вы устанавливали много копий, Вы должны использовать полное имя версии, например, mysql:version_80. Запустить и позволить MySQL быть запущенным во время загрузки:

shell> svcadm enable mysql

Чтобы смотреть журналы SMF, используйте эту команду:

shell> svcadm enable svc:/application/database/mysql

Чтобы проверить, работает ли служба MySQL:

shell> svcs -xv svc:/application/database/mysql

Отключить MySQL от запуска в ходе загрузки и закрыть сервер MySQL, если он работает:

shell> svcadm disable mysql

Чтобы перезапустить MySQL, например, после того, как конфигурационный файл изменяется, используйте опцию restart:

shell> svcadm restart mysql

Вы можете также использовать SMF, чтобы сконфигурировать каталог данных и включить полный 64-битный режим. Например, чтобы установить каталог данных, используемый MySQL:

shell> svccfg
svc:> select mysql:version_80
svc:/application/database/mysql:version_80> setprop mysql/data=/data0/mysql

По умолчанию 32-битные исполняемые модули используются. Чтобы включить 64-битный сервер на 64-битных платформах, установите параметр enable_64bit. Например:

svc:/application/database/mysql:version_80> setprop mysql/enable_64bit=1

Вы должны освежить SMF после установки этих опций:

shell> svcadm refresh mysql

2.7. Установка MySQL на FreeBSD

Этот раздел предоставляет информацию об установке MySQL на разновидностях Unix FreeBSD.

Вы можете установить MySQL на FreeBSD при использовании двоичного дистрибутива, обеспеченного Oracle. Для получения дополнительной информации см. раздел 2.2.

Самый легкий способ установить MySQL, это использовать порты mysql-server и mysql-client, доступные в http://www.freebsd.org/. Использование этих портов приносит Вам следующую пользу:

Процесс сборки MySQL требует GNU make (gmake ). Если GNU make недоступна, Вы должны установить ее прежде, чем собрать MySQL.

Установить с использованием системы портов:

# cd /usr/ports/databases/mysql80-server
# make
...
# cd /usr/ports/databases/mysql80-client
# make
...

Стандартная установка порта помещает сервер в /usr/local/libexec/mysqld со скриптом запуска для сервера MySQL, помещенным в /usr/local/etc/rc.d/mysql-server.

Некоторые дополнительные примечания по выполнению BSD:

2.8. Установка MySQL из исходных текстов

Для списка систем, на которых MySQL, как известно, работает см. http://www.mysql.com/support/supportedplatforms/database.html .

Прежде, чем Вы начнете установку из исходных текстов, проверьте, производит ли Oracle предварительно собранное двоичный дистрибутив для Вашей платформы и работает ли это. Мы прикладываем много усилий в обеспечение того, что наши сборки созданы с самыми лучшими опциями для оптимальной работы. Инструкции для того, чтобы установить двоичные дистрибутива доступны в разделе 2.2.

Исходный код MySQL содержит внутреннюю документацию, использующую Doxygen. Произведенный контент Doxygen доступен на http://dev.mysql.com/doc/dev/mysql-server/latest/. Также возможно произвести этот контент в местном масштабе из исходного дистрибутива MySQL, используя инструкции в разделе 2.8.7.

Методы установки из исходных текстов

Есть два метода для того, чтобы установить MySQL из исходных текстов:

Системные требования установки

Установка MySQL из исходных текстов требует нескольких средств разработки. Некоторые из этих инструментов необходимы независимо от того, используете ли Вы стандартные исходные тексты или дерево развития. Другие требования зависят от того, который метод установки Вы используете.

Чтобы установить MySQL из исходных текстов, следующие системные требования должны быть удовлетворены, независимо от метода установки:

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

Чтобы установить MySQL из дерева развития, следующие дополнительные инструменты требуются:

Если Вы должны установить какие-либо программы, измените Вашу переменную окружения PATH, чтобы включить любые каталоги, в которых расположены программы. См. раздел 5.2.10.

Если Вы сталкиваетесь с проблемами и потребностью зарегистрировать отчет об ошибках, пожалуйста, используйте инструкции в разделе 1.7.

2.8.1. Расположение MySQL для исходной установки

По умолчанию когда Вы устанавливаете MySQL после компилирования из исходных текстов, шаг установки устанавливает файлы в /usr/local/mysql. Составляющие местоположения в соответствии с каталогом установки те же самые, что касаются двоичных дистрибутивов. См. таблицу 2.3 и раздел 2.3.1. Чтобы сконфигурировать местоположения установки, отличающиеся от значений по умолчанию, используйте опции, описанные в разделе 2.8.4.

2.8.2. Установка MySQL, используя стандартные исходные тексты

Установить MySQL из стандартного исходного дистрибутива:

  1. Проверьте, что Ваша система удовлетворяет требованиям инструментов, перечисленные в разделе 2.8.

  2. Получите файл дистрибутива, используя инструкции в разделе 2.1.2.
  3. Сконфигурируйте, соберите и установите дистрибутив, используя инструкции в этом разделе.
  4. Выполните постпроцессы установки, используя инструкции в разделе 2.9.

В MySQL 8.0 CMake используется в качестве структуры сборки на всех платформах. Инструкции, данные здесь, должны позволить Вам произвести рабочую установку. Для дополнительной информации об использовании CMake см. http://dev.mysql.com/doc/internals/en/cmake.html.

Если Вы начинаете с исходных текстов в RPM, используйте следующую команду, чтобы сделать двоичный RPM, который Вы можете установить. Если у Вас нет rpmbuild, используйте rpm.

shell> rpmbuild --rebuild --clean MySQL-VERSION.src.rpm

Результат один или более двоичных пакетов RPM, которые Вы устанавливаете, как обозначено в разделе 2.5.4 .

Последовательность установки из сжатого файла tar или архива Zip подобна процессу установки из двоичного дистрибутива (см. раздел 2.2), за исключением того, что это используется на всех платформах и включает шаги, чтобы сконфигурировать и собрать дистрибутив. Например, со сжатым исходным файлом tar в Unix, основная последовательность команд установки похожа на это:

# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql

# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions

# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysql_ssl_rsa_setup
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

Процедура, показанная здесь, не настраивает паролей для учетных записей MySQL. После следования процеде, продолжите работать по разделу 2.9 для постустановки и тестирования.

Выполните конфигурацию перед установкой

В Unix установите пользователя и группу mysql, которая будет использоваться, чтобы выполнить сервер MySQL и иметь каталог базы данных. Для деталей см. раздел 2.2. Затем выполните следующие шаги как пользователь mysql, за исключением отмеченного.

Получите и распакуйте дистрибутив

Выберите каталог, в соответствии с которым Вы хотите распаковать дистрибутив и перейдите в него.

Получите файл дистрибутива, используя инструкции в разделе 2.1.2.

Распакуйте дистрибутив в текущий каталог:

Распаковка файла дистрибутива создает каталог mysql-VERSION.

Сконфигурируйте дистрибутив

Перейдите в каталог распакованного дистрибутива:

shell> cd mysql-VERSION

Сконфигурируйте исходный каталог. Минимальная команда конфигурации не включает опций, чтобы переопределить значения по умолчанию конфигурации:

shell> cmake .

В Windows определите среду проектирования. Например, следующие команды конфигурируют MySQL для 32 или 64-битной сборки:

shell> cmake . -G "Visual Studio 12 2013"
shell> cmake . -G "Visual Studio 12 2013 Win64"

В OS X используйте Xcode IDE:

shell> cmake . -G Xcode

Когда Вы выполняете cmake, Вы могли бы хотеть добавить опции к командной строке. Вот некоторые примеры:

Для более обширного списка опций см. раздел 2.8.4.

Чтобы перечислить параметры конфигурации, используйте одну из следующих команд:

shell> cmake . -L # overview
shell> cmake . -LH# overview with help text
shell> cmake . -LAH # all params with help text
shell> ccmake . # interactive display

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

Чтобы препятствовать тому, чтобы старые файлы объекта или информация о конфигурации использовались, выполните эти команды на Unix прежде, чем запустить повторно CMake:

shell> make clean
shell> rm CMakeCache.txt

Или под Windows:

shell> devenv MySQL.sln /clean
shell> del CMakeCache.txt

Если Вы создаете из дерева исходного текста (как описано позже), файл CMakeCache.txt и все созданные файлы находятся в рабочем каталоге, таким образом, Вы можете удалить каталог.

Если Вы собираетесь послать почту в список рассылки MySQL, чтобы попросить помощи в конфигурации, сначала регистрируйте файлы каталога CMakeFiles для полезной информации об отказе. Чтобы зарегистрировать отчет об ошибках, пожалуйста, используйте инструкции в разделе 1.7.

Создание (сборка) дистрибутива

В Unix:

shell> make
shell> make VERBOSE=1

Вторая команда задает VERBOSE для показа команды для каждого собираемого файла.

Используйте gmake вместо этого на системах, где Вы используете GNU make и это было установлено как gmake.

В Windows:

shell> devenv MySQL.sln /build RelWithDebInfo

Возможно создать вне дерева исходных текстов. Если каталог исходных текстов mysql-src, Вы можете создать пакет в каталоге, названном bld примерно так:

shell> mkdir bld
shell> cd bld
shell> cmake ../mysql-src

Если Вы дошли до стадии компиляции, но дистрибутив не создается, см. раздел 2.8.5. Если это не решает проблему, пожалуйста, введите ее в нашу базу данных ошибок, используя инструкции, данные в разделе 1.7. Если Вы установили последние версии необходимых инструментов, и они разрушаются при попытке обработать наши конфигурационные файлы, пожалуйста, сообщите об этом также. Однако, если Вы получаете ошибку command not found или подобную проблему для необходимых инструментов, не сообщайте об этом. Вместо этого удостоверьтесь, что все необходимые инструменты установлены, и что Ваше значение переменной PATH задано правильно.

Установите дистрибутив

В Unix:

shell> make install

Это устанавливает файлы в соответствии со сконфигурированным каталогом установки (по умолчанию, /usr/local/mysql). Вы, возможно, должны выполнить команду как root.

Чтобы установить в определенном каталоге, добавьте параметр DESTDIR к командной строке:

shell> make install DESTDIR="/opt/mysql"

Альтернативно, произведите файлы пакета установки, которые Вы можете установить, где Вам нравится:

shell> make package

Эта работа производит один или больше файлов .tar.gz, которые могут быть установлены как двоичные пакеты дистрибутива. См. раздел 2.2. Если Вы выполняете CMake с -DCPACK_MONOLITHIC_INSTALL=1, работа производит единственный файл. Иначе это производит много файлов.

В Windows произведите каталог данных, затем создайте архив .zip :

shell> devenv MySQL.sln /build RelWithDebInfo /project initial_database
shell> devenv MySQL.sln /build RelWithDebInfo /project package

Вы можете установить получающийся .zip где Вам нравится. См. раздел 2.3.5.

Выполните постустановку

Остаток процесса установки вовлекает создание конфигурационного файла, создание основных баз данных и запуск сервера MySQL. Для инструкций см. раздел 2.9.

У учетных записей, которые перечислены в таблицах привилегий MySQL, первоначально нет никаких паролей. После запуска сервера Вы должны настроить пароли для них, используя инструкции в разделе 2.9.

2.8.3. Установка MySQL, используя дерево развития

Этот раздел описывает, как установить MySQL из исходного кода последнего достижения, который размещен на GitHub. Чтобы получить исходный код сервера MySQL с этого репозитария, Вы можете настроить местный репозитарий MySQL Git.

В GitHub MySQL Server и другие проекты MySQL найдены на странице MySQL. MySQL Server единственный репозитарий, который содержит ответвления для нескольких рядов MySQL.

MySQL официально присоединился к GitHub в сентябре 2014. Для получения дополнительной информации о перемещении MySQL к GitHub обратитесь к блогу MySQL Release Engineering MySQL on GitHub.

Предпосылки для установки из исходных текстов развития

Чтобы установить MySQL из дерева развития, Ваша система должна удовлетворять требованиям инструментов, обрисованным в общих чертах в разделе 2.8.

Установка репозитария MySQL Git

Чтобы настроить репозитарий MySQL Git на Вашей машине, используйте эту процедуру:

  1. Клонируйте репозитарий MySQL Git к своей машине. Следующая команда клонирует репозитарий к названному каталогу mysql-server. Начальная загрузка займет время, в зависимости от скорости Вашего соединения.

    ~$ git clone https://github.com/mysql/mysql-server.git
    Cloning into 'mysql-server'...
    remote: Counting objects: 1198513, done.
    remote: Total 1198513 (delta 0), reused 0 (delta 0), pack-reused 1198513
    Receiving objects: 100% (1198513/1198513), 1.01 GiB | 7.44 MiB/s, done.
    Resolving deltas: 100% (993200/993200), done.
    Checking connectivity... done.
    Checking out files: 100% (25510/25510), done.
    
  2. Когда работа клона завершается, содержание Вашего местного репозитария MySQL Git окажется подобным следующему:
    ~$ cd mysql-server
    ~/mysql-server$ ls
    BUILD Docs libmysqld README unittest
    client Doxyfile-perfschema lib services regex VERSION
    cmake extra man scripts vio
    CMakeLists.txt include mysql-test sqlwin
    cmd-line-utils INSTALL mysys sql-common zlib
    config.h.cmake lib binlog events mysys_ssl storage
    configure.cmake lib binlog standalone packaging strings
    COPYING libevent plugin support-files
    dbug libmysql rapid test clients
    
  3. Используйте git branch -r, чтобы рассмотреть отдаленные ответвления отслеживания для репозитария MySQL.
    ~/mysql-server$ git branch -r
    origin/5.5
    origin/5.6
    origin/5.7
    origin/8.0
    origin/HEAD -> origin/5.7
    origin/cluster-7.2
    origin/cluster-7.3
    origin/cluster-7.4
    origin/cluster-7.5
    
  4. Чтобы рассмотреть ответвления, которые проверены в Вашем местном репозитарии, дайте команду git branch. Когда Вы клонировали репозитарий MySQL Git, ответвления MySQL 5.7 были проверены автоматически. Звездочка идентифицирует эти ответвления 5.7 как активное ответвление.
    ~/mysql-server$ git branch
    * 5.7
    
  5. Чтобы проверить иное ответвление MySQL, выполните команду git checkout, определяя имя ответвления. Например, для контроля MySQL 8.0:
    ~/mysql-server$ git checkout 8.0
    Checking out files: 100% (9600/9600), done.
    Branch 8.0 set up to track remote branch 8.0 from origin.
    Switched to a new branch '8.0'
    
  6. Запустите git branch, чтобы проверить, что MySQL 8.0 присутствует. MySQL 8.0, который является последним ответвлением, которое Вы проверили, отмечен звездочкой, указывающей, что это активное ответвление.
    ~/mysql-server$ git branch
    5.7
    * 8.0
    
  7. Используйте команду git checkout, чтобы переключиться между ответвлениями. Например:
    ~/mysql-server$ git checkout 5.7
    
  8. Чтобы получить изменения, произведенные после Вашей начальной установки репозитария MySQL Git, переключитесь на ответвление, которое Вы хотите обновить, и скомандуйте git pull:
    ~/mysql-server$ git checkout 8.0
    ~/mysql-server$ git pull
    

    Чтобы исследовать историю, используйте git log:

    ~/mysql-server$ git log
    

    Вы можете также просмотреть историю и исходный код прямо на сайте GitHub MySQL.

    Если Вы видите изменения или код, о котором Вы имеете вопрос, посылаете электронное письмо в список рассылки MySQL internals. См. раздел 1.6.1. Для информации о содействии см. Contributing to MySQL Server.

  9. После того, как Вы клонировали репозитарий MySQL Git и проверили ответвление, которое Вы хотите создать, Вы можете создать сервер MySQL из исходного кода. Инструкции обеспечены в разделе 2.8.2, за исключением того, что Вы пропускаете часть о получении и распаковке дистрибутива.

    Будьте осторожны относительно установки созданного из исходного дерева дистрибутива на производственной машине. Команда установки может перезаписать Вашу живую установку. Если Вам уже устанавливали MySQL и не хотите перезаписывать его, выполните CMake со значениями для опций CMAKE_INSTALL_PREFIX, MYSQL_TCP_PORT и MYSQL_UNIX_ADDR, отличающимися от используемых Вашим производственным сервером. Для дополнительной информации о препятствовании тому, чтобы серверы вмешивались друг в друга, см. раздел 6.7.

2.8.4. Исходные параметры конфигурации MySQL

CMake обеспечивает большое управление тем, как Вы конфигурируете дистрибутив MySQL. Как правило, Вы делаете это с использованием опции в командной строке. Для информации об опциях, поддержанных CMake, выполните любую из этих команд в верхнем каталоге исходных текстов:

shell> cmake . -LH
shell> ccmake .

Вы можете также влиять на CMake через использование определенных переменных окружения. См. раздел 5.9.

Следующая таблица показывает доступные варианты опций CMake. В столбце Default PREFIX означает значение опции CMAKE_INSTALL_PREFIX, которая определяет каталог основы установки. Это значение используется в качестве родительского местоположения для нескольких из подкаталогов установки.

Таблица 2.11. Обзор параметров конфигурации MySQL (CMake)

ФорматыОписание Значение по умолчаниюВведено
BUILD_CONFIGИспользуйте те же самые опции, как официальные выпуски
CMAKE_BUILD_TYPEТип сборки RelWithDebInfo
CMAKE_CXX_FLAGSФлаги для компилятора C++
CMAKE_C_FLAGSФлаги для компилятора C
CMAKE_INSTALL_PREFIXКаталог основы установки /usr/local/mysql
COMPILATION_COMMENT Комментарий об окружающей среде компиляции
CPACK_MONOLITHIC_INSTALL Создает ли пакет единственный файлOFF
DEFAULT_CHARSETНабор символов сервера по умолчанию latin1
DEFAULT_COLLATIONСопоставление сервера по умолчанию latin1_swedish_ci
DISABLE_PSI_CONDИсключить инструментовку условия Performance SchemaOFF
DISABLE_PSI_FILEИсключить инструментовку файлов Performance SchemaOFF
DISABLE_PSI_IDLE Исключить инструментовку неактивности Performance Schema OFF
DISABLE_PSI_MEMORYИсключить инструментовку памяти Performance SchemaOFF
DISABLE_PSI_METADATAИсключить инструментовку метаданных Performance SchemaOFF
DISABLE_PSI_MUTEXИсключить инструментовку Performance Schema mutexOFF
DISABLE_PSI_RWLOCKИсключить инструментовку Performance Schema rwlockOFF
DISABLE_PSI_SOCKETИсключить инструментовку сокета Performance SchemaOFF
DISABLE_PSI_SPИсключить инструментовку сохраненных подпрограмм в Performance SchemaOFF
DISABLE_PSI_STAGEИсключить инструментовку этапа Performance SchemaOFF
DISABLE_PSI_STATEMENTИсключить инструментовку запросов Performance SchemaOFF
DISABLE_PSI_STATEMENT_DIGEST Исключить инструментовку Performance Schema statement_digest OFF
DISABLE_PSI_TABLEИсключить инструментовку таблиц Performance SchemaOFF
DISABLE_SHAREDНе создавать совместно используемые библиотеки, собирайте зависимый от позиции кодOFF
DOWNLOAD_BOOSTЗагрузить ли библиотеку Boost OFF
DOWNLOAD_BOOST_TIMEOUT Тайм-аут в секундах для того, чтобы загрузить библиотеку Boost 600
-DUSE_LD_GOLDИспользовать ли загрузчик GNU gold loader OFF8.0.0
-DWITH_PROTOBUF Какой буферный пакет протокола использовать bundled
ENABLED_LOCAL_INFILEВключить ли LOCAL для LOAD DATA INFILEOFF
ENABLED_PROFILING Включить ли код профилирования запросаON
ENABLE_DEBUG_SYNC Включить ли поддержку Debug SyncON
ENABLE_DOWNLOADSЗагрузить ли дополнительные файлы OFF
ENABLE_DTRACEВключать ли поддержку DTrace
ENABLE_GCOVВключать ли поддержку gcov
ENABLE_GPROFВключить gprof (только оптимизация в Linux) OFF
FORCE_UNSUPPORTED_COMPILER Разрешить ли неподдержанный компиляторOFF
IGNORE_AIO_CHECKС -DBUILD_CONFIG=mysql_release проигнорировать проверку libaioOFF
INSTALL_BINDIR Пользовательский каталог исполняемых модулейPREFIX/bin
INSTALL_DOCDIRКаталог документации PREFIX/docs
INSTALL_DOCREADMEDIRКаталог файла README PREFIX
INSTALL_INCLUDEDIRКаталог заголовочных файлов PREFIX/include
INSTALL_INFODIRКаталог файлов Info PREFIX/docs
INSTALL_LAYOUT Выберите предопределенное расположение установки STANDALONE
INSTALL_LIBDIRКаталог файлов библиотек PREFIX/lib
INSTALL_MANDIRКаталог Manual page PREFIX/man
INSTALL_MYSQLKEYRINGDIRКаталог файлов данных плагина keyring_fileЗависит от платформы
INSTALL_MYSQLSHAREDIR Совместно используемый каталог данныхPREFIX/share
INSTALL_MYSQLTESTDIRКаталог mysql-test PREFIX/mysql-test
INSTALL_PKGCONFIGDIR Каталог для файла mysqlclient.pc pkg-config INSTALL_LIBDIR/pkgconfig
INSTALL_PLUGINDIRКаталог плагинов PREFIX/lib/plugin
INSTALL_SBINDIRКаталог выполнения сервера PREFIX/bin
INSTALL_SECURE_FILE_PRIVDIR Значение по умолчанию secure_file_priv Зависит от платформы
INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR Значение по умолчанию secure_file_priv для libmysqld
INSTALL_SHAREDIR Каталог установки aclocal/mysql.m4PREFIX/share
INSTALL_STATIC_LIBRARIES Установить ли статические библиотекиON
INSTALL_SUPPORTFILESDIR Дополнительный каталог файлов поддержки PREFIX/support-files
MAX_INDEXESМаксимум индексов на таблицу 64
MUTEX_TYPEТип InnoDB mutexevent
MYSQL_DATADIRКаталог данных
MYSQL_MAINTAINER_MODE Включить ли среду проектирования для MySQL maintainer OFF
MYSQL_PROJECT_NAMEИмя проекта Windows/OS X 3306
MYSQL_TCP_PORTПорт TCP/IP3306
MYSQL_UNIX_ADDRФайл сокета Unix /tmp/mysql.sock
ODBC_INCLUDESКаталог включений ODBC
ODBC_LIB_DIRКаталог библиотек ODBC
OPTIMIZER_TRACEПоддержать ли отслеживание оптимизатора
SYSCONFDIRКаталог файла опций
SYSTEMD_PID_DIRКаталог для файла PID под systemd /var/run/mysqld
SYSTEMD_SERVICE_NAME Название службы MySQL под systemdmysqld
TMPDIR Значение по умолчанию tmpdir
WIN_DEBUG_NO_INLINEЗапретить ли функцию inlining OFF
WITHOUT_SERVERНе создавать серверOFF
WITHOUT_xxx_STORAGE_ENGINE Исключить механизм хранения xxx
WITH_ASANВключить AddressSanitizerOFF
WITH_AUTHENTICATION_PAM Создать плагин аутентификации PAMOFF
WITH_BOOSTМестоположение источников библиотеки Boost
WITH_CLIENT_PROTOCOL_TRACING Создать клиентский протокол, прослеживающий структуру ON
WITH_DEBUGВключать ли поддержку отладки OFF
WITH_DEFAULT_COMPILER_OPTIONS Использовать ли опции компилятора по умолчаниюON
WITH_DEFAULT_FEATURE_SET Использовать ли набор функций по умолчаниюON
WITH_EDITLINE Какой библиотекой libedit/editline пользоваться bundled
WITH_EMBEDDED_SERVERСоздать ли встроенный сервер OFF
WITH_EMBEDDED_SHARED_LIBRARYСоздавать ли совместно используемую встроенную библиотеку сервераOFF
WITH_INNODB_EXTRA_DEBUG Включать ли дополнительную поддержку отладки InnoDBOFF
WITH_INNODB_MEMCACHEDПроизвести ли совместно используемые библиотеки memcachedOFF
WITH_KEYRING_TESTСоздать тестовую программу ключей OFF
WITH_LIBEVENTКакой библиотекой libevent пользоваться bundled
WITH_LIBWRAPВключать ли libwrap (TCP wrappers) OFF
WITH_LZ4Тип поддержки LZ4bundled
WITH_MECABКомпилировать MeCab
WITH_MSANВключить MemorySanitizerOFF
WITH_MSCRT_DEBUGВключить отслеживание утечки памяти Visual Studio CRTOFF
WITH_NUMA Установить политику распределения памяти NUMA
WITH_RAPIDСоздать ли плагины цикла быстрого развития ON
WITH_SSLТип поддержки SSLbundled
WITH_SYSTEMDВключить установку файлов поддержки systemd OFF
WITH_TEST_TRACE_PLUGIN Создать испытательный плагин трассировки протоколаOFF
WITH_TSANВключить ThreadSanitizerOFF
WITH_UBSANВключить Undefined Behavior Sanitizer OFF
WITH_UNIXODBCВключить unixODBCOFF
WITH_VALGRINDСобрать ли заголовочные файлы Valgrind OFF
WITH_ZLIBТип поддержки zlibbundled
WITH_xxx_STORAGE_ENGINE Собрать механизм хранения xxx статически в сервер

Следующие разделы предоставляют больше информации об опциях CMake.

Для булевых опций значение может быть определено как 1 или ON, чтобы включить опцию, или как 0 или OFF, чтобы выключить опцию.

Много опций конфигурируют значения по умолчанию времени компиляции, которые могут быть переопределены при запуске сервера. Например, опции CMAKE_INSTALL_PREFIX, MYSQL_TCP_PORT и MYSQL_UNIX_ADDR, которые конфигурируют местоположение каталога установки по умолчанию, номер порта TCP/IP и файл сокета Unix, могут быть изменены при запуске сервера с помощью опций --basedir, --port и --socket mysqld. Где применимо, описания параметра конфигурации указывают на соответствующую опцию запуска mysqld .

Общие параметры

Опции расположения установки

CMAKE_INSTALL_PREFIX указывает на основной каталог установки. Другие опции с названиями формы INSTALL_xxx указывают, что составляющие местоположения интерпретируются относительно префикса, а их значения относительные пути. Их значения не должны включать префикс.

Опции механизмов хранения

Механизмы хранения созданы как плагины. Вы можете создать плагин как статический модуль (собранный в сервер) или динамический модуль (созданный как динамическая библиотека, которая должна быть установлена в сервер, используя INSTALL PLUGIN или --plugin-load прежде, чем это сможет использоваться). Некоторые плагины не могут поддержать статическую или динамическую сборку.

Механизмы InnoDB, MyISAM, MERGE, MEMORY и CSV обязательны (всегда собраны в сервер) и не должны быть установлены явно.

Чтобы собрать механизм хранения статически в сервер, надо использовать -DWITH_engine_STORAGE_ENGINE=1. Некоторые допустимые значения engine: ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED и PERFSCHEMA (Performance Schema). Например:

-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1

Невозможно собрать без поддержки Performance Schema. Если надо собрать без особых типов инструментовки, это может быть сделано со следующими опциями:

DISABLE_PSI_COND
DISABLE_PSI_FILE
DISABLE_PSI_IDLE
DISABLE_PSI_MEMORY
DISABLE_PSI_METADATA
DISABLE_PSI_MUTEX
DISABLE_PSI_PS
DISABLE_PSI_RWLOCK
DISABLE_PSI_SOCKET
DISABLE_PSI_SP
DISABLE_PSI_STAGE
DISABLE_PSI_STATEMENT
DISABLE_PSI_STATEMENT_DIGEST
DISABLE_PSI_TABLE
DISABLE_PSI_THREAD
DISABLE_PSI_TRANSACTION

Например, чтобы собрать без инструментовки mutex, сконфигурируйте MySQL, используя -DDISABLE_PSI_MUTEX=1.

Чтобы исключить механизм хранения из сборки, примените -DWITH_engine_STORAGE_ENGINE=0:

-DWITH_ARCHIVE_STORAGE_ENGINE=0
-DWITH_EXAMPLE_STORAGE_ENGINE=0
-DWITH_FEDERATED_STORAGE_ENGINE=0

Также возможно исключить механизм хранения из сборки через -DWITHOUT_engine_STORAGE_ENGINE=1 (но -DWITH_engine_STORAGE_ENGINE=0 предпочтен). Примеры:

-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

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

Опции особенностей

Флаги компилятора

Чтобы определить Ваши собственные флаги компилятора C и C ++, для флагов, которые не затрагивают оптимизацию, используют опции CMake CMAKE_C_FLAGS и CMAKE_CXX_FLAGS.

Обеспечивая Ваши собственные флаги компилятора, Вы могли бы хотеть определить также и CMAKE_BUILD_TYPE.

Например, чтобы создать 32-битную версию на 64-bit Linux-системе:

shell> mkdir bld
shell> cd bld
shell> cmake .. -DCMAKE_C_FLAGS=-m32 \
                   -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_BUILD_TYPE=RelWithDebInfo

Если Вы устанавливаете флаги оптимизации (-Onumber), Вы должны установить опции CMAKE_C_FLAGS_build_type и\или CMAKE_CXX_FLAGS_build_type, где build_type соответствует значению CMAKE_BUILD_TYPE . Чтобы определить иную оптимизацию для типа сборки по умолчанию (RelWithDebInfo), задайте опции CMAKE_C_FLAGS_RELWITHDEBINFO и CMAKE_CXX_FLAGS_RELWITHDEBINFO. Например, чтобы собрать на Linux с -O3 символами отладки, сделайте это:

shell> cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
                   -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"

2.8.5. Проблемы сборки MySQL

Решение многих проблем вовлекает реконфигурирование. Примите во внимание следующее:

Чтобы препятствовать тому, чтобы старые файлы объектов или информация о конфигурации использовались, выполните следующие команды прежде, чем запустить повторно CMake:

В Unix:

shell> make clean
shell> rm CMakeCache.txt

В Windows:

shell> devenv MySQL.sln /clean
shell> del CMakeCache.txt

Если Вы создаете за пределами исходного дерева, удалите и обновите Ваш каталог сборки прежде, чем запустить повторно CMake . Для инструкций по сборке за пределами исходного дерева см. How to Build MySQL Server with CMake.

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

2.8.6. Конфигурация MySQL и имеющие отношение к третьей стороне инструменты

Имеющие отношение к третьей стороне инструменты, которые должны определить версию MySQL из исходных текстов MySQL, могут читать файл VERSION в верхнем уровне каталога исходных текстов. Файл перечисляет части версии отдельно. Например, если версия 8.0.4-m14, файл похож на это:

MYSQL_VERSION_MAJOR=8
MYSQL_VERSION_MINOR=0
MYSQL_VERSION_PATCH=4
MYSQL_VERSION_EXTRA=-m14

Если это не General Availablility (GA), значение MYSQL_VERSION_EXTRA будет непусто. В примере значение соответствует Milestone 14.

Чтобы создать пятизначное число из компонентов версии, используйте эту формулу:

MYSQL_VERSION_MAJOR*10000 + MYSQL_VERSION_MINOR*100 + MYSQL_VERSION_PATCH

2.8.7. Производство документации MySQL Doxygen

Исходные тексты MySQL содержат внутреннюю документацию, использующую Doxygen. Произведенный контент Doxygen доступен в http://dev.mysql.com/doc/dev/mysql-server/latest/. Также возможно произвести этот контент в местном масштабе от исходного дистрибутива MySQL, используя следующую процедуру:

  1. Установите doxygen 1.8.11 или выше. Дистрибутивы доступны здесь:

    
    http://www.stack.nl/~dimitri/doxygen/download.html
    

    После установки doxygen, проверьте номер версии:

    shell> doxygen --version
    1.8.11
    
  2. Поставьте PlantUML. Дистрибутивы доступны здесь:
    
    http://plantuml.com/download.html
    

    Когда Вы устанавливаете PlantUML на Windows (проверено на Windows 10), Вы должны выполнить это, по крайней мере, однажды как администратор, чтобы создать регистрационные ключи. Откройте консоль администратора и выполните эту команду:

    java -jar path-to-plantuml.jar
    

    Команда должна открыть окно GUI и не возвратить ошибки на консоль.

  3. Поставьте Graphviz dot. Дистрибутивы доступны здесь:
    http://www.graphviz.org/
    

    После установки Graphviz, проверьте доступность dot:

    shell> which dot
    /usr/bin/dot
    shell> dot -V
    dot - graphviz version 2.28.0 (20130928.0220)
    
  4. Установите переменную среды PLANTUML_JAR_PATH к местоположению, где Вы устанавливали PlantUML. Например:
    export PLANTUML_JAR_PATH=path-to-plantuml.jar
    
  5. Чтобы вызвать doxygen, измените местоположение на верхний каталог Вашего дистрибутива исходного текста MySQL и выполните эти команды:
    mkdir -p generated/doxygen
    doxygen
    

    Осмотрите журнал ошибок. Это доступно в файле doxyerror.log каталога верхнего уровня. Предполагая, что создание выполнено успешно, рассмотрите произведенный вывод, используя браузер. Например:

    firefox generated/doxygen/html/index.html
    

    Вы можете использовать иной браузер.

2.9. Постустановка и тестирование

Этот раздел обсуждает задачи, которые Вы должны выполнить после установки MySQL:

Когда Вы готовы создать дополнительные учетные записи пользователя, Вы можете найти информацию о системе управления доступом MySQL и ведении учеток в разделах 7.2 и 7.3.

2.9.1. Инициализация каталога данных

После установки MySQL Вы должны инициализировать каталог данных, включая таблицы в системной базе данных mysql. Для некоторых методов установки MySQL инициализация каталога данных может быть сделана автоматически, как описано в разделе 2.9. Для других методов установки, включая установку из двоичного дистрибутива и исходных текстов, Вы должны инициализировать каталог данных самостоятельно.

Этот раздел описывает, как инициализировать каталог данных на Unix и подобных Unix системах. Для Windows см. раздел 2.3.7. Для некоторых предложенных команд, которые Вы можете использовать для теста, является ли сервер доступным и рабочим должным образом см. раздел 2.9.3.

В примерах, показанных здесь, сервер работает в соответствии с пользовательской учетной записью mysql. Это предполагает, что такая учетная запись существует. Создайте учетную запись, если она не существует, или замените названием иной существующей учетной записью, которую Вы планируете использовать для того, чтобы выполнить сервер. Для информации о создании учетной записи см. раздел 2.2.

  1. Перейдите в верхний каталог Вашей установки MySQL, представленный здесь BASEDIR:

    shell> cd BASEDIR
    

    BASEDIR вероятно, будет вроде /usr/local/mysql или /usr/local. Следующие шаги предполагают, что Вы изменили местоположение на этот каталог.

    Вы найдете несколько файлов и подкаталогов в BASEDIR. Самые важные в целях установки bin и scripts, которые содержат сервер, клиент и утилиты.

  2. Создайте каталог, который обеспечивает местоположение, чтобы использовать в качестве значения системной переменной secure_file_priv, которая ограничивает операции импорта/экспорта определенным каталогом. См. раздел 6.1.5.
    shell> mkdir mysql-files
    shell> chmod 750 mysql-files
    
  3. В случае необходимости гарантируйте, что содержание дистрибутива доступно для mysql. Если Вы устанавливали дистрибутив как mysql, ничего делать дополнительно не надо. Если Вы устанавливали дистрибутив как root, его содержание будет принадлежать root. Измените его принадлежность на mysql, выполняя следующие команды как root в каталоге установки. Первая команда изменяет признак владельца файлов на mysql. Вторая изменяет атрибут группы на mysql.
    shell> chown -R mysql .
    shell> chgrp -R mysql .
    
  4. В случае необходимости инициализируйте каталог данных, включая базу данных mysql, содержащую таблицы привилегий MySQL, которые определяют, как пользователям разрешают соединиться с сервером.

    Как правило, инициализация каталога данных должна быть сделана только в первый раз, когда Вы устанавливаете MySQL. Если Вы обновляете существующую установку, Вы должны выполнить mysql_upgrade (см. раздел 5.4.5). Однако, команда, которая инициализирует каталог данных, не перезаписывает существующих таблиц привилегий, таким образом, должно быть безопасно работать при любых обстоятельствах.

    Используйте сервер, чтобы инициализировать каталог данных:

    shell> bin/mysqld --initialize --user=mysql
    
  5. Если Вы хотите, чтобы сервер был в состоянии развернуться с автоматической поддержкой безопасных соединений, используйте утилиту mysql_ssl_rsa_setup , чтобы создать файлы по умолчанию SSL и RSA:
    shell> mysql_ssl_rsa_setup
    

    Подробности в разделе 5.4.3.

  6. После инициализации каталога данных Вы можете установить заключительные настройки принадлежности установки. Если оставить установку принадлежащей mysql, ничего делать не надо. Иначе большая часть установки MySQL может принадлежать root. Исключение то, что каталоги данных и mysql-files ДОЛЖНЫ принадлежать mysql. Чтобы достигнуть этого, выполните следующие команды как root в каталоге установки. Для некоторых типов дистрибутива можно было бы назвать каталог данных var, а не data, скорректируйте вторую команду соответственно.
    shell> chown -R root .
    shell> chown -R mysql data mysql-files
    

    Если каталог плагинов (указан в переменной plugin_dir) перезаписываем сервером, для пользователя может быть возможно написать выполнимый код в файл в каталоге, используя SELECT ... INTO DUMPFILE. Это может быть предотвращено, делая каталог только для чтения сервера или устанавливая переменную secure_file_priv при запуске сервера к каталогу, где записи SELECT могут быть выполнены безопасно. Например, установите это в mysql-files, создаваемый ранее.

  7. Чтобы определить опции, которые сервер MySQL должен использовать при запуске, поместите их в файл /etc/my.cnf или /etc/mysql/my.cnf. Вы можете использовать такой файл, например, чтобы установить переменную secure_file_priv. См. раздел 6.1.2. Если Вы не делаете этого, сервер запускается с его настройками по умолчанию.
  8. Если Вы хотите, чтобы MySQL запустился автоматически, когда Вы загружаете свою машину, см. раздел 2.9.5.

Инициализация каталога данных составляет таблицы часового пояса в базе данных mysql, но не заполняет их. Чтобы сделать это, используйте инструкции в раздел 11.6.

2.9.1.1. Инициализация каталога данных вручную, используя mysqld

Этот раздел описывает, как инициализировать каталог данных, используя mysqld.

Следующие инструкции предполагают, что Ваше текущее местоположение, это каталог установки MySQL, представленный здесь как BASEDIR:

shell> cd BASEDIR

Чтобы инициализировать каталог данных, вызовите mysqld с опцией --initialize или --initialize-insecure, в зависимости от того, хотите ли Вы, чтобы сервер произвел случайный начальный пароль для 'root'@'localhost'.

В Windows используйте одну из этих команд:

C:\> bin\mysqld --initialize
C:\> bin\mysqld --initialize-insecure

В Unix-системах важно удостовериться, что каталоги базы данных и файлы принадлежат учетной записи mysql так, чтобы сервер имел доступ к ним на чтение и запись, когда Вы выполняете это позже. Чтобы гарантировать это, выполните mysqld как root и включите опцию --user:

shell> bin/mysqld --initialize --user=mysql
shell> bin/mysqld --initialize-insecure --user=mysql

Иначе выполните программу в то время как зарегистрированы как mysql, в этом случае Вы можете опустить опцию --user.

Независимо от платформы, надо использовать --initialize для безопасности по умолчанию (то есть, включая генерацию случайного пароля для root). В этом случае пароль отмечен как выдохшийся, и Вы должны будете выбрать новый. С опцией --initialize-insecure пароль не генерируется, предполагается, что Вы назначите пароль на учетную запись прежде, чем поместить сервер в производственное использование.

Могло бы быть необходимо определить другие опции, например, --basedir или --datadir, если mysqld не идентифицирует правильные местоположения для каталога установки или каталога данных. Например (вводите команду в одну строку):

shell> bin/mysqld --initialize --user=mysql
                     --basedir=/opt/mysql/mysql
                     --datadir=/opt/mysql/mysql/data

Альтернативно, поместите соответствующие настройки опции в файл опции и передайте название этого файла к mysqld. Для Unix-систем предположите, что имя файла опции /opt/mysql/mysql/etc/my.cnf. Поместите эти строки в файл:

[mysqld]
basedir=/opt/mysql/mysql
datadir=/opt/mysql/mysql/data

Вызовите mysqld следующим образом (введите команду в одну строку с опцией --defaults-file сначала):

shell> bin/mysqld --defaults-file=/opt/mysql/mysql/etc/my.cnf
                     --initialize --user=mysql

В Windows предположите, что C:\my.ini содержит эти строки:

[mysqld]
basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0
datadir=D:\\MySQLdata

Вызовите mysqld следующим образом (введите команду в одну строку с опцией --defaults-file в начале):

C:\> bin/mysqld --defaults-file=C:\my.ini --initialize

Когда вызвано с опциями --initialize или --initialize-insecure, mysqld выполняет следующую последовательность инициализации.

Сервер пишет любые сообщения своему стандартному ошибочному выводу. Это может быть перенаправлено к журналу ошибок, ищите там, если Вы не видите сообщения на своем экране. Для информации о журнале ошибок, включая то, где это расположено, см. раздел 6.4.2.

В Windows используйте опцию --console, чтобы перенаправить сообщения на консоль.

  1. Сервер проверяет существование каталога данных:

  2. В пределах каталога данных сервер создает системную базу данных mysql и ее таблицы, включая таблицы привилегий, серверные таблицы справки и таблицы часового пояса. Для полного списка и описания таблиц см. раздел 7.2.

  3. Сервер инициализирует системное пространство таблиц и связанные структуры данных для управления таблицами InnoDB.

    После того, как mysqld настраивает системное пространство таблиц InnoDB, изменения некоторых характеристик табличного пространства требуют установки совершенно нового экземпляра. Это включает имя первого файла в системном табличном пространстве и число журналов отмены. Если Вы не хотите использовать значения по умолчанию, удостоверьтесь что настройки для параметров конфигурации innodb_data_file_path и innodb_log_file_size находятся в конфигурационном файле MySQL прежде, чем выполнить mysqld. Также удостоверьтесь, что определили по мере необходимости другие параметры, которые затрагивают создание и местоположение файлов InnoDB такие, как innodb_data_home_dir и innodb_log_group_home_dir.

    Если те опции находятся в Вашем конфигурационном файле, но тот файл не находится в местоположении, которое MySQL читает по умолчанию, определите местоположение файла, используя опцию --defaults-extra-file при запуске mysqld.

  4. Сервер создает учетную запись пользователя 'root'@'localhost' . Действие сервера относительно пароля для этой учетной записи зависит от того, как Вы вызываете это:

  5. Сервер заполняет серверные таблицы справки, если контент доступен (в файле fill_help_tables.sql). Сервер не заполняет таблицы часового пояса, чтобы сделать это, см. раздел 11.6.

  6. Если опция --init-file была дана, чтобы назвать файл SQL, сервер выполняет запросы в файле. Эта опция позволяет Вам выполнить пользовательские последовательности начальной загрузки.

    Когда сервер работает в режиме начальной загрузки, некоторая функциональность недоступна, что ограничивает запросы, разрешенные в файле. Они включают запросы, которые касаются ведения учетных записей (например, CREATE USER или GRANT), репликацию и глобальные операционные идентификаторы.

  7. На этом все.

После того, как Вы инициализируете каталог данных, запуская сервер с --initialize или --initialize-insecure, запускайте сервер обычно (то есть, без любой из этих опций) и назначайте новый парполь для 'root'@'localhost':

  1. Запустите сервер. Инструкции раздел 2.9.2.

  2. Соединитесь с сервером:

  3. После соединения, назначьте новый пароль root:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

Последовательность инициализации каталога данных, выполненная сервером, не заменяет действия, выполненные mysql_secure_installation или mysql_ssl_rsa_setup . См. разделы 5.4.2 и 5.4.3.

2.9.2. Запуск сервера

Этот раздел описывает, как запускают сервер на Unix-системах. Для Windows см. раздел 2.3.5.5. Для некоторых предложенных команд, которые Вы можете использовать для теста, является ли сервер доступным и рабочим должным образом см. раздел 2.9.3.

Запустите сервер MySQL, если Ваша установка включает mysqld_safe :

shell> bin/mysqld_safe --user=mysql &

Для систем Linux, на которых MySQL установлен, используя пакеты RPM, запуск сервера и завершение работы управляется, используя systemd, а не mysqld_safe , соответственно, mysqld_safe не установлен.

Запустите сервер, если Ваша установка включает поддержку systemd:

shell> systemctl start mysqld

Замените соответствующим именем службы, если оно отличается от mysqld, например, mysql на SLES-системах.

Важно, чтобы сервер MySQL был выполнен, используя непривилегированную учетную запись (не root). Чтобы гарантировать это, выполните mysqld_safe как root и включите опцию --user. Иначе, Вы должны выполнить программу в то время как зарегистрированы, как mysql, тогда Вы можете опустить опцию --user. Для дальнейших инструкций о том, как выполнить MySQL как непривилегированный пользователь см. раздел 7.1.5 .

Если команда немедленно терпит неудачу и печатает mysqld ended , ищите информацию в журнале ошибок (который по умолчанию является файлом host_name.err в каталоге данных).

Если сервер неспособен получить доступ к каталогу данных или считать таблицы привилегий, он пишет сообщение в свой журнал ошибок. Такие проблемы могут произойти, если Вы забыли составить таблицы привилегий, инициализируя каталог данных прежде, чем перейти к этому шагу, или если Вы выполняли команду, которая инициализирует каталог данных без опции --user. Удалите каталог data и выполните команду уже с опцией --user.

Если у Вас есть другие проблемы, запуская сервер, см. раздел 2.9.2.1. Для получения дополнительной информации о mysqld_safe , см. раздел 5.3.2. Для получения дополнительной информации о поддержке systemd см. раздел 2.5.9.

2.9.2.1. Поиск неисправностей и проблем при запуске сервера MySQL

Этот раздел обеспечивает предложения по поиску неисправностей для проблем запуска сервера. Для дополнительных предложений для систем Windows см. раздел 2.3.6.

Если у Вас есть проблемы с запуском сервера, вот некоторые вещи, которые стоит попробовать:

2.9.3. Тестирование сервера

После того, как каталог данных инициализирован, и Вы запустили сервер, выполните некоторые простые тесты, чтобы удостовериться, что это работает удовлетворительно. Этот раздел предполагает, что Ваше текущее местоположение каталог установки MySQL, и что у него есть подкаталог bin, содержащий программы MySQL, используемые здесь. Если это не так, скорректируйте пути команды соответственно.

Альтернативно, добавьте каталог bin к переменной окружения PATH. Это позволяет Вашей оболочке найти программы MySQL должным образом, так, чтобы Вы могли выполнить программу, вводя только ее имя, а не ее путь. См. раздел 5.2.10.

Используйте mysqladmin , чтобы проверить, что сервер работает. Следующие команды обеспечивают простые тесты, чтобы все проверить:

shell> bin/mysqladmin version
shell> bin/mysqladmin variables

Если Вы не можете соединиться с сервером, определите опцию -u root, чтобы соединиться как root. Если Вы назначили пароль для root, Вы должны будете также определить -p в командной строке и ввести пароль когда запрошено. Например:

shell> bin/mysqladmin -u root -p version
Enter password: (enter root password here)

Вывод от mysqladmin version изменяется немного в зависимости от Вашей платформы и версии MySQL, но должен быть подобным показанному здесь:

shell> bin/mysqladmin version
mysqladmin Ver 14.12 Distrib 8.0.1, for pc-linux-gnu on i686
...
Server version 8.0.1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 14 days 5 hours 5 min 21 sec

Threads: 1 Questions:    366 Slow queries: 0
Opens:   0 Flush tables:   1 Open tables: 19
Queries per second avg: 0.000

Чтобы видеть, что еще Вы можете сделать с mysqladmin , вызовите его с опцией --help.

Проверьте, что Вы можете закрыть сервер (добавьте опцию -p, если пароль для root установлен):

shell> bin/mysqladmin -u root shutdown

Проверьте, что Вы можете запустить сервер снова. Сделайте это при использовании mysqld_safe или вызывая напрямую mysqld. Например:

shell> bin/mysqld_safe --user=mysql &

Если mysqld_safe падает, см. раздел 2.9.2.1.

Выполните некоторые простые тесты, чтобы проверить, что Вы можете получить информацию от сервера. Вывод должен быть подобным показанному здесь.

Используйте mysqlshow , чтобы видеть, какие базы данных существуют:

shell> bin/mysqlshow
+--------------------+
| Databases          |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

Список установленных баз данных может измениться, но будет всегда включать минимум mysql и information_schema.

Если Вы определяете имя базы данных, mysqlshow выводит на экран список таблиц в пределах базы данных:

shell> bin/mysqlshow mysql
Database: mysql
+---------------------------+
| Tables                    |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

Используйте mysql , чтобы выбрать информацию из таблицы в базе данных mysql:

shell> bin/mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+------+-----------+-----------------------+
| User | Host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | mysql_native_password |
+------+-----------+-----------------------+

В этом пункте работает Ваш сервер, и Вы можете получить доступ к этому. Чтобы улучшить безопасность, если Вы еще не назначили пароль на начальную учетную запись, следуйте инструкциям в разделе 2.9.4.

Для получения дополнительной информации о mysql, mysqladmin и mysqlshow , см. разделы 5.5.1, 5.5.2 и 5.5.7.

2.9.4. Обеспечение безопасности MySQL

Процесс установки MySQL вовлекает инициализацию каталога данных, включая базу данных mysql, содержащую таблицы привилегий, которые определяют учетные записи MySQL. Для деталей см. раздел 2.9.

Этот раздел описывает, как назначить пароль на начального пользователя root, созданного во время процесса установки MySQL, если Вы еще не сделали этого.

В Windows Вы можете также выполнить процесс, описанный в этом разделе во время установки с MySQL Installer (см. раздел 2.3.3). На всех платформах дистрибутив MySQL включает mysql_secure_installation, утилиту командной строки, которая автоматизирует большую часть процесса обеспечения установки MySQL. Инструментальные средства MySQL доступны на всех платформах, и также предлагают способность управлять учетными записями пользователя (см. главу 28).

Пароль может уже быть назначен на начальную учетную запись при этих обстоятельствах:

Таблица mysql.user определяет начальную учетную запись пользователя MySQL и ее привилегии доступа. Установка MySQL создает только учетную запись пользователя 'root'@'localhost', которая имеет все привилегии и может сделать что-либо. Если у учетной записи root есть пустой пароль, Ваша установка MySQL не защищена: любой может соединиться с сервером MySQL как root без пароля .

'root'@'localhost' также есть в таблице mysql.proxies_priv, которая позволяет предоставить привилегию PROXY для ''@'', то есть, для всех пользователей и всех узлов. Это позволяет root возможность настраивать прокси-пользователей, так же как делегировать к другим учетным записям полномочия настроить пользователей. См. раздел 7.3.10.

Чтобы назначить пароль для MySQL root, используйте следующую процедуру. Замените new_password в примерах паролем, который Вы хотите использовать.

Запустите сервер, если он не работает. Для инструкций см. раздел 2.9.2.

Начальная учетная запись root, возможно, не имеет пароля. Выберите, какая из следующих процедур применяется:

После назначения пароля root, Вы должны предоставлять этот пароль всякий раз, когда Вы соединяетесь с сервером, используя учетную запись. Например, чтобы соединиться с сервером, используя клиент mysql, используйте эту команду:

shell> mysql -u root -p
Enter password: (enter root password here)

Чтобы закрыть сервер через mysqladmin, используйте эту команду:

shell> mysqladmin -u root -p shutdown
Enter password: (enter root password here)

Для дополнительной информации об установке паролей, см. раздел 7.3.6. Если Вы забываете Ваш пароль для root после его установки, см. раздел B.5.3.2.

Чтобы настроить дополнительные учетные записи, см. раздел 7.3.2.

2.9.5. Запуск и остановка MySQL автоматически

Этот раздел обсуждает методы для запуска и остановки сервера MySQL.

Вообще, Вы запускаете mysqld одним из этих способов:

systemd, скрипты mysqld_safe и mysql.server , Solaris/OpenSolaris SMF и OS X Startup Item (или MySQL Preference Pane) могут использоваться, чтобы запустить сервер вручную или автоматически во время запуска ОС. systemd, скрипт mysql.server и Startup Item также могут использоваться, чтобы остановить сервер.

Следующяя таблица показывает, какие группы опций сервер и стартовые скрипты читают из файлов опций.

Таблица 2.12. Стартовые скрипты MySQL и поддерживаемые сервером группы опций

СкриптГруппа опций
mysqld[mysqld], [server], [mysqld-major_version]
mysqld_safe[mysqld], [server], [mysqld_safe]
mysql.server[mysqld], [mysql.server], [server]

[mysqld-major_version] указывает, что группы с именами вида [mysqld-5.7] и [mysqld-8.0] считаны серверами, имеющими версии 5.7.x, 8.0.x и т.д. Эта функция может быть использована, чтобы определить опции, которые могут быть предназначены только для чтения серверами в пределах данного ряда выпуска.

Для обратной совместимости mysql.server также читает группу [mysql_server], а mysqld_safe также читает группу [safe_mysqld]. Чтобы быть актуальным, Вы должны обновить свои файлы опции, чтобы не использовать группы [mysql.server] и [mysqld_safe].

Для получения дополнительной информации о конфигурационных файлах MySQL, их структуре и содержании см. раздел 5.2.6.

2.10. Обновления или откат MySQL

Этот раздел описывает шаги, чтобы обновить или понизить версию MySQL.

Обновление общая процедура, поскольку Вы поднимаете исправления ошибок в пределах того же самого ряда выпуска MySQL или применяете существенные изменения между выпусками. Вы выполняете эту процедуру сначала на некоторых испытательных системах, чтобы удостовериться, что все работает гладко, и затем на производственных системах.

Понижение менее распространено. Как правило, Вы отменяете обновление из-за некоторой совместимости или исполнительной проблемы, которая происходит на производственной системе, но не была раскрыта во время начальной проверки обновления на испытательных системах. Как с процедурой обновления, выполните и проверьте процедуру понижения на некоторых испытательных системах сначала, перед использованием этого на производственной системе.

2.10.1. Обновление MySQL

MySQL Server 8.0 включает глобальный словарь данных, содержащий информацию об объектах базы данных в транзакционных таблицах. В предыдущей серии MySQL данные о словаре хранились в метафайлах с данными и нетранзакционных системных таблицах. Этот раздел описывает, как обновить Ваш каталог данных от основанной на файлах структуры до структуры словаря данных.

Процесс, описанный здесь, требует, чтобы Вы обновились до MySQL 8.0 от MySQL 5.7 версий GA (5.7.9 или выше). Обновления от версий не-GA MySQL 5.7 или от ряда MySQL, предшествующего 5.7, не поддержаны.

После того, как Вы обновляете сервер, это влечет за собой некоторые общие операционные различия, см. раздел 15.6.

В следующем обсуждении команды MySQL, которые должны быть выполнены, используя учетную запись MySQL с административными привилегиями, включают -u root в командной строке, чтобы определить пользователя MySQL root. Команды, которые требуют пароля для root, также включают опцию -p. Поскольку -p не сопровождается никаким значением опции, это запрос для пароля. Введите пароль когда запрошено.

Запросы SQL могут быть выполнены, используя клиент mysql (соединитесь как root, чтобы гарантировать, что у Вас есть необходимые привилегии).

Поддержанные методы обновления

Поддержанные методы обновления включают:

Если Вы выполняете сервер MySQL в Windows, используйте процедуру обновления, описанную в разделе 2.3.8 .

Если Ваша текущая установка MySQL была установлена на Enterprise Linux platform или Fedora, используя MySQL Yum Repository, см. раздел 2.10.1.2.

Если Ваша текущая установка MySQL была установлена на Ubuntu, используя MySQL APT repository, см. раздел 2.10.1.3.

Поддержанные пути обновления

Если иное не сказано, следующие пути обновления поддержаны:

Следующие условия относятся ко всем путям обновления:

Прежде, чем Вы начнете

Перед обновлением изучите следующую информацию и выполните рекомендуемые шаги:

Подтверждение предпосылок обновления для Вашего MySQL 5.7

Прежде, чем запустить MySQL 8.0, чтобы обновить каталог данных, очень важно гарантировать готовность обновления Вашей установки при использовании Вашего MySQL 5.7, чтобы выполнить несколько предварительных проверок. Процесс обновления иначе может потерпеть неудачу.

Выполните предварительные проверки:

  1. Не должно быть никаких таблиц, которые используют устаревшие типы данных, таблиц InnoDB, которые используют неродное разделение, или триггеров, у которых отсутствует или пустое определение или недопустимый контекст создания. Этот контекст обозначен атрибутами character_set_client, collation_connection , Database Collation, выведенными на экран SHOW TRIGGERS или в таблице INFORMATION_SCHEMA TRIGGERS. Чтобы идентифицировать таблицы и триггеры, которые подходят под эти требования, выполните эту команду:

    mysqlcheck -u root -p --all-databases --check-upgrade
    

    Если mysqlcheck сообщает о каких-либо ошибках, исправьте проблемы.

  2. Не должно быть никаких разделенных таблиц, которые используют механизм хранения, у которого нет родной поддержки разделения. Чтобы идентифицировать такие таблицы, выполните этот запрос:
    SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
           WHERE ENGINE NOT IN ('innodb', 'ndbcluster') AND
           CREATE_OPTIONS LIKE '%partitioned%';
    

    Любая таблица, о которой сообщает запрос, должна быть изменена, чтобы использовать InnoDB или сделана неразделенной. Изменить табличный механизм хранения на InnoDB можно так:

    ALTER TABLE table_name ENGINE = INNODB;
    

    Для информации о преобразовании таблиц MyISAM в InnoDB см. раздел 16.8.4.

    Чтобы сделать разделенную таблицу неразделенной, выполните этот запрос:

    ALTER TABLE table_name REMOVE PARTITIONING;
    
  3. Не должно быть никаких таблиц в системной базе данных MySQL 5.7 mysql, у которых есть то же самое имя как у таблицы, используемой словарем данных MySQL 8.0. Чтобы идентифицировать таблицы с теми именами, выполните этот запрос:
    SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
           WHERE LOWER(TABLE_SCHEMA) = 'mysql' and LOWER(TABLE_NAME) IN
           ('catalogs', 'character_sets', 'collations', 'column_type_elements',
            'columns', 'events', 'foreign_key_column_usage', 'foreign_keys',
            'index_column_usage', 'index_partitions', 'index_stats', 'indexes',
            'parameter_type_elements', 'parameters', 'routines', 'schemata',
            'st_spatial_reference_systems', 'table_partition_values',
            'table_partitions', 'table_stats', 'tables', 'tablespace_files',
            'tablespaces', 'triggers', 'version', 'view_routine_usage',
            'view_table_usage');
    

    Любые таблицы, о которых сообщает запрос, должны быть переименованы (используя RENAME TABLE). Это может также повлечь за собой изменения приложений, которые используют затронутые таблицы.

  4. Не должно быть никаких таблиц, у которых есть имена с ограничением внешнего ключа больше, чем 64 символа. Чтобы идентифицировать таблицы со слишком длинными именами ограничения, выполните этот запрос:
    SELECT CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME
           FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
           WHERE LENGTH(CONSTRAINT_NAME) > 64;
    

    Любые таблицы, о которых сообщает запрос, должны быть изменены, чтобы не иметь имена ограничения больше, чем 64 символа (используя ALTER TABLE).

  5. Ваш MySQL 5.7 не должен использовать функции, которые не поддержаны MySQL 8.0. Любые изменения здесь обязательно привязаны к определенной установке, но следующие примеры иллюстрируют вид вещей, которые надо искать:

Выполнение оперативного обновления

Этот раздел описывает, как выполнить оперативное обновление. Перед переходом иззучите раздел "Прежде, чем Вы начнете" и гарантируете, что Ваша установка готова к обновлению.

Если Вы обновляете установку, первоначально произведенную, устанавливая много пакетов RPM, обновляйте все пакеты, не только некоторые. Например, если Вы ранее устанавливали сервер и клиент, не обновляйте только RPM сервера.

Для систем Linux, на которых MySQL установлен, используя пакеты RPM, запуск сервера и завершение работы, управляется systemd, и mysqld_safe не установлен. Если Вы устанавливали MySQL на системе Linux, используя пакеты RPM, используйте systemd для запуска сервера и завершения работы вместо методов, используемых в следующих инструкциях. См. раздел 2.5.9.

Выполните оперативное обновление:

  1. Рассмотрите изменения, описанные в разделе 2.10.1.1.

  2. С Вашим MySQL 5.7 сервером, если там зашифрованы табличные пространства InnoDB выполните ротацию главного ключа, выполняя этот запрос:
    ALTER INSTANCE ROTATE INNODB MASTER KEY;
    
  3. Сконфигурируйте свой MySQL 5.7 сервер, чтобы выполнить медленное завершение работы, выполняя это:
    SET GLOBAL innodb_fast_shutdown = 0;
    

    С медленным завершением работы InnoDB выполняет полную чистку и буферное слияние изменений перед закрытием, которое гарантирует, что журналы отмены пусты, и файлы с данными полностью подготовлены в случае различий в формате файла между выпусками.

  4. Закройте старый сервер MySQL. Например:
    mysqladmin -u root -p shutdown
    
  5. Обновите пакеты (замените старые новыми для MySQL 8.0).

    Для поддержанных дистрибутивов Linux лучший метод для того, чтобы заменить пакеты MySQL, это использовать репозитарии программного обеспечения MySQL, см. раздел 2.10.1.2, раздел 2.10.1.3 или Upgrading MySQL with the MySQL SLES Repository.

  6. Запустите MySQL 8.0, используя существующий каталог данных. Например:

    mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
    

    Если там зашифрованы табличные пространства InnoDB, используйте опцию --early-plugin-load, чтобы загрузить плагин.

    Сервер автоматически обнаруживает, присутствуют ли таблицы словаря данных. В противном случае сервер создает их в каталоге данных, заполняет их метаданными и затем возобновляет его нормальную последовательность запуска. Во время этого процесса сервер обновляет метаданные для всех объектов базы данных, включая базы данных, табличные пространства, систему и пользовательские таблицы, представления и сохраненные программы (хранимые процедуры и функции, триггеры и события планировщика событий). Сервер также удаляет файлы, которые ранее использовались для хранения метаданных. Например, после обновления, Вы заметите, что Ваши таблицы больше не имеют файлов .frm.

    Если этот шаг прошел нормально, сервер выполняет уборку:

    Если этот шаг терпит неудачу, сервер возвращает все изменения каталога данных. В этом случае Вы должны удалить все файлы системного журнала redo, запустить MySQL 5.7 на том же самом каталоге данных и установить причину любых ошибок. Тогда выполните другое медленное завершение работы сервера 5.7 и запустите MySQL 8.0, чтобы попробовать еще раз.

  7. Если MySQL 8.0 запускается успешно, выполните mysql_upgrade :
    mysql_upgrade -u root -p
    

    mysql_upgrade исследует все таблицы во всех базах данных для несовместимостей с текущей версией MySQL. Это делает любые остающиеся изменения, требуемые в системной базе данных mysql между MySQL 5.7 и MySQL 8.0 так, чтобы Вы могли использовать в своих интересах новые привилегии или функции. mysql_upgrade также создает Performance Schema, INFORMATION_SCHEMA и объекты схемы sys, современные для MySQL 8.0.

    mysql_upgrade не должен использоваться, когда сервер работает с --gtid-mode=ON . См. " Режим GTID и mysql_upgrade".

    mysql_upgrade не обновляет содержание таблиц справки. Для инструкций обновления см. раздел 6.1.10.

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

    mysqladmin -u root -p shutdown
    mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
    

    Когда в первый раз Вы запустили MySQL 8.0 Вы, возможно, заметили, что он написал несколько сообщений в свой журнал ошибок относительно необновленных таблиц. Если mysql_upgrade был выполнен успешно, не должно быть таких сообщений второй раз, когда Вы запускаете сервер.

Выполнение логического обновления

Этот раздел описывает, как выполнить логическое обновление.

Для систем Linux, на которых MySQL установлен, используя пакеты RPM, запуск сервера и завершение работы управляются systemd, и mysqld_safe не установлен. Если Вы устанавливали MySQL на системе Linux, используя пакеты RPM, используйте systemd для запуска сервера и завершения работы вместо методов, используемых в следующих инструкциях. См. раздел 2.5.9.

Выполните логическое обновление:

  1. Изучите изменения, описанные в разделе 2.10.1.1.

  2. На сервере MySQL 5.7 используйте mysqldump, чтобы экспортировать Ваши данные:
    mysqldump -u root -p --add-drop-table --routines --events --all-databases
              --ignore-table=mysql.innodb_table_stats
              --ignore-table=mysql.innodb_index_stats
              --force > data-for-upgrade.sql
    

    Опции --routines и --events должны быть даны явно, чтобы включать сохраненные подпрограммы и события как определения объекта в файле дампа. Иначе, они появятся только как строки в таблицах mysql.proc и mysql.event, которые не будут использоваться в MySQL 8.0, когда файл дампа будет перезагружен (определения для соответствующих объектов, будут сохранены в таблицах словаря данных вместо этого).

    Вы можете опустить опцию --ignore-table , файл дампа перезагрузится позже, если Вы будете включать опцию --force в команду загрузки. Однако, в этом случае, будьте готовы видеть несколько предупреждений, когда те две таблицы загружаются, предупреждения нужно проигнорировать.

  3. Закройте старый сервер MySQL. Например:
    mysqladmin -u root -p shutdown
    
  4. Установите MySQL 8.0. Для инструкций по установке см. главу 2.
  5. Инициализируйте новый каталог данных, как описано в разделе 2.9.1. Например:
    mysqld --initialize --datadir=/path/to/8.0-datadir
    

    Скопируйте временный пароль для 'root'@'localhost', выведенный на Ваш экран или написанный в Ваш журнал ошибок для более позднего использования.

  6. Запустите MySQL 8.0, используя новый каталог данных. Например:
    mysqld_safe --user=mysql --datadir=/path/to/8.0-datadir
    

    Если там зашифрованы табличные пространства InnoDB, используйте опцию --early-plugin-load, чтобы загрузить плагин.

  7. Сбросьте временный root пароль:
    shell> mysql -u root -p
    Enter password: ****<- enter temporary root password
    mysql> ALTER USER USER() IDENTIFIED BY 'your new password';
    
  8. Загрузите ранее созданный файл дампа в новый сервер MySQL. Например:
    mysql -u root -p --force < data-for-upgrade.sql
    

    Если Вы не определяли опцию --ignore-table , чтобы подавить дамп таблиц mysql.event и mysql.proc для команды mysqldump, они вновь появятся, когда Вы перезагрузите файл дампа.

  9. После загрузки файла дампа, выполните mysql_upgrade :
    mysql_upgrade -u root -p
    

    mysql_upgrade исследует все таблицы во всех базах данных для несовместимостей с текущей версией MySQL. Это делает любые остающиеся изменения, требуемые в системной базе данных mysql между MySQL 5.7 и MySQL 8.0 так, чтобы Вы могли использовать новые привилегии или возможности. mysql_upgrade также создает Performance Schema, INFORMATION_SCHEMA и объекты схемы sys, современные для MySQL 8.0.

    mysql_upgrade не должен использоваться, когда сервер работает с --gtid-mode=ON. См. " Режим GTID и mysql_upgrade".

    mysql_upgrade не обновляет содержание таблиц справки. Для инструкций обновления см. раздел 6.1.10.

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

    mysqladmin -u root -p shutdown
    mysqld_safe --user=mysql --datadir=/path/to/8.0-datadir
    

Поиск неисправностей обновления

2.10.1.1. Изменения, затрагивающие обновления до MySQL 8.0

Прежде, чем обновить до MySQL 8.0, рассмотрите изменения, описанные в этом разделе, чтобы идентифицировать проблемы обновления, которые относятся к Вашей текущей установке MySQL и приложениям.

В дополнение к изменениям, обрисованным в общих чертах в этом разделе, рассмотрите Release Notes.

Изменения, отмеченные как Known issue или Incompatible change являются несовместимостями с более ранними версиями MySQL, и могут потребовать Вашего внимания прежде, чем Вы обновитесь. Наша цель состоит в том, чтобы избежать этих изменений, но иногда они необходимы, чтобы исправить проблемы, которые были бы хуже, чем несовместимость между выпусками. Если какая-либо проблема обновления, применимая к Вашей установке, вовлекает несовместимость, которая требует специальной обработки, следуйте инструкциям, данным в описании несовместимости. Иногда это вовлекает дамп и перезагрузку таблиц или использование CHECK TABLE или REPAIR TABLE.

Для дампа и инструкций перезагрузки см. раздел 2.10.4. Любая процедура, которая вовлекает REPAIR TABLE с опцией USE_FRM должна быть сделана перед обновлением. Использование этого запроса с версией MySQL, отличающейся от той, с которой создавалась таблица (то есть, используя это после обновления) может повредить таблицу. См. раздел 14.7.2.5.

Изменения словаря данных

Incompatible change: MySQL Server 8.0 включает глобальный словарь данных, содержащий информацию об объектах базы данных в транзакционных таблицах. В предыдущей серии MySQL данные о словаре хранились в метафайлах с данными и нетранзакционных системных таблицах. В результате процедура обновления несколько отличается от предыдущего выпуска MySQL и требует, чтобы Вы проверили готовность обновления своей установки, проверяя определенные предпосылки. Для получения дополнительной информации см. здесь. Данные, включенные в словарь сервера, влекут за собой некоторые общие операционные различия, см. раздел 15.6.

Изменения конфигурации
Изменения InnoDB
Изменения в SQL

2.10.1.2. Обновление MySQL с репозитарием MySQL Yum

Для поддержанных платформ (см. раздел 2.5.1) Вы можете выполнить оперативное обновление для MySQL (то есть, заменяя старую версию и затем выполняя новую версию от старых файлов с данными) с репозитарием MySQL Yum.

  1. Выбор целевого ряда

    По умолчанию репозитарий MySQL Yum обновляет MySQL к последней версии в ряду выпуска, который Вы выбрали во время установки, что означает, например, 5.7.x, установка НЕ будет обновлена к выпуску 8.0.x автоматически. Чтобы обновить к другому ряду выпуска, Вы должны сначала отключить подрепозитарий для ряда, который был выбран и включить подрепозитарий для Вашего целевого ряда. Чтобы сделать это, см. общие инструкции, данные здесь. Для того, чтобы обновить от MySQL 5.7 к 8.0, выполните наоборот шаги, иллюстрированные здесь.

    Как правило, чтобы обновить от одного ряда выпуска до другого, пойдите в следующую серию вместо того, чтобы пропустить ряд. Например, если Вы в настоящее время выполняете MySQL 5.6 и хотите обновить до 8.0, обновите до MySQL 5.7 прежде, чем обновить до 8.0.

    Для важной информации об обновлении от MySQL 5.7 к 8.0 см. Upgrading from MySQL 5.7 to 8.0.

  2. Обновление MySQL

    Обновите MySQL и его компоненты следующей командой, для платформ, которые не dnf:

    sudo yum update mysql-server
    

    Для платформ dnf:

    sudo dnf upgrade mysql-server
    

    Альтернативно, Вы можете обновить MySQL, говоря Yum обновить все на Вашей системе, что могло бы занять значительно больше времени, для платформ, которые не dnf:

    sudo yum update
    

    Для dnf-систем:

    sudo dnf upgrade
    
  3. Перезапуск MySQL

    Сервер MySQL всегда перезапускается после обновления Yum. Как только сервер перезапускается, выполните mysql_upgrade , чтобы проверить и возможно решить любые несовместимости между старыми данными и обновленным программным обеспечением. mysql_upgrade также выполняет другие функции, см. подробности в разделе 5.4.5.

Вы можете также обновить только определенный компонент. Используйте следующую команду, чтобы перечислить все установленные пакеты для компонентов MySQL (для dnf-систем, замените yum на dnf):

sudo yum list installed | grep "^mysql"

После идентификации названия пакета компонента Вашего выбора, для платформ, которые не dnf-совместимы, обновите пакет следующей командой, заменяя package-name названием пакета:

sudo yum update package-name

Для dnf-систем:

sudo dnf upgrade package-name
Обновление совместно используемых библиотек клиента

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

Если Вы повторно собираете приложения и динамически компонуете их с обновленными библиотеками: с новыми версиями совместно используемых библиотек, где есть различия или дополнения в символе версии между новыми и старыми библиотеками (например, между более новыми стандартными совместно используемыми библиотеками клиента 8.0 и некоторыми старыми или из других источников), пользование любыми обновленными приложениями потребует обновленных библиотек в системах, где приложения развернуты. Так что надлежит убедиться, что развернули пакеты для совместно используемых библиотек MySQL на тех системах. Вы можете сделать это, добавляя репозитарий MySQL Yum к системам (см. "Добавление репозитария MySQL Yum") и установить последние совместно используемые библиотеки, используя инструкции, данные здесь.

2.10.1.3. Обновление MySQL с MySQL APT Repository

В Debian 7 или 8 и Ubuntu 12, 14 или 15 Вы можете выполнить оперативное обновление MySQL и его компонентов с помощью MySQL APT. См. Upgrading MySQL with the MySQL APT Repository в A Quick Guide to Using the MySQL APT Repository.

2.10.2. Откат MySQL

Этот раздел описывает, как откатиться к более старой версии MySQL.

В следующем обсуждении команды MySQL, которые должны быть выполнены, используя учетную запись MySQL с административными привилегиями, включают опцию -u root в командной строке, чтобы определить пользователя MySQL root. Команды, которые требуют пароля для root, также включают опцию -p. Так как -p не сопровождается никаким значением опции, пароль будет запрошен по мере надобности явно.

Запросы SQL могут быть выполнены, используя клиент mysql (соединитесь как root, чтобы гарантировать, что у Вас есть необходимые привилегии).

Поддержанные методы

Поддержанные методы включают:

Поддержанные пути

Если иначе не сказано, следующие пути поддержаны:

Следующие условия относятся ко всем путям:

Прежде, чем Вы начнете

Перед откатом рекомендуются следующие шаги:

Выполнение оперативного отката

Оперативные откаты поддержаны для переходов между выпусками состояния GA в пределах того же самого ряда выпуска.

Для поддержанного пути в пределах MySQL 8.0 рядов выпуска должно быть по крайней мере две доступных версии MySQL 8.0 состояния GA.

Для систем Linux, на которых MySQL установлен, используя пакеты RPM, запуск сервера и завершение работы управляется systemd, и mysqld_safe не установлен. Если Вы устанавливали MySQL на системе Linux, используя пакеты RPM, используйте systemd для запуска сервера и завершения работы вместо методов, используемых в следующих инструкциях. См. раздел 2.5.9.

Выполнить оперативный откат:

  1. Изучите изменения, описанные разделе 2.10.2.1 для понимания шагов, которые будут выполнены перед понижением версии.

  2. Сконфигурируйте MySQL, чтобы выполнить медленное завершение работы, устанавливая innodb_fast_shutdown в 0. Например:
    mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
    

    С медленным завершением работы InnoDB выполняет полную чистку и буферное слияние изменений перед закрытием, которое гарантирует, что файлы с данными полностью подготовлены в случае различий в формате файла между выпусками.

  3. Закройте более новый сервер MySQL. Например:
    mysqladmin -u root -p shutdown
    
  4. После медленного завершения работы, удалите файлы системного журнала InnoDB redo (файлы ib_logfile*) из каталога data, чтобы избежать проблем отката, связанных с тем, что файл системного журнала внесет изменения, которые, возможно, произошли между выпусками.
    rm ib_logfile*
    
  5. Замените двоичные файлы MySQL старыми.
  6. Запустите более старый сервер MySQL, используя существующий каталог данных. Например:
    mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
    
  7. Запустите mysql_upgrade. Например:
    mysql_upgrade -u root -p
    

    mysql_upgrade исследует все таблицы во всех базах данных для несовместимостей с текущей версией MySQL, и пытается восстановить таблицы, если проблемы найдены.

  8. Закройте и перезапустите сервер MySQL, чтобы гарантировать, что любые изменения, произведенные в системных таблицах, вступают в силу. Например:
    mysqladmin -u root -p shutdown
    mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
    

Выполнение логического отката

Логические откаты поддержаны между выпусками в пределах того же самого ряда выпуска и для возврата к предыдущему уровню выпуска. Только переходы между выпусками состояния GA поддержаны.

Для систем Linux, на которых MySQL установлен, используя пакеты RPM, запуск сервера и завершение работы управляется systemd, и mysqld_safe не установлен. Если Вы устанавливали MySQL на системе Linux, используя пакеты RPM, используйте systemd для запуска сервера и завершения работы вместо методов, используемых в следующих инструкциях. См. раздел 2.5.9.

Выполните логический откат:

  1. Рассмотрите изменения, описанные в разделе 2.10.2.1 для понимания шагов, которые будут выполнены перед понижением версии.

  2. Сделайте дамп всех баз данных. Например:
    mysqldump -u root -p --add-drop-table --routines --events
              --all-databases --force > data-for-downgrade.sql
    
  3. Закройте более новый сервер MySQL. Например:
    mysqladmin -u root -p shutdown
    
  4. Инициализируйте более старый экземпляр MySQL с новым каталогом данных. Например:
    mysqld --initialize --user=mysql
    
  5. Запустите более старый сервер MySQL, используя новый каталог данных. Например:
    mysqld_safe --user=mysql --datadir=/path/to/new-datadir
    
  6. Загрузите файл дампа в более старый сервер MySQL. Например:
    mysql -u root -p --force < data-for-upgrade.sql
    
  7. Выполните mysql_upgrade, например:
    mysql_upgrade -u root -p
    

    mysql_upgrade исследует все таблицы во всех базах данных для выявления несовместимостей с текущей версией MySQL и пытается восстановить таблицы, если проблемы найдены.

  8. Перезапустите сервер MySQL, чтобы гарантировать, что любые изменения, произведенные в системных таблицах, вступают в силу. Например:
    mysqladmin -u root -p shutdown
    mysqld_safe --user=mysql --datadir=/path/to/new-datadir
    

Проблемы

Если Вы понижаете от одного ряда выпуска до другого, в табличных форматах хранения могут быть несовместимости. В этом случае используйте mysqldump, чтобы вывести Ваши таблицы в дамп перед понижением. После понижения перезагрузите файл дампа, используя mysql или mysqlimport , чтобы обновить Ваши таблицы. Для примеров см. раздел 2.10.5.

Типичный признак нисходящего несовместимого изменения формата таблицы: Вы не можете открыть таблицы. В этом случае используйте следующую процедуру:

  1. Остановите более старый сервер MySQL, к которому Вы понижаете версию.

  2. Перезапустите более новый сервер MySQL, от которого Вы понижаете версию.
  3. Выведите в дамп любые таблицы, которые были недоступны более старому серверу при использовании mysqldump.
  4. Остановите более новый сервер MySQL и перезапустите более старый.
  5. Перезагрузите файл дампа в более старый сервер. Ваши таблицы должны быть доступными.

2.10.2.1. Изменения, затрагивающие откат от MySQL 8.0

Прежде, чем понизить версию от MySQL 8.0, рассмотрите изменения, описанные в этом разделе. Некоторые изменения могут потребовать действия прежде или после понижения версии.

InnoDB

2.10.3. Проверка, какие таблицы или индексы должны быть восстановлены

Двоичное обновление устанавливает одну версию MySQL по существующей версии, не выводя в дамп и не перезагружая таблицы:

  1. Остановите сервер для существующей версии, если он работает.

  2. Установите иную версию MySQL. Это обновление, если новая версия выше, чем оригинальная версия, откат, если версия ниже.
  3. Запустите сервер для новой версии.

Во многих случаях, таблицы от предыдущей версии MySQL могут использоваться без проблем новой версией. Однако, иногда изменения происходят, которые требуют восстановления таблиц или индексов. Если у Вас есть таблицы, которые затронуты любыми такими проблемами, восстановите таблицы или индексы по мере необходимости с использованием инструкций, данных в разделе 2.10.4.

Модификации обработки наборов символов или сопоставлений могли бы изменить символьный порядок сортировки, который вызывает упорядочивание записей в любом индексе, который использует затронутый набор символов или сопоставление. Такие изменения приводят к нескольким возможным проблемам:

Решение этих проблем состоит в том, чтобы восстановить любой индекс, использующий затронутый набор символов или сопоставление, удалить и обновить индекс или вывести в дамп и перезагрузить всю таблицу. В некоторых случаях возможно изменить затронутые столбцы, чтобы использовать иное сопоставление. Подробности о пересоздании индексов см. в indexes, see разделе 2.10.4.

Во многих случаях, Вы можете использовать CHECK TABLE ... FOR UPGRADE, чтобы идентифицировать таблицы, для которых требуется восстановление индексов. Это сообщит так:

Table upgrade required.
Please do "REPAIR TABLE `tbl_name`" or dump/reload to fix it!

В этих случаях Вы можете также использовать mysqlcheck --check-upgrade или mysql_upgrade, которые выполняют CHECK TABLE. Однако, использование CHECK TABLE применяется только после обновлений, но не откатов. Кроме того, CHECK TABLE неприменимо ко всем механизмам хранения. Для деталей о том, которые механизмы хранения понимают CHECK TABLE см. раздел 14.7.2.2.

2.10.4. Восстановление таблиц или индексов

Этот раздел описывает, как восстановить таблицу, после таких изменений MySQL как типы данных или наборы символов. Например, ошибка в сопоставлении, возможно, была исправлена, требуя, чтобы таблица восстановилась, чтобы обновить индексирование для символьных столбцов, которые используют сопоставление. Для примеров см. раздел 2.10.3. Вы, возможно, также должны были бы восстановить или обновить таблицу, обозначенную при выполнении CHECK TABLE, mysqlcheck или mysql_upgrade .

Методы для того, чтобы восстановить таблицу включают дамп и перезагрузку или использование ALTER TABLE или REPAIR TABLE. REPAIR TABLE относится только к таблицам типов MyISAM, ARCHIVE и CSV.

Если Вы восстанавливаете таблицы, потому что версия MySQL не будет обрабатывать их после двоичного (оперативного) обновления, Вы должны использовать метод дампа-и-перезагрузки. Выведите таблицы в дамп до обновления, с использованием Вашей оригинальной версии MySQL. Затем перезагрузите таблицы после обновления.

Если Вы используете метод дампа-и-перезагрузки восстановления таблиц только с целью восстановления индексов, Вы можете выполнить дамп прежде или после обновления. Перезагрузка все еще должна быть сделана позже.

Чтобы восстановить таблицу, выводя в дамп и перезагружая ее, используйте mysqldump для создания дампа и mysql , чтобы перезагрузить файл:

mysqldump db_name t1 > dump.sql
mysql db_name < dump.sql

Чтобы восстановить все таблицы в единственной базе данных, определите имя базы данных без любого имени таблицы:

mysqldump db_name > dump.sql
mysql db_name < dump.sql

Чтобы восстановить все таблицы во всех базах данных, используйте опцию --all-databases :

mysqldump --all-databases > dump.sql
mysql < dump.sql

Чтобы восстановить таблицу с ALTER TABLE, используйте изменение null, то есть, команда ALTER TABLE, которая преобразует таблицу, чтобы использовать механизм хранения, который уже используется. Например, если t1 таблица InnoDB, используйте этот запрос:

ALTER TABLE t1 ENGINE = InnoDB;

Если Вы не уверены, который механизм хранения определить в ALTER TABLE, надо использовать SHOW CREATE TABLE, чтобы вывести на экран табличное определение.

Если Вы должны восстановить таблицу InnoDB потому, что CHECK TABLE указывает, что табличное обновление требуется, используйте mysqldump для создания дампа и mysql , чтобы перезагрузить файл, как описано ранее. Если CHECK TABLE указывает, что есть повреждение, обратитесь к разделу 16.20.2 для информации об использовании опции innodb_force_recovery для перезапуска InnoDB. Чтобы понять тип проблемы, с которой столкнулся CHECK TABLE , надо обратиться к замечаниям по InnoDB в разделе 14.7.2.2.

Для MyISAM, ARCHIVE или CSV Вы можете использовать REPAIR TABLE , если проверка указывает, что есть повреждение или что обновление требуется. Например, чтобы восстановить таблицу MyISAM:

REPAIR TABLE t1;

mysqlcheck --repair обеспечивает доступ из командной строки к REPAIR TABLE. Это может быть более удобным средством, потому что Вы можете использовать опции --databases или --all-databases, чтобы восстановить все таблицы в определенных базах данных или во всех базах данных, соответственно:

mysqlcheck --repair --databases db_name ...
mysqlcheck --repair --all-databases

2.10.5. Копирование баз данных MySQL к другой машине

В случаях, когда Вы должны передать базы данных между различными архитектурами, Вы можете использовать mysqldump, чтобы создать файл, содержащий запросы SQL. Вы можете тогда передать файл другой машине и ввести его через клиент mysql.

Используйте mysqldump --help, чтобы видеть, какие опции доступны.

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

mysqladmin -h 'other_hostname' create db_name
mysqldump db_name | mysql -h 'other_hostname' db_name

Если Вы хотите скопировать базу данных с удаленной машины по медленной сети, Вы можете использовать эти команды:

mysqladmin create db_name
mysqldump -h 'other_hostname' --compress db_name | mysql db_name

Вы можете также сохранить дамп в файле, передать файл целевой машине и затем загрузить файл в базу данных там. Например, Вы можете вывести базу данных в сжатый файл на исходной машине:

mysqldump --quick db_name | gzip > db_name.gz

Передайте файл, содержащий содержание базы данных к целевой машине, и выполните эти команды:

mysqladmin create db_name
gunzip < db_name.gz | mysql db_name

Вы можете также использовать mysqldump и mysqlimport , чтобы передать базу данных. Для больших таблиц это намного быстрее, чем простое использование mysqldump. В следующих командах DUMPDIR представляет полный путь каталога, который Вы используете, чтобы сохранить вывод mysqldump .

Создайте каталог для выходных файлов и выведите в дамп базу данных:

mkdir DUMPDIR
mysqldump --tab=DUMPDIR db_name

Передайте файлы в каталоге DUMPDIR к некоторому соответствующему каталогу на целевой машине и загрузите файлы в MySQL там:

mysqladmin create db_name # create database
cat DUMPDIR/*.sql | mysql db_name # create tables in database
mysqlimport db_name DUMPDIR/*.txt # load data into tables

Не забывайте скопировать базу данных mysql, потому что это то место, где таблицы привилегий сохранены. Вам, возможно, придется выполнить команды как MySQL-пользователь root на новой машине, пока Вы не имеете базу данных mysql.

После того, как Вы импортируете базу данных mysql на новой машине, выполните mysqladmin flush-privileges, чтобы сервер перезагрузил информацию о таблице привилегий.

2.11. Замечания по установке Perl

Модуль Perl DBI обеспечивает интерфейс для доступа к базе данных. Вы можете написать скрипт DBI, который работает со многими различными механизмами базы данных без изменения. Используя DBI, Вы должны установить модуль DBI и модуль DataBase Driver (DBD) для каждого типа сервера базы данных, к которому Вы хотите получить доступ. Для MySQL это модуль DBD::mysql.

Поддержка Perl не включена в дистрибутивы MySQL. Вы можете получить необходимые модули из http://search.cpan.org для Unix или применяя программу ActiveState ppm в Windows.

Интерфейс DBI/DBD требует Perl 5.6.0 и 5.6.1 или позже. DBI не работает, если у Вас есть более старая версия Perl. Вы должны использовать DBD::mysql 4.009 или выше. Хотя более ранние версии доступны, они не поддерживают полную функциональность MySQL 8.0.

2.11.1. Установка Perl в Unix

Поддержка Perl MySQL требует, чтобы Вы установили клиента MySQL, поддержку разработки (библиотеки и заголовочные файлы). Большинство методов установки устанавливает необходимые файлы. Если Вы устанавливаете MySQL из файлов RPM в Linux, убедитесь, что также установили RPM разработчика. Программы клиента находятся в клиентском RPM, но поддержка разработки в RPM для разработчика.

Файлы, в которых Вы нуждаетесь для поддержки Perl, могут быть получены из (Comprehensive Perl Archive Network), http://search.cpan.org.

Самый легкий способ установить модули Perl на Unix состоит в том, чтобы использовать модуль CPAN:

shell> perl -MCPAN -e shell
cpan> install DBI
cpan> install DBD::mysql

Установка DBD::mysql выполняет много тестов. Эти тесты пытаются соединиться с местным сервером MySQL, используя имя пользователя по умолчанию и пароль. Имя пользователя значения по умолчанию это Ваше имя для входа в систему на Unix или ODBC в Windows. Пароля по умолчанию нет. Если Вы не можете соединиться с сервером с этими значениями (например, если у Вашей учетной записи есть пароль), тесты терпят неудачу. Вы можете использовать force install DBD::mysql, чтобы проигнорировать неудачные тесты.

DBI требует модуль Data::Dumper. Это может быть уже установлено, в противном случае Вы должны установить его перед установкой DBI.

Также возможно загрузить дистрибутив модуля в форме сжатых архивов tar и создать модули вручную. Например, чтобы распаковать и создать дистрибутив DBI, используйте такую процедуру:

  1. Распакуйте дистрибутив в текущий каталог:

    shell> gunzip < DBI-VERSION.tar.gz | tar xvf -
    

    Эта команда создает каталог DBI-VERSION.

  2. Перейдите в верхний каталог распакованного дистрибутива:
    shell> cd DBI-VERSION
    
  3. Создайте дистрибутив и соберите все:
    shell> perl Makefile.PL
    shell> make
    shell> make test
    shell> make install
    

Команда make test важна, потому что она проверяет, что модуль работает. Отметьте что, когда Вы выполняете эту команду во время установки DBD::mysql, чтобы проверить код интерфейса, сервер MySQL должен работать, или тест терпит неудачу.

Хорошая идея собрать и повторно установить DBD::mysql всякий раз, когда Вы устанавливаете новый выпуск MySQL. Это гарантирует, что последние версии библиотек клиента MySQL установлены правильно.

Если у Вас нет прав доступа, чтобы установить модули Perl в системном каталоге или если Вы хотите установить модули Perl локально, следующая ссылка может быть полезной: http://learn.perl.org/faq/perlfaq8.html#How-do-I-keep-my-own-module-library-directory-.

2.11.2. Установка ActiveState Perl в Windows

В Windows Вы должны сделать следующее, чтобы установить MySQL модуль DBD с ActiveState Perl:

  1. Скачать ActiveState Perl с http://www.activestate.com/Products/ActivePerl/ и поставить его.

  2. Открыть окно консоли.
  3. В случае необходимости установите переменную If necessary, set the HTTP_proxy. Например, Вы могли бы попробовать такую установку:
    C:\> set HTTP_proxy=my.proxy.com:3128
    
  4. Запустить программу PPM:
    C:\> C:\perl\bin\ppm.pl
    
  5. Если Вы ранее не сделали этого, поставьте DBI:
    ppm> install DBI
    
  6. Если это получилось, выполните следующую команду:
    ppm> install DBD-mysql
    

Эта процедура должна работать с ActiveState Perl 5.6 или выше.

Если Вы не можете заставить процедуру работать, Вы должны установить драйвер ODBC вместо этого и соединиться с сервером MySQL через ODBC:

use DBI;
$dbh= DBI->connect("DBI:ODBC:$dsn",$user,$password) ||
die "Got error $DBI::errstr when connecting to $dsn\n";

2.11.3. Проблемы при использовании интерфейса Perl DBI/DBD

Если Perl сообщает, что не может найти модуль ../mysql/mysql.so, проблема состоит, вероятно в том, что Perl не может определить местонахождение совместно используемой библиотеки libmysqlclient.so. Вы должны быть в состоянии решить эту проблему одним из следующих методов:

Отметьте, что Вы, возможно, также должны изменить опцию -L, если есть другие библиотеки, которые компоновщик не в состоянии найти. Например, если компоновщик не может найти libc потому что это находится в /lib и команда компоновки определяет -L/usr/lib, измените опцию -L на -L/lib или добавьте -L/lib к существующей команде компоновки.

Если Вы получаете следующие ошибки от DBD::mysql, Вы, вероятно, используете gcc (или используете старый исполняемый модуль, собранный gcc):

/usr/bin/perl: can't resolve symbol '__moddi3'
/usr/bin/perl: can't resolve symbol '__divdi3'

Добавьте -L/usr/lib/gcc-lib/... -lgcc в команду компоновки, когда библиотека mysql.so создана (проверьте вывод make для mysql.so, когда Вы собираете клиент Perl). Опция -L должна определить путь к каталогу, где находится libgcc.a.

Другая причина этой проблемы может состоять в том, что Perl и MySQL оба не собраны gcc. В этом случае, Вы можете решить несоответствие, собирая обоих с помощью gcc.