Эта глава описывает, как получить и установить MySQL. Более поздние разделы обеспечивают детали. Если Вы планируете обновить существующую версию MySQL к более новой версии, а не установить MySQL впервые, см. раздел 2.10.1.
Если Вы интересуетесь переходом к MySQL от другой системы базы данных, см. раздел A.8, который содержит ответы на некоторые общие вопросы относительно проблем перехода.
Установка MySQL вообще следует за шагами, обрисованными в общих чертах здесь:
Определите, работает ли MySQL и поддержан на Вашей платформе.
Пожалуйста, отметьте, что не все платформы являются одинаково подходящими для того, чтобы выполнить MySQL, и что не все платформы, на которых MySQL, как известно, работает, официально поддержаны Oracle Corporation. Для информации о тех платформах, которые официально поддержаны, см. http://www.mysql.com/support/supportedplatforms/database.html .
Несколько версий MySQL доступны, и большинство доступно в нескольких форматах. Вы можете выбрать из предварительно упакованных, содержащих предварительно собранные программы или исходный код. Когда в сомнении, используйте двоичный дистрибутив. Oracle также обеспечивает доступ к исходному коду MySQL для тех, кто хочет видеть недавние события и проверить новый код. Чтобы определить, какую версию и тип Вы должны использовать, см. раздел 2.1.1.
Для инструкций см. раздел 2.1.2. Чтобы проверить целостность, используйте инструкции в разделе 2.1.3.
Чтобы установить MySQL из двоичного дистрибутива, используйте инструкции в разделе 2.2.
Чтобы установить MySQL из исходного дистрибутива или текущего исходного дерева развития, используйте инструкции в разделе 2.8.
После установки MySQL см. раздел
2.9 для информации об удостоверении, что сервер MySQL работает должным
образом. Также обратитесь к информации, предоставленной в
разделе 2.9.4.
Этот раздел описывает, как обеспечить начальную учетную запись пользователя
MySQL root
у которой нет никакого пароля,
пока Вы не назначите его.
Инструкции для того, чтобы установить MySQL на различных платформах и окружающих средах доступны:
Unix, Linux, FreeBSD
Для инструкций по установке MySQL на большинстве платформ Linux и Unix,
используя двоичный дистрибутив (например, .tar.gz
), см.
раздел 2.2.
Для информации о создании MySQL полностью из дистрибутивов исходного кода или репозитариев исходного кода см. раздел 2.8.
Для определенной справки о платформе см. соответствующий раздел платформы:
Linux: раздел 2.5.
Microsoft Windows
Для инструкций по установке MySQL на Microsoft Windows, используя MySQL Installer или Zip-файл см. раздел 2.3.
Для информации об управлении экземплярами MySQL см. раздел 2.3.4.
Для деталей и инструкций по созданию MySQL из исходного кода с использованием Microsoft Visual Studio см. раздел 2.8.
Для установки на OS X, включая использование двоичного пакета и формата PKG см. раздел 2.4.
Для информации об использовании OS X Launch Daemon, чтобы автоматически запустить и остановить MySQL см. раздел 2.4.3.
Для информации о MySQL Preference Pane см. раздел 2.4.4.
Следующие разделы содержат информацию, необходимую, чтобы выбрать, загрузить и проверить Ваш дистрибутив. Инструкции в более поздних разделах главы описывают, как установить дистрибутив, который Вы выбираете. Для двоичных дистрибутивов см. инструкции в разделе 2.2 или соответствующем разделе для Вашей платформы при наличии. Чтобы создать MySQL из исходных текстов, используйте инструкции в разделе 2.8.
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. Числа в пределах имени выпуска интерпретируются следующим образом:
Первый номер (8) главный номер версии.
Имена выпуска могут также включать суффикс, чтобы указать на уровень стабильности выпуска. Выпуски в пределах ряда прогрессируют через ряд суффиксов, чтобы указать, как уровень стабильности улучшается. Возможные суффиксы:
dmr указывает на выпуск развития (DMR). Развитие MySQL использует модель меток, в которой каждая метка вводит маленькое подмножество полностью проверенных особенностей. От одной метки до следующих особенности могут измениться или даже быть удалены, основываясь на обратной связи, обеспеченной членами сообщества, которые пробуют эти выпуски. Особенности в пределах выпусков, имеют качество подготовки производства.
Развитие в пределах ряда начинается с выпусков DMR, сопровождаемых RC, и наконец достигает выпусков состояния GA.
После выбора, которую версию MySQL установить, решите, который формат дистрибутива установить для Вашей операционной системы. Для большинства случаев использования подходит двоичный дистрибутив. Двоичные дистрибутивы доступны в родном формате для многих платформ, как пакеты RPM для Linux или DMG для OS X. Дистрибутивы также доступны в большем количестве форматов, таких как архивы Zip или сжатые файлы tar. В Windows Вы можете использовать MySQL Installer, чтобы установить двоичный дистрибутив.
При некоторых обстоятельствах может быть предпочтительно установить MySQL из исходного дистрибутива:
Вы хотите установить MySQL в некотором явном местоположении. Стандартные двоичные дистрибутивы готовы работать в любом местоположении установки, но Вы могли бы потребовать больше гибкости в размещении компонентов MySQL, где Вы хотите.
-DWITH_LIBWRAP=1
для поддержки TCP wrappers.
-DWITH_ZLIB={system|bundled}
для особенностей, которые
зависят от сжатия.-DWITH_DEBUG=1
для того, чтобы отладить.Для дополнительной информации см. раздел 2.8.4.
Проверьте нашу страницу загрузок 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.
После загрузки пакета MySQL, который удовлетворяет Вашим потребностям прежде, чем попытаться установить его, удостоверьтесь, что он не поврежден. Есть три средства проверки целостности:
Контрольные суммы MD5.
GnuPG
, GNU Privacy Guard.Следующие разделы описывают, как использовать эти методы.
Если Вы замечаете, что контрольная сумма MD5 или подпись GPG не соответствуют, сначала попытайтесь загрузить соответствующий пакет еще раз, возможно, с другого зеркала сайта.
После того, как Вы загрузили пакет 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
), а не файлов, которые содержатся в архиве. Другими
словами, проверьте файл прежде, чем извлечь его содержание.
Другой метод подтверждения целостности и подлинности пакета должен использовать цифровые подписи. Это более надежно, чем использование контрольных сумм 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: no ultimately trusted keys found: Это означает, что определенному ключу "в конечном счете не доверяете " Вы или Ваша сеть доверия, что допустимо в целях проверки подписи файла.
См. документацию GPG для получения дополнительной информации о том, как работать с открытыми ключами.
Раздел 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
.
Для пакетов 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.
Типы установки отличаются для различных типов дистрибутива (например, родные пакеты, бинарные файлы и исходные тексты), что может привести к беспорядку, управляя различными системами или используя различные источники установки. Отдельные разметки даны в соответствующем типе установки или платформе, как описано после.
В некоторых случаях, компилятор, используемый, чтобы создать MySQL, затрагивает особенности, доступные для использования. Примечания в этом разделе касаются двоичных дистрибутивов, обеспеченных Oracle Corporation или того, что Вы собираете из исходных текстов.
icc (Intel C++ Compiler) Builds
У сервера, созданного с icc есть эти характеристики:
Поддержка SSL не включена.
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 |
man | Unix 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 -sfull-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.
Если у Вашей системы нет пользователя и группы, чтобы использовать для
того, чтобы выполнить 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.
Есть несколько различных методов, чтобы установить MySQL на Microsoft Windows.
Самый простой и рекомендуемый метод это загрузить установщик MySQL для Windows и позволить ему устанавливать и конфигурировать все продукты MySQL на Вашей системе:
Загрузите MySQL Installer с http://dev.mysql.com/downloads/installer/ и выполните его.
В отличие от стандартного установщика MySQL, меньшая версия "web-community" не связывает приложений MySQL, но загрузит продукты MySQL, которые Вы хотите устанавливать.
Выберите соответствующий Setup Type для своей системы. Как правило Вы выберете Developer Default, чтобы установить сервер MySQL и другие инструменты MySQL, связанные с развитием MySQL, а также полезные инструменты, такие как MySQL Workbench. Или выберите Custom, чтобы вручную выбрать желаемые продукты MySQL.
Много версий сервера MySQL могут существовать на единственной системе. Вы можете выбрать одну или много версий.
Завершите процесс установки, следуя инструкциям мастера MySQL Install. Это установит несколько продуктов MySQL и запустит сервер 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, используя ODBC, у Вас должен быть драйвер Connector/ODBC. Для получения дополнительной информации, включая установку и инструкции конфигурации см. MySQL Connector/ODBC Developer Guide.
MySQL Installer установит и сконфигурирует Connector/ODBC для Вас.
Чтобы использовать сервер MySQL с приложениями .NET, у Вас должен быть драйвер Connector/Net. Для получения дополнительной информации, включая установку и инструкции конфигурации см. MySQL Connector/Net Developer Guide.
MySQL Installer установит и сконфигурирует Connector/NET для Вас.
Дистрибутивы 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 Installer включает сервер MySQL и дополнительные продукты MySQL, включая инструментальные средства MySQL Workbench, MySQL Notifier и MySQL для Excel. Установщик MySQL может также использоваться, чтобы обновить эти продукты в будущем.
Для инструкций по установке с применением MySQL Installer см. раздел 2.3.3.
Для инструкций по установке MySQL, используя файл Zip см. раздел 2.3.5.
Для инструкций по созданию MySQL из исходных текстов на Windows см. раздел 2.8.
Проблемы MySQL в Windows:
Большая табличная поддержка
Если Вы нуждаетесь в таблицах с размером больше 4GB,
устанавливайте MySQL на NTFS или более новой файловой системе. Не забывайте
использовать MAX_ROWS
и AVG_ROW_LENGTH
,
когда Вы составляете таблицы. См.
раздел 14.1.15.
Программное обеспечение поиска вирусов, такое как Norton/Symantec Anti-Virus на каталогах, содержащих данные MySQL и временные таблицы, может вызвать проблемы с точки зрения результата MySQL и с точки зрения программного обеспечения поиска вирусов, не распознающего содержание файлов. Это происходит из-за механизма снятия отпечатков, используемого программным обеспечением поиска вирусов, и путем, которым MySQL быстро обновляет различные файлы, которые могут быть идентифицированы как потенциальная угроза безопасности.
После установки MySQL Server рекомендуется, чтобы Вы отключили поиск
вирусов на основном каталоге
(datadir
),
используемом, чтобы хранить Ваши табличные данные MySQL. Обычно есть система,
встроенная в программное обеспечение поиска вирусов, чтобы позволить
определенным каталогам быть проигнорированными.
Кроме того, по умолчанию, MySQL создает временные файлы в стандартном
временном каталоге Windows. Сконфигурируйте отдельный временный каталог для
временных файлов MySQL и добавьте этот каталог к списку исключения поиска
вирусов. Чтобы сделать это, добавьте параметр конфигурации
tmpdir
к Вашему конфигурационному файлу my.ini
.
Для получения дополнительной информации см.
раздел 2.3.5.2.
Для 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.
Для MySQL 8.0 есть много форматов пакета установки MySQL в Windows.
Program Database (PDB) (с расширением имени файла pdb
)
предоставляют информацию для того, чтобы отладить Вашу установку MySQL в
случае проблемы. Эти файлы включены в дистрибутив ZIP Archive (но не MSI).
MySQL Installer:
у этого пакета есть имя файла, подобное
mysql-installer-community-8.0.1.0.msi
или
mysql-installer-commercial-8.0.1.0.msi
, он
использует MSI, чтобы автоматически установить сервер MySQL и другие
продукты. Это загрузит и применит обновления для каждого из установленных
продуктов. Это также конфигурирует дополнительные продукты.
Установленные продукты конфигурируемы, это включает: документация с образцами и примерами, соединители (такие, как C, C++, J, NET и ODBC), MySQL Workbench, MySQL Notifier, MySQL for Excel, и MySQL Server с его компонентами.
MySQL Installer не включает компоненты для отладки (включая файлы PDB).
Они доступны в отдельном архиве Zip
mysql-
для
64-bit и VERSION
-winx64-debug-test.zipmysql-
для 32-bit.VERSION
-win32-debug-test.zip
MySQL Installer воздействует на поддержанные версии всего MySQL Windows (см. http://www.mysql.com/support/supportedplatforms/database.html ).
Поскольку MySQL Installer не родной компонент Microsoft Windows и зависит от .NET, это не будет работать с минимальными опциями установки как "Server Core" Windows Server 2008.
Для инструкций по установке с применением MySQL Installer см. раздел 2.3.3.
Архивы noinstall разделены на два отдельных файла Zip. Основной пакет
называют mysql-
для 64-bit и VERSION
-winx64.zipmysql-
для 32-bit. Это содержит компоненты, которые должен был использовать MySQL на
Вашей системе. Дополнительный испытательный набор MySQL, эталонный набор
MySQL и компоненты отладочного набора (включая файлы PDB) находятся в
отдельном файле Zip с именем
VERSION
-win32.zipmysql-
для
64-bit и VERSION
-winx64-debug-test.zipmysql-
для 32-bit.VERSION
-win32-debug-test.zip
MySQL Installer рекомендуется для большинства пользователей.
Ваш выбор пакета установки затрагивает процесс установки, за которым Вы должны следовать. Если Вы хотите использовать MySQL Installer, см. раздел 2.3.3. Если Вы хотите устанавливать архив Noinstall, см. раздел 2.3.5.
MySQL Installer это приложение, которое управляет продуктами MySQL на Microsoft Windows. Это устанавливает, обновляет, удаляет и конфигурирует продукты MySQL, и остается в системе ее собственным приложением. MySQL Installer доступен только для Microsoft Windows и включает GUI и интерфейс командной строки.
Поддержанные продукты MySQL включают:
MySQL Server (одна или много версий в той же самой системе)
Full:
все продукты MySQL (включая сервер MySQL).
Размер файла составляет более чем 300 МБ, и у его имени есть форма
mysql-installer-community-
,
где VERSION
.N
.msiVERSION
версия MySQL Server, например, 5.7, а
N
число пакета, которое начинается с 0.
Web:
содержит только MySQL Installer и конфигурационные
файлы, загружает продукты MySQL, которые Вы хотите устанавливать. Размер
этого файла составляет приблизительно 2 МБ, у названия файла есть форма
mysql-installer-community-web
-VERSION
.N
.msi
,
где VERSION
версия MySQL Server, например, 5.7, а
N
число пакета, которое начинается с 0.Updates:
MySQL Installer
может обновить себя, таким образом, дополнительная загрузка не
требуется, чтобы обновить MySQL Installer.Community edition:
Загружаемый с
http://dev.mysql.com/downloads/installer/.
Это устанавливает выпуск сообщества всех продуктов MySQL.
Commercial edition:
Загружаемый с
My Oracle
Support (MOS) или
https://edelivery.oracle.com/. Это устанавливает коммерческую версию всех
продуктов MySQL, включая Workbench SE/EE, MySQL Enterprise Backup и MySQL
Enterprise Firewall. Это также объединяется с Вашей учетной записью MOS.
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 обрабатывает начальную конфигурацию. Например:
Это создает конфигурационный файл (my.ini
), который
используется, чтобы сконфигурировать сервер MySQL. Значения написаны в этот
файл под влиянием выбора, который Вы делаете во время процесса установки.
Некоторые определения зависят от хоста. Например, query_cache включен, если у узла есть меньше, чем три ядра.
Это может произвольно импортировать базы данных в качестве примера.
MysqlSys
с ограниченными привилегиями,
который выполняет MySQL Server.
Учетные записи пользователя могут также быть добавлены и сконфигурированы в MySQL Workbench.
MySQL Installer может произвольно проверить обновленные компоненты и загрузить их для Вас.
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, чтобы вручную выбрать продукты.
Developer: Установит все продукты, которые нужны, чтобы разработать приложения с MySQL. Это опция по умолчанию.
После начальной установки Вы можете использовать MySQL Installer, чтобы вручную выбрать продукты MySQL, чтобы установить или удалить. Другими словами, MySQL Installer становится системой управления MySQL.
Рис. 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 начинается с определения нескольких опций Type and Networking.
Рис. 2.11. MySQL Installer. Краткий обзор конфигурации
Тип конфигурации сервера
Выберите тип конфигурации сервера MySQL, который описывает Вашу установку. Эта установка определяет количество системных ресурсов (памяти), которые будут назначены на Ваш экземпляр сервера MySQL.
Developer: Машина, которая разместит много других приложений, как правило, это Ваша личная рабочая станция. Эта опция конфигурирует MySQL, чтобы использовать наименьшее количество памяти.
Связь
Опции связи управляют, как соединение с MySQL сделано. Опции включают:
TCP/IP: Вы можете включить TCP/IP здесь, поскольку иначе только localhost-соединения позволены. Также определите Port Number и открыть ли порт брандмауэра для сетевого доступа.
--enable-named-pipe
.--shared-memory
.Расширенная конфигурация
Нажмите 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. Это включает имя службы, должен ли сервер 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. Основная инструментальная панель
Нажмите 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, чтобы выполнить процесс установки, чтобы установить все выбранные продукты.
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. История изменения каталога
MySQL Installer может также удалить продукты MySQL из Вашей системы. Чтобы удалить продукт MySQL, щелкните Remove из инструментальной панели. Это открывает окно со списком установленных продуктов MySQL. Выберите продукты MySQL, которые Вы хотите удалить, а затем щелкните Execute . Чтобы выбрать все продукты MySQL, щелкните [ ] слева от метки Product.
Рис. 2.25. MySQL Installer. Удаление продуктов: выбор
Рис. 2.26. MySQL Installer. Удаление продуктов: выполнение
Используйте 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, чтобы выполнить запрос модификации.
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".
configure
[product1]:[setting]=[value];
[product2]:[setting]=[value]; [...]
Сконфигурируйте один или более продуктов MySQL на своей системе. Многократные пары setting=value могут быть сконфигурированы для каждого продукта.
Переключатели включают:
-showsettings
: Выводит на экран доступные параметры
для выбранного продукта, проходя в названии
продукта после -showsettings
.
-silent
: Отключить подсказки подтверждения.C:\> MySQLInstallerConsole configure -showsettings server C:\> MySQLInstallerConsole configure server:port=3307
help [command]
Выводит на экран сообщение справки с примерами использования, а затем выходит. Передайте дополнительную команду, чтобы получить справку, определенную для той команды.
C:\> MySQLInstallerConsole help C:\> MySQLInstallerConsole help install
install [product]:[features]:[config
block]:[config block]:[config block]; [...]
Установить один или более продуктов MySQL в системе.
Переключатели и опции синтаксиса включают:
-type=[SetupType]
:
Устанавливает предопределенный набор программного обеспечения. "SetupType"
может быть одним из следующего:
Непользовательские типы установки могут быть выбраны только, если никакие другие продукты MySQL не установлены.
Developer: Устанавливает полную среду проектирования.
-showsettings
:
Выводит на экран доступные параметры для выбранного продукта.
-silent
: Отключить подсказки подтверждения.[config block]
: Могут быть определены один или более блоков
конфигурации. Каждый блок конфигурации отделенный точкой с запятой список пар
значений ключа. Блок может включать ключ типа "config" или "user", где
"config" тип значения по умолчанию.
Значения блока конфигурации, которые содержат двоеточие (":"),
должны быть обернуты в двойные кавычки. Например,
installdir="C:\MySQL\MySQL Server 8.0"
.
Только один блок типа "config" может быть определен для продукта. Блок "user" должен быть определен для каждого пользователя, который должен быть создан во время установки продукта.
Добавление пользователей не поддержано, когда продукт реконфигурирован.
[feature]
: Блок особенностей отделенный точками с запятой
список особенностей или '*', чтобы выбрать все особенности.
C:\> MySQLInstallerConsole install server;5.6.25:*:port=3307;serverid=2:type=user;username=foo;password=bar;role=DBManager C:\> MySQLInstallerConsole install server;5.6.25;x64 -silent
Пример, который проходит в дополнительных блоках конфигурации, разделенных
^
, чтобы соответствовать экрану:
C:\> MySQLInstallerConsole install server;5.6.25;x64:*:type=config;openfirewall=true; ^ generallog=true;binlog=true;serverid=3306;enable_tcpip=true;port=3306;rootpasswd=pass; ^ installdir="C:\MySQL\MySQL Server 5.6":type=user;datadir="C:\MySQL\data";username=foo;password=bar;role=DBManager
list
Перечисляет, где все доступные продукты MySQL могут искаться. Выполните
MySQLInstallerConsole list
и введите подстроку для поиска.
C:\> MySQLInstallerConsole list
modify [product1: -removelist| +addlist]
[product2: -removelist| +addlist] [...]
Изменяет или выводит на экран особенности ранее установленного продукта MySQL.
-silent
: Отключить подсказки подтверждения.
C:\> MySQLInstallerConsole modify server C:\> MySQLInstallerConsole modify server:+documentation C:\> MySQLInstallerConsole modify server:-debug
remove [product1] [product2] [...]
Удаляет один или больше продуктов из Вашей системы.
*
: Укажите *
, чтобы
удалить все продукты MySQL.
-continue
: Продолжить работу, даже если ошибка происходит.
-silent
: Отключить подсказки подтверждения.C:\> MySQLInstallerConsole remove * C:\> MySQLInstallerConsole remove server
status
Обеспечивает быстрый краткий обзор продуктов MySQL, которые установлены в системе. Информация включает название продукта и версию, архитектуру, дату и местоположение установки.
C:\> MySQLInstallerConsole status
update
Загружает последний каталог продукции MySQL в Вашу систему. При успехе каталог загрузки будет применен в следующий раз, когда выполнен MySQLInstaller или MySQLInstallerConsole.
C:\> MySQLInstallerConsole update
GUI-опция Automatic Catalog Update выполняет эту команду из Windows Task Scheduler.
upgrade
[product1:version]
[product2:version] [...]
Обновляет один или более продуктов на Вашей системе. Опции синтаксиса включают:
*
: Указать *
, чтобы обновить
все продукты до последней версии.
!
: Указать !
как номер версии, чтобы обновить
продукт MySQL до его последней версии.-silent
: Отключить подсказки подтверждения.C:\> MySQLInstallerConsole upgrade * C:\> MySQLInstallerConsole upgrade workbench:6.3.5 C:\> MySQLInstallerConsole upgrade workbench:! C:\> MySQLInstallerConsole upgrade workbench:6.3.5 excel:1.3.2
MySQL Notifier инструмент, который позволяет Вам контролировать и скорректировать состояние своих копий сервера MySQL через индикатор, который находится в системном трее. MySQL Notifier также предоставляет быстрый доступ к инструментальным средствам MySQL через контекстное меню.
MySQL Notifier установлен MySQL Installer и (по умолчанию) будет запускаться, когда Microsoft Windows будет запущена.
Чтобы установить, загрузите и выполните MySQL Installer, убедитесь, что продукт MySQL Notifier выбран, затем возобновите установку.
Запуск, остановку и перезапуск MySQL Server.
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 и включает опции:
Use colorful status icons: Включает красочный стиль значков для 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.
Проблема: попытка
запустить/остановить/перезапустить службу MySQL может произвести ошибку,
подобную "The Service MySQLVERSION
" при этом запрос на изменение состояния проваливается с
сообщением "The service mysqlVERSION
was not found in the Windows Services".
Объяснение: это проблема чувствительности к
регистру, дело в том, что имя службы
MySQLVERSION
, а не
mysqlVERSION
,
указанным в конфигурационном файле.
Решение: обновите свой конфигурационный файл
MySQL Notifier с правильной информацией, или остановите MySQL Notifier и
удалите этот конфигурационный файл. Конфигурационный файл MySQL Notifier
расположен в %APPDATA%\Oracle\MySQL Notifier\settings.config
,
где %APPDATA%
переменная и зависит от Вашей системы. Типичное
местоположение:
"C:\Users\YourUsername
\AppData\Running\Oracle\MySQL
Notifier\settings.config", где YourUsername
имя пользователя Вашей системы. В этом файле, в пределах раздела ServerList,
измените значения ServerName на фактические имена сервисаов. Например,
изменение mysqlVERSION
на
MySQLVERSION
может помочь
решить проблему. Сохраните файл, а затем перезапустите MySQL Notifier.
Альтернативно, остановите MySQL Notifier, удалите этот файл, затем
перезапустите MySQL Notifier.
Объяснение: этим поведением управляет операционная система, и результат ожидается, работая с недоменными учетными записями пользователя. Для полного описания поведения см. статью User Account Control and WMI Microsoft.
Решение: когда отдаленный компьютер находится в совместимом домене, рекомендуется, чтобы учетные записи пользователя домена использовались, чтобы соединиться через WMI с отдаленным компьютером. Для подробных инструкций настройки, используя WMI, см. раздел 2.3.4.2.
Альтернативно, когда учетные записи пользователя домена недоступны, Microsoft обеспечивает менее безопасное обходное решение, которое должно быть осуществлено с осторожностью. Для получения дополнительной информации см. Description of User Account Control and remote restrictions in Windows Vista статью KB Microsoft.
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).
Включите удаленное администрирование редактированием
Group Policy Editor или через NETSH
:
Используя Group Policy Editor:
Нажмите Start, Run, введите
GPEDIT.MSC
и нажмите OK.
Используя команду NETSH
:
Команда "netsh firewall" устарела в Microsoft Server 2008 и Vista и заменена на "netsh advfirewall firewall".
Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).
NETSH advfirewall firewall set service RemoteAdmin enable
Откройте DCOM порт TCP 135:
Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).
NETSH advfirewall firewall add rule name=DCOM_TCP135 protocol=TCP localport=135 dir=in action=allow
Добавьте приложение-клиент (MySqlNotifier.exe
) в
Windows Firewall Exceptions List (используйте конфигурацию Windows
Firewall или NETSH
):
Используя конфигурацию Windows Firewall:
В Control Panel дважды щелкните по Windows Firewall.
Если MySqlNotifier.exe
находится в списке
Allowed programs, удостоверьтесь, что он проверен на тип сетей, с которыми
компьютер соединяется (Private, Public или оба).
MySqlNotifier.exe
не находится в списке, щелкните
Allow another program....
В окне Add a Program выберите
MySqlNotifier.exe
, если это существует в списке Programs, иначе
кликните Browse... и перейдите в каталог, где был установлен
MySqlNotifier.exe
, чтобы выбрать его,
затем щелкните Add.
MySqlNotifier.exe
проверен на тип сетей,
с которыми компьютер соединяется (Private, Public или оба).
Используя команду NETSH
:
Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).
[YOUR_INSTALL_DIRECTORY]
" на каталог установки:
NETSH advfirewall firewall add rule name=MySqlNotifier program=[YOUR_INSTALL_DIRECTORY]\MySqlNotifier.exe action=allow dir=in
Если Computer B является членом WORKGROUP
или находится в домене, которому не доверяет Computer A,
тогда соединение отзыва (Соединение 2) создается как Anonymous.
Предоставьте анонимным соединениям разрешения удаленного доступа DCOM:
Нажмите Start, Run, введите
DCOMCNFG
и кликните OK.
Если учетная запись пользователя, которая зарегистрирована для компьютера, выполняющего MySQL Notifier (Computer A) является местным администратором на отдаленном компьютере (Computer B), Вы можете пропустить шаг разрешения удаленного администрирования.
Установите безопасность DCOM, чтобы позволить не административному пользователю получмть доступ к компьютеру удаленно:
Предоставьте права "DCOM remote launch" и разрешения активации для пользователя или группы:
Кликните Start, Run, введите
DCOMCNFG
и нажмите OK.
В окне Launch and Activation Permission кликните Add.
В окне Launch and Activation Permission выберите своего пользователя и группу в поле имен пользователя или группы. В столбце Allow под Permissions for User, выберите Remote Launch, Remote Activation и нажмите OK.
Предоставьте разрешения удаленного доступа DCOM:
Кликните Start, Run, введите
DCOMCNFG
и нажмите OK.
Разрешение пользовательского доступа не администратору к определенному пространству имен WMI:
В Control Panel откройте Administrative Tools .
Разрешите удаленное администрирование через
Group Policy Editor или NETSH
:
Используя Group Policy Editor:
Кликните Start, Run, введите
GPEDIT.MSC
и нажмите OK.
Используя команду NETSH
:
Откройте окно командной строки с административными правами (щелкните правой кнопкой мыши по Command Prompt и выберите Run as Administrator).
NETSH advfirewall firewall set service RemoteAdmin enable
Подтвердите, что учетная запись пользователя использует значение
Name
, а не Full Name
:
В Control Panel откройте Administrative Tools.
0x80070005
Безопасность DCOM не была сконфигурирована должным образом (см.
шаг Setting DCOM security...
для компьютера B).
Grant Anonymous connections DCOM
Remote Access permissions
для машины A).0x8007000E
Удаленная машина (B) является членом WORKGROUP
или находится в домене, которому не доверяет компьютер клиента A
(см. шаг Grant Anonymous connections DCOM
Remote Access permissions
для машины A).
0x80041003
Доступ к отдаленному пространству имен WMI не был сконфигурирован
должным образом (см. шаг Allowing non-administrator users access to a
specific WMI namespace
для B).
0x800706BA
Порт DCOM не открыт на компьютере клиента (A). См. шаг
Open the DCOM port TCP 135
для A.
Пользователи, которые устанавливают пакет noinstall
,
могут использовать инструкции в этом разделе, чтобы вручную установить MySQL.
Процесс для того, чтобы установить MySQL из архива Zip:
Извлеките основной архив.
Дополнительно: также извлеките архив теста отладки, если Вы планируете выполнить точку отсчета MySQL и испытательный набор.
Этот процесс описан в разделах ниже.
Чтобы установить MySQL вручную, сделайте следующее:
Если Вы обновляете от предыдущей версии, пожалуйста, обратитесь к разделу 2.3.8 прежде, чем начать процесс обновления.
C:\mysql
. MySQL Installation Wizard ставит MySQL в
C:\Program Files\MySQL
. Если Вы не устанавливаете MySQL в
C:\mysql
, Вы должны определить путь к каталогу установки во
время запуска или в файле опций. См.
раздел 2.3.5.2.
Установщик MySQL устанавливает MySQL в C:\Program Files\MySQL
.
Извлеките архив установки в выбранное местоположение, используя распаковщик Zip. Некоторые инструменты могут извлечь архив в папку в Вашем выбранном местоположении установки. Если это происходит, Вы можете переместить содержание подпапки в выбранное местоположение установки.
Если Вы должны определить опции запуска, когда выполняете сервер, Вы можете указать ни в командной строке или разместить их в файле опций. Для опций, которые используются каждый раз, когда сервер запускается, Вы можете счесть самым удобным использовать файл опций, чтобы определить Вашу конфигурацию MySQL. Это особенно верно при следующих обстоятельствах:
Каталог установки или данных отличается от местоположений по
умолчанию (C:\Program Files\MySQL\MySQL Server 8.0
и
C:\Program Files\MySQL\MySQL Server 8.0\data
).
Когда сервер 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
как каталог данных вместо этого, Вы должны сделать две вещи:
Переместите каталог data
и все его
содержание от местоположения по умолчанию (например,
C:\Program Files\MySQL\MySQL Server 8.0\data
) в
E:\mydata
.
--datadir
, чтобы определить новое местоположение каталога данных
каждый раз, когда Вы запускаете сервер.Следующая таблица показывает доступные серверы для 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.
Если Вы устанавливали MySQL, используя пакет Noinstall
,
никакой каталог данных не включен. Чтобы инициализировать каталог данных,
используйте инструкции в
разделе
2.9.1.1.
Этот раздел дает общий обзор запуска сервера 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.
Сервер 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.
Вы должны быть внимательны, редактируя Вашу системную переменную
PATH
: случайное удаление или модификация любой части
существующего значения PATH
может привести к серьезным
проблемам или даже непригодной системе.
Чтобы облегчить вызов MySQL, Вы можете добавить путь к каталогу MySQL
bin
к Вашей системной переменной PATH
:
На рабочем столе, кликните правой кнопкой мыши по My Computer и выберите Properties.
bin
(например,
C:\Program Files\MySQL\MySQL Server 8.0\bin
).
Должна быть точка с запятой, отделяющая этот путь от любых значений, существующих в этой области.
Закройте этот диалог, и каждый диалог в очереди, нажимая
OK, пока все диалоги, которые были открыты, не закроются. Новое
значение PATH
должно теперь быть доступным любой новой команде,
разрешая Вам вызвать любую программу MySQL, вводя ее имя при подсказке
DOS из любого каталога в системе, не имея необходимость задавать путь. Это
включает серверы, клиент mysql
и все утилиты, например,
utilities such as mysqladmin
и
mysqldump.
Вы не должны добавить каталог MySQL bin
к переменной
Windows PATH
, если Вы выполняете много серверов MySQL на той
же самой машине.
В 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
Команда установки службы не запускает сервер. Инструкции для этого даны позже в этом разделе.
Следующие дополнительные параметры могут использоваться, устанавливая службу:
Вы можете немедленно определить имя службы после опции
--install
. По умолчанию MySQL
.
--defaults-file=
file_name
, чтобы определить название файла
опций, из которого сервер должен считать опции, когда запускается.
Использование единственной опции кроме
--defaults-file
возможно, но не рекомендуется.
--defaults-file
более гибко, потому что это позволяет Вам определить много опций
запуска для сервера, размещая их в названный файл опции.
--local-service
после имени службы. Это заставляет сервер выполнять использование учетной
записи Windows LocalService
, которая ограничивает системные
привилегии. Если оба параметра
--defaults-file
и --local-service
даны после имени службы, они могут быть в любом порядке.Для сервера MySQL, который установлен как служба Windows, следующие правила определяют имя службы и файлы опции, которые использует сервер:
Если команда установки службы не определяет имени службы или
задает имя службы по умолчанию (MySQL
) после опции
--install
, сервер использует название службы MySQL
и читает опции из группы [mysqld]
в стандартных файлах опций.
MySQL
после опции --install
,
сервер использует то имя службы. Это читает опции из группы
[mysqld]
и группы, у которой есть то же самое имя, как у службы,
в стандартных файлах опций. Это позволяет Вам использовать группу
[mysqld]
для опций, которые должны использоваться всеми службами
MySQL, и группу опций с названием службы для использования сервером,
установленным с тем именем службы.--defaults-file
после имени службы, сервер читает опции тем же самым путем, как
описано в предыдущем пункте, за исключением того, что это читает опции только
из названного файла и игнорирует стандартные файлы опций.Как более сложный пример, рассмотрите следующую команду:
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.
Вы можете проверить, работает ли сервер 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.
Устанавливая и выполняя 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 и запуская сервер впервые:
Если сервер MySQL не может найти базу данных привилегий
mysql
или другие критические файлы, это выводит на
экран эти сообщения:
System error 1067 has occurred. Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
Эти сообщения часто происходят, когда MySQL или каталоги данных
установлены в иных местоположениях чем значения по умолчанию
(C:\Program Files\MySQL\MySQL Server 8.0
и C:\Program
Files\MySQL\MySQL Server 8.0\data
, соответственно).
Эта ситуация может произойти, когда MySQL обновлен и установлен в новое место, но конфигурационный файл не обновлен, чтобы отразить новое местоположение. Кроме того, старые и новые конфигурационные файлы могли бы находиться в противоречии. Убедитесь, что удалили или переименовали любые старые конфигурационные файлы, обновляя MySQL.
Если Вы установили MySQL не в каталог
C:\Program Files\MySQL\MySQL Server 8.0
,
гарантируйте, что сервер MySQL знает об этом с помощью конфигурации
(my.ini
). Поместите файл my.ini
в каталог Windows,
обычно это C:\WINDOWS
. Определить его точное местоположение
можно из значения WINDIR
:
C:\> echo %WINDIR%
Вы можете создать или изменить файл опций любым текстовым редактором,
например, Notepad. Например, если MySQL установлен в
E:\mysql
и каталог данных D:\MySQLdata
,
Вы можете создать файл опций и настроить раздел [mysqld]
, чтобы
определить значения для опций basedir
и datadir
:
[mysqld] # set basedir to your installation path basedir=E:/mysql # set datadir to the location of your data directory datadir=D:/MySQLdata
Пути Microsoft Windows определены в файлах опции, используя прямые, а не обратные слэши. Если Вы действительно используете обратные слэши, удвойте их:
[mysqld] # set basedir to your installation path basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0 # set datadir to the location of your data directory datadir=D:\\MySQLdata
Если Вы изменяете datadir
в своем конфигурационном файле
MySQL, Вы должны переместить содержание существующего каталога данных MySQL
прежде, чем перезапустить сервер MySQL.
Error: Cannot create Windows service for MySql. Error: 0
Это происходит, когда мастер конфигурации пытается установить службу и находит существующую службу с тем же самым именем.
Одно решение этой проблемы состоит в том, чтобы выбрать имя службы не
mysql
, используя мастер конфигурации. Это позволяет новой службе
быть установленной правильно, но оставляет устаревшую службу. Хотя это
безопасно, лучше удалять старые службы, которые больше
не находятся в использовании.
Чтобы удалить старую службу mysql
, выполните следующую
команду как пользователя с административными привилегиями:
C:\> sc delete mysql [SC] DeleteService SUCCESS
Если утилита sc
не доступна для Вашей версии Windows,
загрузите delsrv
с
http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp
и примените синтаксис delsrv mysql
.
Есть инструменты GUI, которые выполняют большинство задач, описанных в этом разделе, включая:
MySQL Installer: Используемый, чтобы установить и обновить продукты MySQL.
В случае необходимости, инициализируйте каталог данных и составьте таблицы привилегий 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 | +------+-----------+-----------------------+
Чтобы обновить MySQL в Windows, следуйте этим шагам:
Изучите раздел 2.10.1 для дополнительной информации об обновлении MySQL, которая не является определенной для Windows.
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
Прежде, чем обновить до MySQL 8.0 от версии ниже 4.1.5, или от версии MySQL, установленной из Zip-архива, к версии MySQL, установленной через Installation Wizard, Вы должны сначала вручную удалить предыдущую установку и службу MySQL (если сервер установлен как служба).
Чтобы удалить службу MySQL, используйте следующую команду:
C:\> C:\mysql\bin\mysqld --remove
Если Вы не удаляете существующую службу, мастер установки MySQL может быть не в состоянии должным образом установить новую службу MySQL.
C:\mysql
) или установить это в иной каталог, такой как
C:\mysql5
. Перезапись существующей установки рекомендуется.
Однако, для обновлений (в противоположность установке впервые), Вы должны
удалить каталог данных из своей существующей установки MySQL, чтобы не
заменять Ваши текущие файлы с данными. Чтобы сделать так,
следуйте этим шагам:
Разархивируйте архив в некотором местоположении кроме Вашей текущей установки MySQL.
Или:
Разархивируйте архив в некотором местоположении кроме Вашей текущей установки MySQL.
Если Вы выполняли MySQL как службу Windows, и Вы должны были удалить службу ранее в этой процедуре, надо повторно установить службу (см. раздел 2.3.5.8).
Для списка версий OS X, которые поддерживает сервер MySQL, см. http://www.mysql.com/support/supportedplatforms/database.html .
MySQL for OS X доступен во многих различных формах:
Native Package Installer, который использует родной OS X установщик (DMG), чтобы провести Вас через установку MySQL. Для получения дополнительной информации см. раздел 2.4.2. Вы можете использовать установщик пакета с OS X. У пользователя, которого Вы используете, чтобы выполнить установку, должны быть привилегии администратора.
В дополнение к основной установке Package Installer, обратите внимание на разделы 2.4.3 и 2.4.4, оба из которых упрощают управление Вашей установкой.
Вы должны помнить следующие проблемы и примечания:
Демон launchd установлен, и он включает параметры конфигурации MySQL. Рассмотрите редактирование этого если нужно, см. документацию ниже для дополнительной информации. Кроме того, в macOS 10.10 удалена поддержка элемента запуска в пользу демонов launchd. Дополнительная привилегированная область MySQL под macOS System Preferences использует launchd.
mysql
, чтобы иметь каталог MySQL и данные. Вы можете сделать это
через Directory Utility, и
пользователь mysql
должен уже существовать.
Для использования в однопользовательском режиме запись для
_mysql
(отметьте приставку подчеркивания) должен уже
существовать в пределах системного файла /etc/passwd
.data
из старойверсии в
новой или альтернативно определять значение datadir
, чтобы
установить местоположение каталога данных. По умолчанию, каталоги MySQL
установлены под /usr/local/
.alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin
Для tcsh надо:
alias mysql /usr/local/mysql/bin/mysql alias mysqladmin /usr/local/mysql/bin/mysqladmin
Еще лучше добавить /usr/local/mysql/bin
к переменной
окружения PATH
. Вы можете сделать это, изменяя соответствующий
файл запуска для Вашей оболочки. Для получения дополнительной информации см.
раздел 5.2.1.
/Library/Receipts/mysql-VERSION
.pkg
.Пакет расположен в файле образа диска (.dmg
), так что Вы
сначала должны смонтировать двойным щелчком его значок в Finder.
Это должно смонтировать образ и вывести на экран его содержание.
Перед продолжением установки надо убедиться, что остановили все рабочие копии сервера MySQL при использовании MySQL Manager Application (в OS X Server), preference pane или mysqladmin shutdown .
Чтобы поставить MySQL, используя установщик пакета:
Загрузите образ диска (.dmg
).
Версия сообщества доступна на
http://dev.mysql.com/downloads/mysql/), который содержит установщик
пакета MySQL. Двойным щелчком по файлу смонтируйте образ диска, чтобы
видеть его содержание.
Рис. 2.41. MySQL Package Installer: содержание DMG
Двойной щелкните пакет установщика MySQL. Это названо
согласно версии MySQL, который Вы загрузили. Например, если Вы загрузили
сервер MySQL 8.0.1, кликать надо по
mysql-8.0.1-osx-
.10.11-x86_64
.pkg
Рис. 2.42. MySQL Package Installer: введение
Если Вы загрузили версию сообщества MySQL, Вам покажут копию соответствующей GNU General Public License. Кликните Continue и Agree для продолжения.
Рис. 2.43. MySQL Package Installer: Тип установки
Рис. 2.44. MySQL Package Installer: выбор места назначения (местоположения установки)
Рис. 2.45. MySQL Package Installer: настройка
Нажмите Install для запуска установки.
Рис. 2.46. MySQL Package Installer: временный пароль для Root
После входа в MySQL, используя этот временный пароль, MySQL блокирует этот пароль и потребует, чтобы Вы создали новый.
Затем следует сообщение 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-
установит MySQL в osx10.11-x86_64.dmg
/usr/local/mysql-8.0.1-osx10.11-x86_64/
.
Следующая таблица показывает расположение каталога установки.
Таблица 2.5. Расположение установки MySQL на OS X
Каталог | Содержание каталога |
---|---|
bin , scripts |
Сервер mysqld , клиент и утилиты |
data | Файлы системного журнала, базы данных |
docs | Документы, такие как информация о версии |
include | Файлы заголовков |
lib | Библиотеки |
man | Unix manual pages |
mysql-test | MySQL test suite |
share | Разные файлы поддержки, включая сообщения об ошибках, типовые конфигурационные файлы, SQL для установки базы данных |
support-files | Скрипты и типовые конфигурационные файлы |
/tmp/mysql.sock | Местоположение скоета MySQL Unix |
Во время процесса установки создается ссылка
/usr/local/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, Вы можете также:
Кликнуть Start MySQL Server из MySQL preference pane.
Рис. 2.48. MySQL Preference Pane: расположение
Рис. 2.49. MySQL Preference Pane: использование
Или вручную загрузите файл launchd.
shell> cd /Library/LaunchDaemons shell> sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
shell> sudo launchctl load -w com.oracle.oss.mysql.mysqld.plist
Обновляя сервер MySQL, процесс установки удалит старые элементы запуска, которые были установлены с сервером MySQL 5.7.7 и ниже.
Кроме того, обновление заменит Ваш существующий файл launchd того же самого имени.
Дополнительная информация о launchd:
plist переопределяет записи в my.cnf
,
потому что их передают как параметры командной строки. Для дополнительной
информации о передаче опций программы см.
раздел 5.2.3.
mysqld
в этом случае.my.cnf
.Поскольку значение по умолчанию 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
.
MySQL Installation Package включает MySQL preference pane, которая позволяет Вам запустить, остановить и управлять автоматизированным запуском во время начальной загрузки Вашей установки MySQL.
Эта preference pane установлена по умолчанию и перечислена в окне System Preferences.
Рис. 2.50. MySQL Preference Pane: расположение
Чтобы установить MySQL Preference Pane:
Загрузите образ диска (.dmg
), который
содержит установщик пакета MySQL. Двойной щелчок по файлу смонтирует образ
диска и покажет его содержание.
Рис. 2.51. MySQL Package Installer: содержание DMG
Пройдите процесс установки сервера MySQL, как описано в документации в разделе 2.4.2.
Рис. 2.52 MySQL Installer on OS X: Customize
Завершите процесс установки сервера 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 установлен запускаться автоматически.
Чтобы запустить сервер MySQL, используя preference pane:
Кликните Start MySQL Server. Вы можете быть запрошены об имени и пароле пользователя с привилегиями администратора, чтобы запустить сервер MySQL.
Кликните Stop MySQL Server. Вы можете быть запрошены об имени и пароле пользователя с привилегиями администратора, чтобы запустить сервер MySQL.
Проверьте, что флажок рядом с Automatically Start MySQL Server on Startup установлен.
Проверьте, что флажок рядом с Automatically Start MySQL Server on Startup снят.
Вы можете закрыть окно System Preferences... , как только Вы завершили свои настройки.
Linux поддерживает много различных решений для того, чтобы установить MySQL. Мы рекомендуем, чтобы Вы использовали один из дистрибутивов от Oracle, для которого несколько методов для установки доступны:
С помощью Yum, используя MySQL Yum repository. Детали в разделе 2.5.1.
.tar.gz
. См.
раздел 2.2.Как альтернатива, Вы можете использовать диспетчер пакетов на своей системе, чтобы автоматически загрузить и установить MySQL с пакетами от родных репозитариев программного обеспечения Вашего дистрибутива Linux. Эти родные пакеты часто на несколько версий позади в настоящее время доступного выпуска. Вы также обычно будете неспособны установить выпуски развития (DMR), поскольку они обычно не делаются доступными в родных репозитариях. Для получения дополнительной информации об использовании родных установщиков пакета см. раздел 2.5.6.
Для многих установок Linux Вы будете хотеть настроить MySQL, который будет
запущен автоматически, когда Ваша машина запустится. Многие из родных
установок пакета выполняют эту работу для Вас, но для исходных текстов
и решений для RPM, Вы, возможно, должны настроить это отдельно. Необходимый
скрипт, mysql.server
, может быть найден в каталоге support-files
в соответствии с каталогом установки MySQL или в исходном дереве MySQL. Вы
можете установить это как /etc/init.d/mysql
для автоматического запуска MySQL и завершения работы. См.
раздел 5.3.3.
MySQL обеспечивает репозитарий программного обеспечения стиля Yum для следующих платформ Linux:
EL6 и EL7-платформы (например, соответствующие версии Red Hat Enterprise Linux, Oracle Linux и CentOS).
В настоящее время 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.
Следуйте за шагами ниже, чтобы установить последнюю версию GA MySQL из репозитария MySQL Yum:
Во-первых, добавьте репозитарий MySQL Yum к списку репозитариев своей системы. Это одноразовая работа, которая может быть выполнена, устанавливая RPM, обеспеченный MySQL. Следуйте за этими шагами:
Перейдите на страницу Download MySQL Yum Repository ( http://dev.mysql.com/downloads/repo/yum/) в MySQL Developer Zone.
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 и, для обсуждения некоторых возможных эффектов этого на Вашей системе, см. Обновление совместно используемых библиотек клиента.
Используя репозитарий, последний ряд 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
Установка MySQL делается следующей командой (для dnf-систем замените yum на dnf):
shell> sudo yum install mysql-community-server
Это устанавливает пакет для сервера MySQL
(mysql-community-server
), а также пакеты для компонентов,
требуемых чтобы выполнять сервер, включая пакеты для клиента
(mysql-community-client
), сообщения об ошибках и наборы символов
для клиента и сервера (mysql-community-common
)
и совместно используемые библиотеки клиента
(mysql-community-libs
).
Запустите сервер MySQL следующей командой:
shell> sudo service mysqld start Starting mysqld:[ OK ]
Вы можете проверить состояние сервера MySQL следующей командой:
shell> sudo service mysqld status mysqld (pid 3066) is running.
При начальном запуске сервера происходит следующее, учитывая, что каталог данных сервера пуст:
Сервер инициализирован.
'root'@'localhost
создается.
Пароль для суперпользователя установлен и сохранен в файле журнала ошибок.
Чтобы показать это, используйте следующую команду:
shell> sudo grep 'temporary password' /var/log/mysqld.log
Измените пароль как можно скорее, входя в систему с временным паролем и установите пользовательский пароль для учетной записи:
shell> mysql -uroot -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
Плагин MySQL validate_password установлен по умолчанию. Это потребует, чтобы пароли содержали по крайней мере одну прописную букву, одну строчную букву, одну цифру, один специальный символ и что полная длина пароля по крайней мере 8 символов.
Информация о совместимости для EL7-платформ: следующие пакеты RPM от родных репозитариев программного обеспечения платформ являются несовместимыми с пакетом от репозитария MySQL Yum, который устанавливает сервер MySQL. Как только Вы установили MySQL, используя репозитарий MySQL Yum, Вы не будете в состоянии установить эти пакеты (и наоборот).
akonadi-mysql.
Вы можете использовать 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 и компонентов, используя репозитарий MySQL Yum. См. раздел 2.10.1.2.
Репозитарий MySQL APT обеспечивает deb
-пакеты для установки и
управления сервером MySQL, клиентом и другими компонентами на
следующих платформах Linux:
Debian 8.x (jessie)
Инструкции для того, чтобы использовать репозитарий MySQL APT доступны на A Quick Guide to Using the MySQL APT Repository.
Репозитарий MySQL SLES обеспечивает пакеты RPM для установки и управления сервером MySQL, клиентом, и другими компонентами на SUSE Enterprise Linux Server.
Инструкции для того, чтобы использовать репозитарий MySQL SLES доступны на A Quick Guide to Using the MySQL SLES Repository.
Репозитарий MySQL SLES находится в разработке. Мы поощряем Вас пробовать это и предоставлять нам обратную связь. Пожалуйста, сообщите о любых ошибках или несогласованностях, которые Вы наблюдаете, через Bugs Database.
Рекомендуемый способ установить MySQL на RPM-Linux дистрибутивах при использовании пакетов RPM, обеспеченных Oracle. Есть два источника для того, чтобы получить их, для Community Edition MySQL:
Из репозитариев программного обеспечения MySQL:
MySQL Yum repository (см. раздел 2.5.1).
Со страницы Download MySQL Community Server в MySQL Developer Zone.
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: Для SLES: |
Значение
secure_file_priv | /var/lib/mysql-files
|
Скрипт System V init | Для RHEL, Oracle Linux,
CentOS или Fedora: Для SLES: |
Сервис Systemd |
Для RHEL, Oracle Linux, CentOS или Fedora: Для SLES: |
Файл 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.
При начальном запуске сервера происходит следующее, учитывая, что каталог данных сервера пуст:
Сервер инициализирован.
'root'@'localhost'
создается. Пароль для суперпользователя установлен и сохранен в файле журнала
ошибок. Чтобы показать это, используйте следующую команду для RHEL, Oracle
Linux, CentOS и Fedora:
shell> sudo grep 'temporary password' /var/log/mysqld.log
Используйте следующую команду для систем SLES:
shell> sudo grep 'temporary password' /var/log/mysql/mysqld.log
Следующий шаг: войти в систему с временным паролем и установить пользовательский пароль для учетной записи пользователя:
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 .
Oracle обеспечивает пакеты Debian для того, чтобы они установили MySQL на системах Debian Linux. Пакеты доступны через два различных канала:
MySQL APT Repository. Это лучший метод для того, чтобы установить MySQL на системах подобных Debian, поскольку это обеспечивает простой и удобный способ установить и обновить продукты MySQL. Для деталей см. раздел 2.5.2.
Различные пакеты Debian обеспечены в MySQL Developer Zone
для того, чтобы они установили различные компоненты MySQL на различных
платформах Debian или Ubuntu (в настоящее время Debian 8 и Ubuntu 14 и 16
поддержаны). Привилегированный метод должен использовать связку архивов tar,
которая содержит пакеты, необходимые для основной установки MySQL. У связок
tar есть имена в формате
mysql-server_
.
MVER
-DVER
_CPU
.deb-bundle.tarMVER
версия MySQL и
DVER
версия Linux. CPU
указывает на тип процессора или семейство, для которого пакет создан, как
показано в следующей таблице:
Таблица 2.10. Идентификаторы CPU пакетов установки MySQL для Debian и Ubuntu
CPU |
Намеченный тип процессора |
---|---|
i386 |
Pentium или выше, 32 bit |
amd64 |
64-bit x86 |
После загрузки tar-архива распакуйте его следующей командой:
shell> tar -xvf mysql-server_MVER
-DVER
_CPU
.deb-bundle.tar
libaio
, если ее
еще нет в системе:
shell> sudo apt-get install libaio1
shell> sudo dpkg-preconfigure mysql-community-server_*.deb
Вас попросят предоставить пароль пользователя root для Вашей установки MySQL. Вам могут также задать другие вопросы относительно установки.
Удостоверьтесь, что Вы помните пароль root, который Вы устанавливаете. Пользователи, которые хотят установить пароль позже, могут оставить область password пустой в диалоговом окне, и только нажать OK. В этом случае доступ root к серверу заверен, используя MySQL Socket Peer-Credential Authentication Plugin для соединений, используя файл сокета Unix. Вы можете установить пароль позже, используя mysql_secure_installation.
Для основной установки сервера MySQL, установите пакет общих файлов базы данных, пакет клиента, метапакет клиента, пакет сервера и метапакет сервера (в этом порядке!). Вы можете сделать это единственной командой:
shell> sudo dpkg -i mysql-{common,community-client,client,community-server,server}_*.deb
Если Вы предупреждаетесь относительно зависимостей dpkg, Вы можете установить их используя apt-get:
sudo apt-get -f install
Вот где файлы установлены в системе:
Все конфигурационные файлы (к примеру,
my.cnf
) находятся в /etc/mysql
.
/usr/bin
и /usr/sbin
./var/lib/mysql
.
Дистрибутивы Debian MySQL также обеспечены другими поставщиками. Знайте, что они могут отличаться от созданных Oracle, и что инструкции в этом руководстве не обязательно относятся к их установке.
Много дистрибутивов Linux включают версию сервера MySQL, инструментов клиента и компонентов развития в их родных репозитариях программного обеспечения и могут быть установлены со стандартными системами управления пакета платформ. Этот раздел обеспечивает исходные мысли для того, чтобы установить MySQL, используя эти системы управления пакета.
Родные пакеты часто на несколько версий позади в настоящее время доступного выпуска. Вы также обычно будете неспособны установить выпуски (DMR), поскольку они обычно не делаются доступными в родных репозитариях. Перед переходом мы рекомендуем, чтобы Вы проверили другие опции установки, описанные в разделе 2.5.
Конкретные инструкции для дистрибутивов:
Red Hat Linux, Fedora, CentOS
Для EL6 или EL7 и Fedora 23 или 24, Вы можете установить MySQL, используя репозитарий MySQL Yum вместо родного репозитария программного обеспечения платформы. См. раздел 2.5.1.
Для Red Hat и подобных дистрибутивов, дистрибутив MySQL разделен на многие
отдельные пакеты, mysql
для инструментов клиента,
mysql-server
для сервера и связанных инструментов и
mysql-libs
для библиотек. Библиотеки требуются, если Вы хотите
обеспечить связь с различными языками и средами, такими как
Perl, Питон и другие.
Чтобы установить, используйте yum, чтобы определить пакеты, которые Вы хотите установить. Например:
root-shell> yum install mysql mysql-server mysql-libs mysql-server Loaded plugins: presto, refresh-packagekit Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mysql.x86_64 0:5.1.48-2.fc13 set to be updated ---> Package mysql-libs.x86_64 0:5.1.48-2.fc13 set to be updated ---> Package mysql-server.x86_64 0:5.1.48-2.fc13 set to be updated --> Processing Dependency: perl-DBD-MySQL for package: mysql-server-5.1.48-2.fc13.x86_64 --> Running transaction check ---> Package perl-DBD-MySQL.x86_64 0:4.017-1.fc13 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package ArchVersion RepositorySize ================================================================================ Installing: mysql x86_645.1.48-2.fc13 updates889 k mysql-libsx86_645.1.48-2.fc13 updates1.2 M mysql-serverx86_645.1.48-2.fc13 updates8.1 M Installing for dependencies: perl-DBD-MySQLx86_644.017-1.fc13updates136 k Transaction Summary ================================================================================ Install 4 Package(s) Upgrade 0 Package(s) Total download size: 10 M Installed size: 30 M Is this ok [y/N]: y Downloading Packages: Setting up and reading Presto delta metadata Processing delta metadata Package(s) data still to download: 10 M (1/4): mysql-5.1.48-2.fc13.x86_64.rpm| 889 kB 00:04 (2/4): mysql-libs-5.1.48-2.fc13.x86_64.rpm | 1.2 MB 00:06 (3/4): mysql-server-5.1.48-2.fc13.x86_64.rpm | 8.1 MB 00:40 (4/4): perl-DBD-MySQL-4.017-1.fc13.x86_64.rpm| 136 kB 00:00 -------------------------------------------------------------------------------- Total 201 kB/s |10 MB 00:52 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : mysql-libs-5.1.48-2.fc13.x86_641/4 Installing : mysql-5.1.48-2.fc13.x86_64 2/4 Installing : perl-DBD-MySQL-4.017-1.fc13.x86_64 3/4 Installing : mysql-server-5.1.48-2.fc13.x86_644/4 Installed: mysql.x86_64 0:5.1.48-2.fc13mysql-libs.x86_64 0:5.1.48-2.fc13 mysql-server.x86_64 0:5.1.48-2.fc13 Dependency Installed: perl-DBD-MySQL.x86_64 0:4.017-1.fc13 Complete!
MySQL и сервер MySQL должны теперь быть установлены. Типовой
конфигурационный файл установлен в /etc/my.cnf
. Скрипт init,
чтобы запустить и остановить сервер, будет установлен в
/etc/init.d/mysqld
. Чтобы запустить сервер MySQL используют
service:
root-shell> service mysqld start
Чтобы позволить серверу быть запущенным и остановленным автоматически во время начальной загрузки, используйте chkconfig:
root-shell> chkconfig --levels 235 mysqld on
Это позволяет серверу MySQL быть запущенным (и остановленным) автоматически на указанном уровне выполнения.
Таблицы базы данных будут автоматически созданы для Вас, если они еще не существуют. Вы должны, однако, выполнить mysql_secure_installation, чтобы установить пароли на Вашем сервере.
Для Debian 8 и Ubuntu 14 и 16 MySQL может быть установлен, используя MySQL APT Repository вместо родного репозитария программного обеспечения платформы. См. раздел 2.5.2 .
В Debian и связанных дистрибутивах, есть два пакета для MySQL в их
репозитариях программного обеспечения, mysql-client
и
mysql-server
, для компонентов клиента и сервера соответственно.
Вы должны определить версию явно, например, mysql-client-5.1
,
чтобы гарантировать, что Вы устанавливаете версию MySQL, которую хотите.
Чтобы загрузить и установить, включая любые зависимости, используют apt-get, определяя пакеты, которые Вы хотите установить.
Перед установкой удостоверьтесь, что Вы обновляете Ваши индексные файлы
apt-get
, чтобы гарантировать, что Вам загружают
последнюю доступную версию.
Типовая установка пакетов MySQL могла бы быть похожей на это (некоторые разделы обрезаны для ясности):
root-shell> apt-get install mysql-client-5.1 mysql-server-5.1 Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: linux-headers-2.6.28-11 linux-headers-2.6.28-11-generic Use 'apt-get autoremove' to remove them. The following extra packages will be installed: bsd-mailx libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient15off libmysqlclient16 libnet-daemon-perl libplrpc-perl mailx mysql-common postfix Suggested packages: dbishell libipc-sharedcache-perl tinyca procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin resolvconf postfix-cdb The following NEW packages will be installed bsd-mailx libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient15off libmysqlclient16 libnet-daemon-perl libplrpc-perl mailx mysql-client-5.1 mysql-common mysql-server-5.1 postfix 0 upgraded, 13 newly installed, 0 to remove and 182 not upgraded. Need to get 1907kB/25.3MB of archives. After this operation, 59.5MB of additional disk space will be used. Do you want to continue [Y/n]? Y Get: 1 http://gb.archive.ubuntu.com jaunty-updates/main mysql-common 5.1.30really5.0.75-0ubuntu10.5 [63.6kB] Get: 2 http://gb.archive.ubuntu.com jaunty-updates/main libmysqlclient15off 5.1.30really5.0.75-0ubuntu10.5 [1843kB] Fetched 1907kB in 9s (205kB/s) Preconfiguring packages ... Selecting previously deselected package mysql-common. (Reading database ... 121260 files and directories currently installed.) ... Processing 1 added doc-base file(s)... Registering documents with scrollkeeper... Setting up libnet-daemon-perl (0.43-1) ... Setting up libplrpc-perl (0.2020-1) ... Setting up libdbi-perl (1.607-1) ... Setting up libmysqlclient15off (5.1.30really5.0.75-0ubuntu10.5) ... Setting up libdbd-mysql-perl (4.008-1) ... Setting up libmysqlclient16 (5.1.31-1ubuntu2) ... Setting up mysql-client-5.1 (5.1.31-1ubuntu2) ... Setting up mysql-server-5.1 (5.1.31-1ubuntu2) ... * Stopping MySQL database server mysqld ...done. 2013-09-24T13:03:09.048353Z 0 [Note] InnoDB: 8.0.1 started; log sequence number 1566036 2013-09-24T13:03:10.057269Z 0 [Note] InnoDB: Starting shutdown... 2013-09-24T13:03:10.857032Z 0 [Note] InnoDB: Shutdown completed; log sequence number 1566036 * Starting MySQL database server mysqld ...done. * Checking for corrupt, not cleanly closed and upgrade needing tables. ... Processing triggers for libc6 ... ldconfig deferred processing now taking place
apt-get установит много пакетов, включая сервер MySQL, чтобы обеспечить типичные инструменты и окружающую среду приложения. Это может означать, что Вы устанавливаете большое количество пакетов в дополнение к основному пакету MySQL.
Во время установки будет создаваться начальная база данных, и Вы
будете запрошены относительно пароля MySQL root. Конфигурационный файл будет
создан в /etc/mysql/my.cnf
.
Скрипт init будет создан в /etc/init.d/mysql
.
Сервер будет уже запущен. Вы можете вручную запустить и остановить использование сервера:
root-shell> service mysql [start|stop]
Служба будет автоматически добавлена к 2, 3 и 4 уровням выполнения, со скриптами остановки в уровнях single, shutdown и restart.
Структура развертывания docker поддерживает легкую установку и конфигурацию серверов MySQL. Для инструкций см. https://hub.docker.com/r/mysql/mysql-server/. Эта страница также обеспечивает обширную документацию об использовании MySQL с docker.
Структура развертывания juju поддерживает легкую установку и конфигурацию серверов MySQL. Для инструкций см. https://jujucharms.com/mysql/.
Если Вы устанавливаете MySQL, используя дистрибутив RPM на следующих платформах Linux, запуском сервера и завершением работы управляет systemd:
Red Hat Enterprise Linux 7; Oracle Linux 7; CentOS 7
Чтобы получить поддержку systemd, если Вы устанавливаете из исходных
текстов, сконфигурируйте дистрибутив, используя опцию
-DWITH_SYSTEMD=1
для CMake. См.
раздел 2.8.4.
Следующее обсуждение затрагивает эти темы:
systemd обеспечивает автоматический запуск сервера и завершение работы. Это также включает ручное управлене сервером, используя команду systemctl. Например:
systemctl {start|stop|restart|status} mysqld
Альтернативно, используйте команду service:
service mysqld {start|stop|restart|status}
Для systemctl или
service, если имя службы MySQL не
mysqld,
используют соответствующее имя (например, mysql
на SLES-системах).
Поддержка systemd включает эти файлы:
mysqld.service
: конфигурация модуля службы systemd с
деталями о сервисе mysqld
.
mysqld@.service
: аналог mysqld.service
,
но используемый для того, чтобы управлять многими копиями MySQL.mysqld.tmpfiles.d
: файл, содержащий информацию, чтобы
поддержать tmpfiles
. Этот файл установлен под
именем mysql.conf
.mysqld_pre_systemd
: Скрипт для файла модуля. Помогает в
создании файла журнала ошибок, только если его местоположение соответствует
образцу /var/log/mysql*.log. В других случаях каталог журнала ошибок должен
быть перезаписываемым, или журнал ошибок должен присутствовать и быть
перезаписываемым для пользователя, выполняющего процесс
mysqld.
На платформах, для которых поддержка systemd установлена, такие скрипты, как mysqld_safe скрипт инициализации System V не установлены, потому что они не нужны. Например, mysqld_safe может обработать перезапуски сервера, но systemd обеспечивает ту же самую возможность и делает это совместимо с управлением другими службами вместо того, чтобы использовать определенную для приложения программу.
На платформах, для которых установлена поддержка systemd у systemd есть способность управления многими копиями MySQL. Следовательно, mysqld_multi и mysqld_multi.server не установлены, потому что они не нужны.
Чтобы добавить или изменить опции для MySQL, доступны эти методы:
Используйте ограниченный systemd конфигурационный файл.
MYSQLD_OPTS
.Чтобы использовать ограниченный 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
должен
использоваться, потому что сам systemd должен знать их значения, и он не
может считать файлы опции MySQL, чтобы получить их.
Вы можете установить следующие параметры в override.conf
:
Чтобы определить файл ID процесса, надо использовать
override.conf
и изменить оба параметра
PIDFile
и ExecStart
, задав
имя пути к файлу. Любая установка файла ID
процесса в файлах опции MySQL будет проигнорирована.
LimitNOFILE
в override.conf
вместо
опции
--open-files-limit
для
mysqld_safe или
mysqld.LimitCore
в override.conf
вместо опции
--core-file-size
в
mysqld_safe
.Nice
в override.conf
вместо
--nice
в
mysqld_safe
.Некоторые параметры MySQL сконфигурированы, используя переменные окружения:
LD_PRELOAD
: Установите эту переменную, если сервер
MySQL должен пользоваться определенной библиотекой распределения памяти.
TZ
: Установите эту переменную, чтобы определить часовой пояс
по умолчанию для сервера.Есть разные способы определить значение переменных среды, которые должны быть заданы для процесса сервера MySQL, которым управляет systemd:
Используйте строки Environment
в файле
override.conf
. Для синтаксиса см. пример в предыдущем
обсуждении, которое описывает, как использовать этот файл.
/etc/sysconfig/mysql
(создайте файл, если он не существует). Назначьте значения,
используя следующий синтаксис:
LD_PRELOAD=/path/to/malloc/library
TZ=time_zone_setting
После изменения /etc/sysconfig/mysql
перезапустите сервер, чтобы сделать изменения эффективными:
systemctl restart mysqld
Чтобы определить опции для
mysqld, не изменяя конфигурационные файлы systemd
непосредственно, установите или сбросьте переменную systemd
MYSQLD_OPTS
. Например:
systemctl set-environment MYSQLD_OPTS="--general_log=1" systemctl unset-environment MYSQLD_OPTS
После изменения окружения systemd перезапустите сервер, чтобы сделать изменения эффективными:
systemctl restart mysqld
На платформах, для которых установлена поддержка 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]
) должны быть определены иначе:
Некоторые опции
mysqld_safe также поняты под
mysqld
и могут быть перемещены от группы опций [mysqld_safe]
в группу
[mysqld]
. Это не включает
--pid-file
или --open-files-limit
.
Чтобы определить те опции, используйте файл override.conf
для
systemd, описанный выше.
syslog
:
--syslog
. Для mysqld
включите системную переменную
log_syslog
вместо
этого. Для деталей см. раздел 6.4.2.override.conf
или переменных окружения.
Например, с mysqld_safe
, если сервер должен пользоваться определенной
библиотекой распределения памяти, это определено, используя
--malloc-lib
. Для установок, которые управляют сервером с systemd, установите
переменную окружения LD_PRELOAD
, как описано выше.MySQL на Solaris и OpenSolaris доступны во многих различных форматах.
Для информации об установке с использованием родного формата Solaris PKG см. раздел 2.6.1 .
tar
,
примените примечания, обеспеченные в
разделе 2.2.
Проверьте примечания и подсказки в конце этого раздела для Solaris, в которых
Вы, возможно, нуждаетесь прежде или после установки.Получить двоичный дистрибутив MySQL для Solaris в формате tarball или PKG можно на сайте http://dev.mysql.com/downloads/mysql/8.0.html.
Дополнительные примечания, устанавливая и используя MySQL на Solaris:
Если Вы хотите использовать MySQL с пользователем и группой
mysql
, используйте groupadd и
useradd:
groupadd mysql useradd -g mysql -s /bin/false mysql
Если это происходит, Вы должны использовать GNU tar
(gtar), чтобы распаковать дистрибутив.
В Solaris 10 и OpenSolaris gtar
обычно располагается в /usr/sfw/bin/gtar
,
но, возможно, не будет включен в определение пути по умолчанию.
InnoDB
, с
опцией forcedirectio
. По умолчанию установка сделана без этой
опции. Иначе будет существенное понижение скорости работы, используя
механизм хранения InnoDB
на этой платформе.support-files/mysql.server
в
/etc/init.d
и создайте символическую ссылку к
/etc/rc3.d/S99mysql.server
.Error in accept: Protocol error
Вы могли бы попытаться запустить сервер с опцией
--back_log=50
как обходное решение для этого.
setuid()
, по умолчанию, Solaris
не поддерживает файлы ядра на программах setuid()
.
Однако, Вы можете изменить это поведение, используя
coreadm. Если Вы включаете
setuid()
файлы ядра для текущего пользователя, они будут
произведены, используя режим 600 и принадлежать суперпользователю.
Вы можете установить 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 прежде, чем выполнить любое обновление.
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, чтобы защитить Вашу установку.
После того, как установлен пакет, Вы можете запустить и остановить свой
сервер 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
Этот раздел предоставляет информацию об установке MySQL на разновидностях Unix FreeBSD.
Вы можете установить MySQL на FreeBSD при использовании двоичного дистрибутива, обеспеченного Oracle. Для получения дополнительной информации см. раздел 2.2.
Самый легкий способ установить MySQL, это использовать порты
mysql-server
и mysql-client
, доступные в
http://www.freebsd.org/. Использование этих портов приносит
Вам следующую пользу:
Рабочий MySQL со всей оптимизацией, который работает с Вашей версией FreeBSD.
/usr/local/etc/rc.d
.pkg_info -L
, чтобы увидеть,
какие файлы установлены.pkg_delete
, чтобы
удалить MySQL, если Вы больше не хотите его на своей машине.Процесс сборки 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:
Удалить MySQL после установки, используя систему портов:
# cd /usr/ports/databases/mysql80-server # make deinstall ... # cd /usr/ports/databases/mysql80-client # make deinstall ...
TZ
должна помочь. См.
раздел 5.9.Для списка систем, на которых 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. Чтобы получить его, см. раздел 2.1.2. Для инструкций по сборке из стандартного дистрибутива см. раздел 2.8.2.
Стандартные дистрибутивы доступны как сжатые файлы
tar, Zip-архивы и RPM-пакеты.
У файлов дистрибутива есть названия формы
mysql-
,
VERSION
.tar.gzmysql-
или
VERSION
.zipmysql-
, где
VERSION
.rpmVERSION
число вроде 8.0.1
.
Имена файла для исходных текстов можно отличить от имен для предварительно
собранных двоичных дистрибутивов тем, что имена исходных текстов являются
общими и не включают имени платформы, тогда как имена двоичных дистрибутивов
включают имя платформы, указывающее на тип системы, для которой предназначен
дистрибутив (например, pc-linux-i686
или winx64
).
Установка MySQL из исходных текстов требует нескольких средств разработки. Некоторые из этих инструментов необходимы независимо от того, используете ли Вы стандартные исходные тексты или дерево развития. Другие требования зависят от того, который метод установки Вы используете.
Чтобы установить MySQL из исходных текстов, следующие системные требования должны быть удовлетворены, независимо от метода установки:
CMake, который используется в качестве структуры сборки на всех платформах. CMake можно скачать с http://www.cmake.org.
GCC: 4.8 или выше.
Библиотеки Boost C++ обязаны создавать MySQL (но не использовать его).
Текущая версия Boost должна быть установлена. Чтобы получить Boost
и его инструкции по установке, посетите
http://www.boost.org.
После того, как Boost установлено, создавайте систему, где файлы Boost
расположены, определяя опцию
WITH_BOOST
в
CMake. Например:
shell> cmake . -DWITH_BOOST=/usr/local/boost_1_60_0
Скорректируйте путь по мере необходимости, чтобы соответствовать Вашей установке.
Чтобы установить MySQL из стандартного исходного дистрибутива, один из следующих инструментов обязан распаковать файл дистрибутива:
Для файлов .tar.gz
: GNU gunzip
расжимает архив и соответствующий
tar для распаковки. Если Ваша программа
tar понимает опцию z
,
это может расжать и распаковать файл.
GNU tar работает.
Стандартная tar, предоставленная некоторыми
операционными системами, не в состоянии распаковать длинные имена файла.
Вы должны загрузить и установить GNU tar
или при наличии, использовать предварительно установленную версию GNU tar.
Обычно это доступно как gnutar,
gtar или как
tar в каталоге GNU или Free Software, например,
such as /usr/sfw/bin
или /usr/local/bin
. GNU
tar доступен на
http://www.gnu.org/software/tar/.
.zip
: WinZip
или другой инструмент, который может читать файлы .zip
..rpm
: программа rpmbuild
, используемая, чтобы создать дистрибутив, распаковывает это.
Чтобы установить MySQL из дерева развития, следующие дополнительные инструменты требуются:
Система управления Git обязана получать исходный код развития. GitHub Help обеспечивает инструкции для загрузки и установки Git на различных платформах. MySQL официально присоединился к GitHub в сентябре 2014. Для получения дополнительной информации о перемещении MySQL к GitHub, ознакомьтесь с объявлением в блоге MySQL Release Engineering: MySQL on GitHub.
bison доступен на
http://www.gnu.org/software/bison/. bison
для Windows
можно скачать с http://gnuwin32.sourceforge.net/packages/bison.htm.
Загрузите пакет, маркированный как Complete package, excluding
sources. В Windows местоположение по умолчанию для
bison C:\Program Files\GnuWin32
.
Некоторые утилиты могут быть не в состоянии найти bison
из-за пробела в имени каталога. Кроме того, Visual Studio
может просто зависнуть, если есть пробелы в пути. Вы можете решить эти
проблемы, устанавливая в каталог, который не содержит пробела,
например, в C:\GnuWin32
.
Если Вы должны установить какие-либо программы, измените Вашу переменную
окружения PATH
, чтобы включить любые каталоги, в которых
расположены программы. См.
раздел 5.2.10.
Если Вы сталкиваетесь с проблемами и потребностью зарегистрировать отчет об ошибках, пожалуйста, используйте инструкции в разделе 1.7.
По умолчанию когда Вы устанавливаете MySQL после компилирования из
исходных текстов, шаг установки устанавливает файлы в
/usr/local/mysql
. Составляющие местоположения в соответствии с
каталогом установки те же самые, что касаются двоичных дистрибутивов. См.
таблицу
2.3 и раздел 2.3.1.
Чтобы сконфигурировать местоположения установки, отличающиеся от значений по
умолчанию, используйте опции, описанные в
разделе 2.8.4.
Установить MySQL из стандартного исходного дистрибутива:
Проверьте, что Ваша система удовлетворяет требованиям инструментов, перечисленные в разделе 2.8.
В 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.
Распакуйте дистрибутив в текущий каталог:
Чтобы распаковать сжатый файл tar,
tar может рассжать и распаковать дистрибутив,
если это имеет опцию z
:
shell> tar zxvf mysql-VERSION
.tar.gz
Если Ваш tar не имеет опции
z
, используйте gunzip,
чтобы расжать дистрибутив и tar,
чтобы его распаковать:
shell> gunzip < mysql-VERSION
.tar.gz | tar xvf -
Альтернативно, CMake может расжать и распаковать дистрибутив:
shell> cmake -E tar zxvf mysql-VERSION
.tar.gz
.zip
.Распаковка файла дистрибутива создает каталог
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, Вы могли бы хотеть добавить опции к командной строке. Вот некоторые примеры:
-DBUILD_CONFIG=mysql_release
:
Сконфигурируйте источник с теми же самыми опции, используемыми Oracle, чтобы
произвести официальные двоичные дистрибутивы MySQL.
-DCMAKE_INSTALL_PREFIX=dir_name
:
Сконфигурируйте дистрибутив для установки под особым местоположением.
-DCPACK_MONOLITHIC_INSTALL=1
:
Вызывает make package, чтобы произвести
единственный файл установки, а не много файлов.-DWITH_DEBUG=1
: Собрать дистрибутив с отладкой.Для более обширного списка опций см. раздел 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 вылетает, Вы, возможно, должны были бы реконфигурировать, выполняя его снова с различными вариантами. Если Вы действительно реконфигурировали, примите во внимание следующее:
Если CMake выполнен после того, как
он был ранее выполнен, он может использовать информацию, которая была собрана
во время предыдущего запуска. Эта информация хранится в
CMakeCache.txt
. Когда 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.
Этот раздел описывает, как установить 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 к своей машине.
Следующая команда клонирует репозитарий к названному каталогу
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.
~$ 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
~/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
~/mysql-server$ git branch * 5.7
~/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'
git branch
, чтобы проверить, что MySQL 8.0
присутствует. MySQL 8.0, который является последним ответвлением, которое Вы
проверили, отмечен звездочкой, указывающей, что это активное ответвление.
~/mysql-server$ git branch 5.7 * 8.0
~/mysql-server$ git checkout 5.7
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.
Будьте осторожны относительно установки созданного
из исходного дерева дистрибутива на производственной машине. Команда
установки может перезаписать Вашу живую установку. Если Вам уже устанавливали
MySQL и не хотите перезаписывать его, выполните CMake
со значениями для опций
CMAKE_INSTALL_PREFIX
,
MYSQL_TCP_PORT
и
MYSQL_UNIX_ADDR
, отличающимися от используемых Вашим
производственным сервером. Для дополнительной информации о препятствовании
тому, чтобы серверы вмешивались друг в друга, см.
раздел 6.7.
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 Schema | OFF | |
DISABLE_PSI_FILE | Исключить инструментовку файлов Performance Schema | OFF | |
DISABLE_PSI_IDLE |
Исключить инструментовку неактивности Performance Schema | OFF | |
DISABLE_PSI_MEMORY | Исключить инструментовку памяти Performance Schema | OFF | |
DISABLE_PSI_METADATA | Исключить инструментовку метаданных Performance Schema | OFF | |
DISABLE_PSI_MUTEX | Исключить инструментовку Performance Schema mutex | OFF | |
DISABLE_PSI_RWLOCK | Исключить инструментовку Performance Schema rwlock | OFF | |
DISABLE_PSI_SOCKET | Исключить инструментовку сокета Performance Schema | OFF | |
DISABLE_PSI_SP | Исключить инструментовку сохраненных подпрограмм в Performance Schema | OFF | |
DISABLE_PSI_STAGE | Исключить инструментовку этапа Performance Schema | OFF | |
DISABLE_PSI_STATEMENT | Исключить инструментовку запросов Performance Schema | OFF | |
DISABLE_PSI_STATEMENT_DIGEST |
Исключить инструментовку Performance Schema statement_digest | OFF | |
DISABLE_PSI_TABLE | Исключить инструментовку таблиц Performance Schema | OFF | |
DISABLE_SHARED | Не создавать совместно используемые библиотеки, собирайте зависимый от позиции код | OFF |
|
DOWNLOAD_BOOST | Загрузить ли библиотеку Boost | OFF | |
DOWNLOAD_BOOST_TIMEOUT | Тайм-аут в секундах для того, чтобы загрузить библиотеку Boost | 600 | |
-DUSE_LD_GOLD | Использовать ли загрузчик GNU gold loader | OFF | 8.0.0 |
-DWITH_PROTOBUF |
Какой буферный пакет протокола использовать | bundled | |
ENABLED_LOCAL_INFILE | Включить ли LOCAL для LOAD DATA INFILE | OFF | |
ENABLED_PROFILING |
Включить ли код профилирования запроса | ON |
|
ENABLE_DEBUG_SYNC |
Включить ли поддержку Debug Sync | ON |
|
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 проигнорировать проверку libaio | OFF | |
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.m4 | PREFIX/share |
|
INSTALL_STATIC_LIBRARIES | Установить ли статические библиотеки | ON |
|
INSTALL_SUPPORTFILESDIR |
Дополнительный каталог файлов поддержки | PREFIX/support-files | |
MAX_INDEXES | Максимум индексов на таблицу | 64 | |
MUTEX_TYPE | Тип InnoDB mutex | event
| |
MYSQL_DATADIR | Каталог данных | ||
MYSQL_MAINTAINER_MODE |
Включить ли среду проектирования для MySQL maintainer | OFF | |
MYSQL_PROJECT_NAME | Имя проекта Windows/OS X | 3306 | |
MYSQL_TCP_PORT | Порт TCP/IP | 3306 |
|
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 под systemd | mysqld |
|
TMPDIR
| Значение по умолчанию tmpdir | ||
WIN_DEBUG_NO_INLINE | Запретить ли функцию inlining | OFF | |
WITHOUT_SERVER | Не создавать сервер | OFF
| |
WITHOUT_xxx_STORAGE_ENGINE | Исключить механизм хранения xxx | ||
WITH_ASAN | Включить AddressSanitizer | OFF
| |
WITH_AUTHENTICATION_PAM | Создать плагин аутентификации PAM | OFF | |
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 | Включать ли дополнительную поддержку отладки InnoDB | OFF
| |
WITH_INNODB_MEMCACHED | Произвести ли совместно используемые библиотеки memcached | OFF |
|
WITH_KEYRING_TEST | Создать тестовую программу ключей | OFF | |
WITH_LIBEVENT | Какой библиотекой libevent пользоваться | bundled | |
WITH_LIBWRAP | Включать ли libwrap (TCP wrappers) | OFF | |
WITH_LZ4 | Тип поддержки LZ4 | bundled
| |
WITH_MECAB | Компилировать MeCab | ||
WITH_MSAN | Включить MemorySanitizer | OFF
| |
WITH_MSCRT_DEBUG | Включить отслеживание утечки памяти Visual Studio CRT | OFF |
|
WITH_NUMA | Установить политику распределения памяти NUMA | ||
WITH_RAPID | Создать ли плагины цикла быстрого развития | ON | |
WITH_SSL | Тип поддержки SSL | bundled
| |
WITH_SYSTEMD | Включить установку файлов поддержки systemd | OFF | |
WITH_TEST_TRACE_PLUGIN | Создать испытательный плагин трассировки протокола | OFF
| |
WITH_TSAN | Включить ThreadSanitizer | OFF
| |
WITH_UBSAN | Включить Undefined Behavior Sanitizer | OFF | |
WITH_UNIXODBC | Включить unixODBC | OFF
| |
WITH_VALGRIND | Собрать ли заголовочные файлы Valgrind | OFF | |
WITH_ZLIB | Тип поддержки zlib | bundled
| |
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
.
Эта опция конфигурирует дистрибутив с опциями, используемыми Oracle, чтобы произвести двоичные дистрибутивы для официальных выпусков MySQL.
-DCMAKE_BUILD_TYPE=type
Задает тип сборки:
RelWithDebInfo
: Включить оптимизацию и произвести
информацию об отладке. Это значение по умолчанию.
Debug
: Выключить оптимизацию и произвести
информацию об отладке. Это также используется, если включена
WITH_DEBUG
.
Таким образом,
-DWITH_DEBUG=1
имеет тот же самый эффект, как
-DCMAKE_BUILD_TYPE=Debug
.
-DCPACK_MONOLITHIC_INSTALL=
bool
Эта опция затрагивает, производит ли make package много файлов пакетов установки или единственный файл. Если отключено, производится много файлов пакетов установки, которые могут быть полезными, если Вы хотите установить только подмножество из полной установки MySQL. Если включено, это производит единственный файл для того, чтобы установить все.
CMAKE_INSTALL_PREFIX
указывает на основной каталог установки.
Другие опции с названиями формы INSTALL_
указывают, что составляющие местоположения интерпретируются
относительно префикса, а их значения относительные пути. Их значения не
должны включать префикс.xxx
-DCMAKE_INSTALL_PREFIX=
dir_name
Каталог основы установки. Это значение может быть установлено при запуске
сервера с опцией --basedir
.
-DINSTALL_BINDIR=dir_name
Где установить пользовательские программы.
-DINSTALL_DOCDIR=dir_name
Где установить документацию.
-DINSTALL_DOCREADMEDIR=dir_name
Где установить файлы README
.
-DINSTALL_INCLUDEDIR=dir_name
Где установить заголовочные файлы.
-DINSTALL_INFODIR=dir_name
Где установить файлы Info.
-DINSTALL_LAYOUT=name
Выберите предопределенное расположение установки:
STANDALONE
: То же самое расположение как используется
для пакетов .tar.gz
и .zip
.
Это значение по умолчанию.
RPM
: Расположение, подобное пакетам RPM.SVR4
: Расположение пакета Solaris.DEB
: (Экспериментальное) расположение пакета DEB.
Вы можете выбрать предопределенное расположение, но изменить отдельные составляющие местоположения установки, определяя другие опции. Например:
shell> cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
INSTALL_LAYOUT
определяет значение по умолчанию
secure_file_priv
и keyring_file_data
, см. описания этих переменных в
разделе 6.1.5.
-DINSTALL_LIBDIR=dir_name
Где установить файлы библиотеки.
-DINSTALL_MANDIR=dir_name
Где установить manual pages.
-DINSTALL_MYSQLKEYRINGDIR=dir_path
Каталог по умолчанию, чтобы использовать в качестве местоположения файла
данных плагина keyring_file
. Значение по умолчанию зависит от
платформы и от значения
INSTALL_LAYOUT
, см. детали в
разделе 6.1.5.
-DINSTALL_MYSQLSHAREDIR=dir_name
Где установить совместно используемые файлы с данными.
-DINSTALL_MYSQLTESTDIR=dir_name
Где установить каталог mysql-test
.
Чтобы подавить установку этого каталога, явно установите опцию в пустое
значение (
-DINSTALL_MYSQLTESTDIR=
).
-DINSTALL_PKGCONFIGDIR=dir_name
Каталог, в котором можно установить файл
mysqlclient.pc
для использования
pkg-config. Значение по умолчанию
INSTALL_LIBDIR/pkgconfig
, если
INSTALL_LIBDIR
кончается на /mysql
, это сначала удаляется.
-DINSTALL_PLUGINDIR=dir_name
Местоположение каталога плагинов. Это значение может быть установлено при
запуске сервера с помощью опции
--plugin_dir
.
-DINSTALL_SBINDIR=dir_name
Где установить mysqld .
-DINSTALL_SECURE_FILE_PRIVDIR=dir_name
Значение по умолчанию для
secure_file_priv
. Зависит от платформы и определяется
INSTALL_LAYOUT
, подробности в разделе
6.1.5.
Установить значение для встроенного сервера libmysqld
можно,
используя
INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR
.
-DINSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR=dir_name
Значение по умолчанию для
secure_file_priv
встроенного сервера libmysqld
.
-DINSTALL_SHAREDIR=dir_name
Где установить aclocal/mysql.m4
.
-DINSTALL_STATIC_LIBRARIES=bool
Установить ли статические библиотеки. Значение по умолчанию
ON
. Если установлено в OFF
,
эти библиотеки не установлены:
libmysqlclient.a
, libmysqld.a
,
libmysqlservices.a
.
-DINSTALL_SUPPORTFILESDIR=dir_name
Где установить дополнительные файлы поддержки.
-DMYSQL_DATADIR=dir_name
Местоположение каталога данных MySQL. Это значение может быть установлено
при запуске сервера опцией
--datadir
.
-DODBC_INCLUDES=dir_name
Местоположение каталога ODBC, может использоваться, конфигурируя Connector/ODBC.
-DODBC_LIB_DIR=dir_name
Местоположение каталога библиотеки ODBC, может использоваться, конфигурируя Connector/ODBC.
-DSYSCONFDIR=dir_name
Каталог файла опций my.cnf
по умолчанию.
Это местоположение не может быть установлено при запуске сервера, но Вы
можете запустить сервер с указанным файла опций, используя
--defaults-file=
, где
file_name
file_name
полный путь к файлу.
-DSYSTEMD_PID_DIR=dir_name
Название каталога, в котором можно создать файл PID, когда MySQL управляет
systemd. Значение по умолчанию /var/run/mysqld
,
это могло бы быть изменено неявно, согласно
INSTALL_LAYOUT
.
Эта опция проигнорирована, если включена
WITH_SYSTEMD
.
-DSYSTEMD_SERVICE_NAME=name
Название службы MySQL, чтобы использовать, когда MySQL управляет systemd.
Значение по умолчанию mysqld
, это могло бы быть изменено неявно,
согласно
INSTALL_LAYOUT
.
Эта опция проигнорирована, если включена
WITH_SYSTEMD
.
-DTMPDIR=dir_name
Местоположение по умолчанию, чтобы использовать для системной переменной
tmpdir
.
Если не указано, значение по умолчанию берется из
P_tmpdir
в файле <stdio.h>
.
Механизмы хранения созданы как плагины. Вы можете создать плагин как
статический модуль (собранный в сервер) или динамический модуль (созданный
как динамическая библиотека, которая должна быть установлена в сервер,
используя INSTALL PLUGIN
или --plugin-load
прежде, чем это сможет использоваться). Некоторые плагины не могут
поддержать статическую или динамическую сборку.
Механизмы InnoDB
,
MyISAM
,
MERGE
,
MEMORY
и
CSV
обязательны
(всегда собраны в сервер) и не должны быть установлены явно.
Чтобы собрать механизм хранения статически в сервер, надо использовать
-DWITH_
.
Некоторые допустимые значения engine
_STORAGE_ENGINE=1engine
:
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
Описательный комментарий об окружающей среде компиляции.
-DDEFAULT_CHARSET=charset_name
Набор символов сервера. По умолчанию, MySQL использует
latin1
(cp1252 West European).
charset_name
может быть одним из
binary
, armscii8
,
ascii
, big5
,
cp1250
, cp1251
,
cp1256
, cp1257
,
cp850
, cp852
,
cp866
, cp932
,
dec8
, eucjpms
,
euckr
, gb2312
,
gbk
, geostd8
,
greek
, hebrew
,
hp8
, keybcs2
,
koi8r
, koi8u
,
latin1
, latin2
,
latin5
, latin7
,
macce
, macroman
,
sjis
, swe7
,
tis620
, ucs2
,
ujis
, utf8
,
utf8mb4
, utf16
,
utf16le
, utf32
.
Допустимые наборы символов перечислены в файле
cmake/character_sets.cmake
как значения CHARSETS_AVAILABLE
.
Это значение может быть установлено при запуске сервера с опцией
--character_set_server
.
-DDEFAULT_COLLATION=collation_name
Сопоставление сервера. По умолчанию используется
latin1_swedish_ci
. Используйте
SHOW COLLATION
, чтобы
определить, какие сопоставления доступны для каждого набора символов.
Это значение может быть установлено при запуске сервера с опцией
--collation_server
.
-DDISABLE_PSI_COND=bool
Исключить ли инструментовку условия Performance Schema.
Значение по умолчанию OFF
(включать).
-DDISABLE_PSI_FILE=bool
Исключить ли инструментовку файлов Performance Schema.
Значение по умолчанию OFF
(включать).
-DDISABLE_PSI_IDLE=bool
Исключить ли инструментовку ожидания Performance Schema.
Значение по умолчанию OFF
(включать).
-DDISABLE_PSI_MEMORY=bool
Исключить ли инструментовку памяти Performance Schema.
Значение по умолчанию OFF
(включать).
-DDISABLE_PSI_METADATA=bool
Исключить ли инструментовку метаданных Performance Schema.
Значение по умолчанию OFF
(включать).
-DDISABLE_PSI_MUTEX=bool
Исключить ли инструментовку mutex Performance Schema.
-DDISABLE_PSI_RWLOCK=bool
>Исключить ли инструментовку Performance Schema rwlock.-DDISABLE_PSI_SOCKET=bool
Исключить ли инструментовку сокетов Performance Schema.
-DDISABLE_PSI_SP=bool
Исключить ли инструментовку сохраненных подпрограмм Performance Schema.
-DDISABLE_PSI_STAGE=bool
Исключить ли инструментовку этапа Performance Schema.
-DDISABLE_PSI_STATEMENT=bool
Исключить ли инструментовку запросов Performance Schema.
-DDISABLE_PSI_STATEMENT_DIGEST=bool
Исключить ли инструментовку Performance Schema statement_digest.
-DDISABLE_PSI_TABLE=bool
Исключить ли инструментовку таблиц Performance Schema.
-DDISABLE_SHARED=bool
Запретить ли сборку совместно используемых библиотек и собирать зависимый
от позиции код. Значение по умолчанию OFF
(собрать независимый от позиции код).
Включение этой опции отключает -fPIC
, в результате
совместно используемые библиотеки не созданы, включая плагины и компоненты.
Вызов CMake
производит это предупреждение:
Dynamic plugins are disabled
.
-DDOWNLOAD_BOOST=bool
Загрузить ли библиотеку Boost. Значение по умолчанию OFF
.
-DDOWNLOAD_BOOST_TIMEOUT=seconds
Тайм-аут в секундах для того, чтобы загрузить библиотеку Boost. Значение по умолчанию составляет 600 секунд.
-DENABLE_DEBUG_SYNC=bool
Собрать ли средство Debug Sync facility в сервер. Это средство
используется для тестирования и отладки. Эта опция включена по умолчанию, но
не имеет никакого эффекта, если MySQL не сконфигурирован с отладкой.
Если отладка включена, и Вы хотите отключить Debug Sync, надо использовать
-DENABLE_DEBUG_SYNC=0
.
Когда собрано, Debug Sync отключена по умолчанию во время выполнения.
Чтобы включить, запустите mysqld
с опцией
--debug-sync-timeout=
, где
N
N
значение тайм-аута, больше чем 0. Значение по
умолчанию 0, которое отключает Debug Sync. N
становится
тайм-аутом значения по умолчанию для отдельных пунктов синхронизации.
Синхронизирующая проверка отладки InnoDB
доступна, когда
отладка собрана с использованием опции
WITH_DEBUG
.
Для описания средства Debug Sync и пунктов синхронизации см. MySQL Internals: Test Synchronization.
-DENABLE_DOWNLOADS=bool
Загрузить ли дополнительные файлы. Например, с этой включенной опцией, CMake загружает дистрибутив Google Test, который используется испытательным набором, чтобы выполнить тесты модуля.
-DENABLE_DTRACE=bool
Включать ли поддержку исследований DTrace. Для информации о DTrace см. раздел 6.8.
-DENABLE_GCOV=bool
Включать ли поддержку gcov (Linux только).
-DENABLE_GPROF=bool
Включить ли gprof
(Linux только).
-DENABLED_LOCAL_INFILE=bool
Включить ли LOCAL
в библиотеке клиента для
LOAD DATA INFILE
.
Эта опция управляет на стороне клиента LOCAL
,
но способность может быть установлена на стороне сервера при запуске сервера
с опцией --local-infile
. См. раздел 7.1.6.
-DENABLED_PROFILING=bool
Включить ли код профилирования запроса (для
SHOW PROFILE
и
SHOW PROFILES
).
-DFORCE_UNSUPPORTED_COMPILER=bool
По умолчанию CMake
проверяет на минимальные версии поддержанных компиляторов:
gcc 4.4 (Linux, Solaris), Sun Studio 12u2
(Solaris client library), Clang 3.3 (OS X, FreeBSD).
Чтобы отключить эту проверку, надо использовать
-DFORCE_UNSUPPORTED_COMPILER=ON
.
-DIGNORE_AIO_CHECK=bool
Если опция
-DBUILD_CONFIG=mysql_release
дана на Linux, библиотека
libaio
должна быть скомпонована по умолчанию. Если Вы не имеете
libaio
или не хотите устанавливать, Вы можете подавить проверку
на это, определяя
-DIGNORE_AIO_CHECK=1
.
-DMAX_INDEXES=num
Максимальное количество индексов на таблицу. Значение по умолчанию 64. Максимум 255. Значения, меньшие чем 64, проигнорированы, и значение по умолчанию 64 используется.
-DMYSQL_MAINTAINER_MODE=bool
Включить ли среду проектирования разработчика MySQL. Если включена, эта опция заставляет предупреждения компилятора стать ошибками.
-DMUTEX_TYPE=type
Тип mutex, используемый InnoDB
. Опции включают:
event
: Используйте event mutex.
Это значение по умолчанию и оригинальная
реализация InnoDB
mutex.
sys
: POSIX mutexes в UNIX. Использует
в Windows объекты CRITICAL_SECTION
при наличии.futex
: Linux futex вместо переменных условия, чтобы
планировать потоки ожидания.В Windows или OS X название проекта, чтобы соединить в проектное имя файла.
-DMYSQL_TCP_PORT=port_num
Порт TCP/IP. По умолчанию 3306. Это значение может быть установлено при
запуске сервера с опцией
--port
.
-DMYSQL_UNIX_ADDR=file_name
Файл сокета Unix, на котором сервер прислушивается к сокетным
соединениям. Это должно быть абсолютным путем. Значение по умолчанию
/tmp/mysql.sock
. Это значение может быть установлено при запуске
сервера с опцией --socket
.
-DOPTIMIZER_TRACE=bool
Поддержать ли трассировку оптимизатора. См. MySQL Internals: Tracing the Optimizer.
-DUSE_LD_GOLD=bool
Использовать ли GNU gold.
-DWIN_DEBUG_NO_INLINE=bool
Запретить ли функцию inlining в Windows. Значение по умолчанию выключено (inlining включена).
-DWITH_ASAN=bool
Включить ли AddressSanitizer для компиляторов, которые поддерживают его. Значение по умолчанию выключено.
-DWITH_AUTHENTICATION_PAM=bool
Создать ли плагин аутентификации PAM для исходных деревьев, которые включают этот плагин. См. The PAM Authentication Plugin. Если эта опция определена, но плагин не может быть собран, сборка терпит неудачу.
-DWITH_BOOST=path_name
Библиотека Boost требуется для сборки MySQL. Эти опции CMake включают управление исходным местоположением библиотеки, и загрузить ли это автоматически:
-DWITH_BOOST=
определяет местоположение каталога библиотеки.
Также возможно определить местоположение, устанавливая переменные
окружения path_name
BOOST_ROOT
или WITH_BOOST
.
-DWITH_BOOST=system
также разрешена и указывает, что правильная
версия Boost установлена на узле компиляции в стандартном местоположении. В
этом случае установленная версия используется, а не версия, которая
включена в исходные тексты MySQL.
-DDOWNLOAD_BOOST=bool
определяет, загрузить ли пакет Boost если он не присутствует
в указанном местоположении. Значение по умолчанию OFF
.
-DDOWNLOAD_BOOST_TIMEOUT=seconds
тайм-аут в секундах для того, чтобы загрузить библиотеку Boost.
Значение по умолчанию составляет 600 секунд.Например, если Вы обычно создаете MySQL, помещая вывод объекта в
bld
, Вы можете собрать с Boost:
mkdir bld cd bld cmake .. -DDOWNLOAD_BOOST=ON -DWITH_BOOST=$HOME/my_boost
Это заставляет загрузить Boost в подкаталог
my_boost
Вашего домашнего каталога.
Если необходимая версия уже там, никакая загрузка не будет сделана. Если
необходимая версия Повышения изменяется, более новая версия загружена.
Если Boost уже установлена в местном масштабе, и Ваш компилятор находит заголовочные файлы самостоятельно, возможно, не надо определить предыдущие опции. Однако, если версия, требуемая изменениями MySQL, не была обновлена, Вы можете иметь проблемы. Используя опции CMake, соберете все нормально.
-DWITH_CLIENT_PROTOCOL_TRACING=bool
Встроить ли клиентский протокол, прослеживающий структуру в библиотеку клиента. По умолчанию, эта опция включена.
Для информации о теме, см. раздел 26.2.4.11.
См. также опцию
WITH_TEST_TRACE_PLUGIN
.
-DWITH_DEBUG=bool
Включать ли поддержку отладки.
Конфигурирование MySQL с отладкой позволяет Вам использовать опцию
--debug="d,parser_debug"
, когда Вы запускаете сервер. Это вызывает анализатор Bison,
который используется, чтобы обработать запросы SQL, чтобы вывести
трассировку анализатора к стандартному ошибочному выводу сервера.
Как правило, этот вывод написан в журнал ошибок.
Синхронизирующая проверка отладки InnoDB
определена под UNIV_DEBUG
и доступна, когда отладка собрана с
опцией WITH_DEBUG
. Когда отладка собрана, опция
innodb_sync_debug
может использоваться, чтобы включить или отключить
проверку отладки InnoDB
.
-DWITH_DEFAULT_FEATURE_SET=bool
Использовать ли флаги из
cmake/build_configurations/feature_set.cmake
.
-DWITH_EDITLINE=value
Которую библиотеку libedit
/editline
использовать. Разрешенные значения
bundled
(по умолчанию) и system
.
-DWITH_EMBEDDED_SERVER=bool
Создать ли встроенную библиотеку libmysqld
сервера.
-DWITH_EMBEDDED_SHARED_LIBRARY=bool
Создать ли совместно используемую встроенную
библиотеку libmysqld
сервера.
-DWITH_INNODB_EXTRA_DEBUG=bool
Включать ли дополнительную отладку InnoDB.
Включение WITH_INNODB_EXTRA_DEBUG
включает дополнительные проверки отладки InnoDB. Эта опция может быть
включена, только когда включена
WITH_DEBUG
.
-DWITH_INNODB_MEMCACHED=bool
Произвести ли совместно используемые библиотеки memcached
(libmemcached.so
и
innodb_engine.so
).
-DWITH_KEYRING_TEST=bool
Создать ли тестовую программу, которая сопровождает плагин
keyring_file
. Значение по умолчанию OFF
.
Испытательный исходный код файла расположен в каталоге
plugin/keyring/keyring-test
.
-DWITH_LIBEVENT=string
Которую библиотеку libevent
использовать. Разрешенные значения bundled
(по умолчанию),
system
и yes
. Если Вы определяете
system
или yes
, используется системная
библиотека libevent
, если существует.
Если системная библиотека не найдена, используется внутренняя
libevent
. Библиотека libevent
требуется для
InnoDB
memcached.
-DWITH_LIBWRAP=bool
Включать ли libwrap
(TCP wrappers).
-DWITH_LZ4=lz4_type
WITH_LZ4
указывает на источник поддержки zlib
:
bundled
: Использовать lz4
из комплекта
дистрибутива. Это значение по умолчанию.
system
: Использовать системную lz4
. Если
WITH_LZ4
установлена в это значение, утилита
lz4_decompress
не собирается. В этом случае системная команда
lz4 может использоваться вместо нее.
Включить ли MemorySanitizer, для компиляторов, которые поддерживают его. Значение по умолчанию: выключено.
Для этой опции, чтобы иметь эффект если включена, все библиотеки, скомпонованные с MySQL, должны быть также собраны с включенной опцией.
-DWITH_MECAB={disabled|system|path_name
}
Используйте эту опцию, чтобы собрать анализатор MeCab. Если Вы установили
MeCab в его каталог установки по умолчанию, установите
-DWITH_MECAB=system
. Опция system
относится к установкам MeCab, выполненным от исходных текстов или
из двоичных файлов, используя родную управленческую утилиту пакета. Если Вы
устанавливали MeCab в пользовательский каталог установки, определите путь к
установке MeCab. Например, -DWITH_MECAB=/opt/mecab
. Если опция
system
не работает, определите путь установки MeCab, который
должен работать во всех случаях.
Подробности есть в разделе 13.9.9.
-DWITH_MSCRT_DEBUG=bool
Включить ли отслеживание утечки памяти Visual Studio CRT.
Значение по умолчанию OFF
.
-DWITH_PROTOBUF=protobuf_type
Какой буферный пакет протокола использовать.
protobuf_type
может быть одним из следующих значений:
bundled
: Используйте пакет из комплекта дистрибутива.
Это значение по умолчанию.
system
: Используйте пакет, установленный в системе.
Другие значения проигнорированы, с отступлением к bundled
.
-DWITH_RAPID=bool
Создать ли плагины цикла быстрого развития. Когда включено, создается
каталог rapid
, содержащий эти плагины. Значение по умолчанию
ON
. Если каталог rapid
удален из исходного дерева,
тогда значение по умолчанию становится OFF
.
-DWITH_SSL={ssl_type
|
path_name
}
Тип поддержки SSL или путь к OpenSSL, чтобы использовать.
ssl_type
может быть:
yes
: Системная библиотека SSL, если есть.
Иначе комплектная библиотека дистрибутива.
bundled
: Пользуйтесь библиотекой SSL из дистрибутива.
Это значение по умолчанию.system
: Системная библиотека SSL.path_name
путь к установке OpenSSL, чтобы использовать. Это может быть предпочтительным
использованию ssl_type
=system
,
поскольку это может препятствовать тому, чтобы CMake обнаружил и использовал
более старую или неправильную версию OpenSSL, установленную в системе.
Другой разрешенный способ сделать ту же самую вещь состоит в том, чтобы
установить CMAKE_PREFIX_PATH
в
path_name
.
-DWITH_SYSTEMD=bool
Включить ли установку файлов поддержки systemd. По умолчанию эта опция
отключена. Когда включено, файлы поддержки установлены systemd, и такие
скрипты, как mysqld_safe
и скрипт инициализации System V не ставятся.
На платформах, где systemd не доступен, включение
WITH_SYSTEMD
приведет к ошибке CMake.
Для получения дополнительной информации об использовании systemd см.
раздел 2.5.9.
Этот раздел также включает информацию об определении опций, ранее указанных в
группах [mysqld_safe]
. Поскольку
mysqld_safe
не установлен, когда используется systemd, такие опции должны
быть определены иначе.
-DWITH_TEST_TRACE_PLUGIN=bool
Создать ли испытательный плагин клиента трассировки протокола (см.
раздел 26.2.4.11.1).
По умолчанию эта опция отключена. Включение этой опции не имеет никакого
эффекта, если
WITH_CLIENT_PROTOCOL_TRACING
включена. Если MySQL
сконфигурирован с обеими включенными опциями, библиотека клиента
libmysqlclient
создана с испытательным плагином отслеживания
протокола, а все стандартные клиенты MySQL загружают плагин. Однако, даже
когда испытательный плагин включен, он не имеет никакого эффекта по
умолчанию. Управление плагином предоставлено, используя переменные окружения,
см. раздел 26.2.4.11.1.
Не включайте опцию
WITH_TEST_TRACE_PLUGIN
, если Вы хотите использовать свои
собственные плагины трассировки протокола, потому что только один такой
плагин может быть загружен за один раз, и ошибка происходит для попыток
загрузить второй. Если Вы уже создали MySQL с испытательным плагином
отслеживания протокола, Вы должны восстановить MySQL без этого прежде, чем Вы
сможете использовать свои собственные плагины.
Подробности есть в разделе 26.2.4.11.
-DWITH_TSAN=bool
Включить ли ThreadSanitizer для компиляторов, которые поддерживают его. Значение по умолчанию: выключено.
-DWITH_UBSAN=bool
Включить ли Undefined Behavior Sanitizer для компиляторов, которые поддерживают его. Значение по умолчанию: выключено.
-DWITH_UNIXODBC=1
Включает поддержку unixODBC для Connector/ODBC.
-DWITH_VALGRIND=bool
Собрать ли в заголовочных файлах Valgrind, который выставляет
Valgrind API в MySQL. Значение по умолчанию OFF
.
Чтобы произвести Valgrind-отладку,
-DWITH_VALGRIND=1
обычно объединяется с
-DWITH_DEBUG=1
.
См. Building Debug Configurations.
-DWITH_ZLIB=zlib_type
Некоторые особенности, такие как функции
COMPRESS()
и
UNCOMPRESS()
и
сжатие протокола клиент-сервер, требуют, чтобы сервер был создан с поддержкой
библиотеки сжатия.
WITH_ZLIB
указывает на источник поддержки zlib
:
bundled
: комплектная библиотека zlib
в дистрибутиве. Это значение по умолчанию.
system
: Системная библиотека zlib
. Если
WITH_ZLIB
установлена в это значение, утилита
zlib_decompress не собирается.
В этом случае команда openssl zlib
может использоваться вместо этого.Создать ли пакет без сервера MySQL. Значение по умолчанию
OFF
, которое действительно создает сервер.
Флаги для компилятора C.
-DCMAKE_CXX_FLAGS="flags
"
Флаги для компилятора C++.
-DWITH_DEFAULT_COMPILER_OPTIONS=bool
Использовать ли флаги из
cmake/build_configurations/compiler_options.cmake
.
Все флаги оптимизации были тщательно выбраны и проверены командой MySQL. Переопределение их может привести к неожиданным результатам и сделано на ваш собственный риск.
Чтобы определить Ваши собственные флаги компилятора 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
Если Вы устанавливаете флаги оптимизации
(-O
), Вы должны установить опции
number
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"
Решение многих проблем вовлекает реконфигурирование. Примите во внимание следующее:
Если CMake выполнен после того, как
он был ранее выполнен, он может использовать информацию, которая была собрана
во время предыдущего запуска. Эта информация хранится в
CMakeCache.txt
. Когда CMake
запускается, он ищет тот файл и читает его содержание, если он существует,
при условии, что информация все еще правильна. Это предположение недопустимо,
когда Вы реконфигурировали пакет.
Чтобы препятствовать тому, чтобы старые файлы объектов или информация о конфигурации использовались, выполните следующие команды прежде, чем запустить повторно 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:
Определите, какие компиляторы C и C++ использовать, Вы можете
определить переменные окружения CC
и CXX
. Пример:
shell> CC=gcc shell> CXX=g++ shell> export CC CXX
Чтобы определить Ваши собственные флаги компилятора, используйте опции
CMAKE_C_FLAGS
и
CMAKE_CXX_FLAGS
.
MYSQL_MAINTAINER_MODE
. Этот режим заставляет предупреждения
компилятора стать ошибками, так что его отключение может
позволить компиляции продолжиться.make: Fatal error in reader: Makefile, line 18: Badly formed macro assignment
Или:
make: file `Makefile' line 18: Must be a separator (:
Или:
pthread.h: No such file or directory
Solaris и FreeBSD, как известно, имеют проблемную программу make.
GNU make 3.75 точно работает.
sql_yacc.cc
произведен от sql_yacc.yy
.
Обычно процесс сборки не должен создать sql_yacc.cc
,
потому что MySQL идет с предварительно произведенной копией.
Однако, если Вы действительно должны обновить это, Вы могли бы
столкнуться с этой ошибкой:
"sql_yacc.yy", line xxx
fatal: default action causes potential...
Это знак, что Ваша версия yacc является несовершенной. Вы, вероятно, должны установить недавнюю версию bison (GNU-версия yacc) вместо этого.
Версии bison до 1.75 могут сообщить об этой ошибке:
sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded
Максимальный табличный размер фактически не превышен, ошибка вызвана ошибками в более старых версиях bison.
Имеющие отношение к третьей стороне инструменты, которые должны определить
версию 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
Исходные тексты MySQL содержат внутреннюю документацию, использующую Doxygen. Произведенный контент Doxygen доступен в http://dev.mysql.com/doc/dev/mysql-server/latest/. Также возможно произвести этот контент в местном масштабе от исходного дистрибутива MySQL, используя следующую процедуру:
Установите doxygen 1.8.11 или выше. Дистрибутивы доступны здесь:
http://www.stack.nl/~dimitri/doxygen/download.html
После установки doxygen, проверьте номер версии:
shell> doxygen --version 1.8.11
http://plantuml.com/download.html
Когда Вы устанавливаете PlantUML на Windows (проверено на Windows 10), Вы должны выполнить это, по крайней мере, однажды как администратор, чтобы создать регистрационные ключи. Откройте консоль администратора и выполните эту команду:
java -jar path-to-plantuml.jar
Команда должна открыть окно GUI и не возвратить ошибки на консоль.
http://www.graphviz.org/
После установки Graphviz, проверьте доступность dot
:
shell> which dot /usr/bin/dot shell> dot -V dot - graphviz version 2.28.0 (20130928.0220)
PLANTUML_JAR_PATH
к местоположению, где Вы устанавливали PlantUML. Например:
export PLANTUML_JAR_PATH=path-to-plantuml.jar
mkdir -p generated/doxygen doxygen
Осмотрите журнал ошибок. Это доступно в файле
doxyerror.log
каталога верхнего уровня.
Предполагая, что создание выполнено успешно, рассмотрите произведенный вывод,
используя браузер. Например:
firefox generated/doxygen/html/index.html
Вы можете использовать иной браузер.
Этот раздел обсуждает задачи, которые Вы должны выполнить после установки MySQL:
В случае необходимости, инициализируйте каталог данных и составьте таблицы привилегий MySQL. Для некоторых методов установки MySQL инициализация каталога данных может быть сделана для Вас автоматически:
Операции установки Windows, выполненные MySQL Installer, инициализируют каталог данных автоматически.
Для других платформ и типов установки, включая установку из общего двоичного дистрибутива и исходных текстов, Вы должны инициализировать каталог данных самостоятельно. Для инструкций см. раздел 2.9.1.
root
в таблицах
привилегий, если это не было уже сделано во время инициализации каталога
данных. Пароли предотвращают несанкционированный доступ к серверу MySQL. Для
инструкций см. раздел 2.9.4.
Когда Вы готовы создать дополнительные учетные записи пользователя, Вы можете найти информацию о системе управления доступом MySQL и ведении учеток в разделах 7.2 и 7.3.
После установки MySQL Вы должны инициализировать каталог данных, включая
таблицы в системной базе данных mysql
.
Для некоторых методов установки MySQL инициализация каталога данных может
быть сделана автоматически, как описано в
разделе 2.9. Для других методов
установки, включая установку из двоичного дистрибутива и исходных текстов, Вы
должны инициализировать каталог данных самостоятельно.
Этот раздел описывает, как инициализировать каталог данных на Unix и подобных Unix системах. Для Windows см. раздел 2.3.7. Для некоторых предложенных команд, которые Вы можете использовать для теста, является ли сервер доступным и рабочим должным образом см. раздел 2.9.3.
В примерах, показанных здесь, сервер работает в соответствии с
пользовательской учетной записью mysql
. Это предполагает, что
такая учетная запись существует. Создайте учетную запись, если она не
существует, или замените названием иной существующей учетной записью, которую
Вы планируете использовать для того, чтобы выполнить сервер. Для информации о
создании учетной записи см.
раздел 2.2.
Перейдите в верхний каталог Вашей установки MySQL,
представленный здесь BASEDIR
:
shell> cd BASEDIR
BASEDIR
вероятно, будет вроде
/usr/local/mysql
или /usr/local
. Следующие шаги
предполагают, что Вы изменили местоположение на этот каталог.
Вы найдете несколько файлов и подкаталогов в
BASEDIR
. Самые важные в целях установки
bin
и scripts
, которые содержат
сервер, клиент и утилиты.
secure_file_priv
,
которая ограничивает операции импорта/экспорта определенным каталогом. См.
раздел 6.1.5.
shell> mkdir mysql-files shell> chmod 750 mysql-files
mysql
. Если Вы устанавливали дистрибутив как
mysql
, ничего делать дополнительно не надо.
Если Вы устанавливали дистрибутив как root
,
его содержание будет принадлежать root
. Измените его
принадлежность на mysql
, выполняя следующие команды как
root
в каталоге установки. Первая команда изменяет признак
владельца файлов на mysql
. Вторая изменяет атрибут
группы на mysql
.
shell> chown -R mysql . shell> chgrp -R mysql .
mysql
, содержащую таблицы привилегий MySQL, которые
определяют, как пользователям разрешают соединиться с сервером.
Как правило, инициализация каталога данных должна быть сделана только в первый раз, когда Вы устанавливаете MySQL. Если Вы обновляете существующую установку, Вы должны выполнить mysql_upgrade (см. раздел 5.4.5). Однако, команда, которая инициализирует каталог данных, не перезаписывает существующих таблиц привилегий, таким образом, должно быть безопасно работать при любых обстоятельствах.
Используйте сервер, чтобы инициализировать каталог данных:
shell> bin/mysqld --initialize --user=mysql
shell> mysql_ssl_rsa_setup
Подробности в разделе 5.4.3.
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
, создаваемый ранее.
/etc/my.cnf
или
/etc/mysql/my.cnf
. Вы можете использовать такой файл, например,
чтобы установить переменную
secure_file_priv
. См.
раздел 6.1.2. Если Вы
не делаете этого, сервер запускается с его настройками по умолчанию.Инициализация каталога данных составляет таблицы часового пояса в
базе данных mysql
, но не заполняет их.
Чтобы сделать это, используйте инструкции в
раздел 11.6.
Этот раздел описывает, как инициализировать каталог данных, используя 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
,
чтобы перенаправить сообщения на консоль.
Сервер проверяет существование каталога данных:
Если каталог данных не существует, сервер создает его.
[ERROR] --initialize specified but the data directory exists. Aborting.
В этом случае удалите или переименуйте каталог данных и попробуйте еще раз.
Существующему каталогу данных разрешают быть непустым, если у каждой
записи в нем есть имя, которое начинается с точки (.
).
В пределах каталога данных сервер создает системную базу данных
mysql
и ее таблицы, включая таблицы привилегий, серверные
таблицы справки и таблицы часового пояса. Для полного списка и описания
таблиц см. раздел 7.2.
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.
Сервер создает учетную запись пользователя 'root'@'localhost'
. Действие сервера относительно пароля для этой учетной записи зависит
от того, как Вы вызываете это:
С --initialize
, но без
--initialize-insecure
сервер производит случайный пароль,
отмечает его как выдохшийся и пишет сообщение, выводящее на экран пароль:
[Warning] A temporary password is generated for root@localhost: iTag*AfrH5ej
--initialize-insecure
, (с или без
--initialize
,
так как
--initialize-insecure
подразумевает
--initialize
),
сервер не производит пароль и пишет предупреждающее сообщение:
[Warning] root@localhost is created with an empty password! Please consider switching off the --initialize-insecure option.
Сервер заполняет серверные таблицы справки, если контент доступен (в
файле fill_help_tables.sql
).
Сервер не заполняет таблицы часового пояса, чтобы сделать это, см.
раздел 11.6.
--init-file
была дана, чтобы назвать файл SQL, сервер выполняет запросы
в файле. Эта опция позволяет Вам выполнить пользовательские
последовательности начальной загрузки.
Когда сервер работает в режиме начальной загрузки, некоторая
функциональность недоступна, что ограничивает запросы, разрешенные в файле.
Они включают запросы, которые касаются ведения учетных записей (например,
CREATE USER
или
GRANT
), репликацию
и глобальные операционные идентификаторы.
После того, как Вы инициализируете каталог данных, запуская сервер с
--initialize
или
--initialize-insecure
, запускайте сервер обычно (то есть, без
любой из этих опций) и назначайте новый парполь для
'root'@'localhost'
:
Запустите сервер. Инструкции раздел 2.9.2.
Если Вы использовали
--initialize
,
но не
--initialize-insecure
, чтобы инициализировать каталог данных,
соединитесь с сервером как root
с использованием случайного
пароля, который сервер произвел во время последовательности инициализации:
shell> mysql -u root -p
Enter password: (enter the random root password here)
Смотрите в журнале ошибок сервера, если Вы не знаете этот пароль.
--initialize-insecure
, чтобы инициализировать каталог данных,
соединитесь с сервером как root
без пароля:
shell> mysql -u root --skip-password
После соединения, назначьте новый пароль root
:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'
;
Последовательность инициализации каталога данных, выполненная сервером, не заменяет действия, выполненные mysql_secure_installation или mysql_ssl_rsa_setup . См. разделы 5.4.2 и 5.4.3.
Этот раздел описывает, как запускают сервер на 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.
Этот раздел обеспечивает предложения по поиску неисправностей для проблем запуска сервера. Для дополнительных предложений для систем Windows см. раздел 2.3.6.
Если у Вас есть проблемы с запуском сервера, вот некоторые вещи, которые стоит попробовать:
Проверьте журнал ошибок,
чтобы видеть, почему сервер не запускается. Файлы системного журнала
расположены в каталоге данных
(обычно это C:\Program Files\MySQL\MySQL Server 8.0\data
в
Windows, /usr/local/mysql/data
в двоичных дистрибутивах
Unix/Linux и /usr/local/var
в дистрибутивах Unix/Linux из
исходных текстов). Смотрите в каталоге данных файлы с названиями формы
и
host_name
.err
, где
host_name
.loghost_name
название Вашего узла сервера. Исследуйте
последние несколько строк этих файлов. Полезно использовать tail
,
чтобы вывести их на экран:
shell> tailhost_name
.err shell> tailhost_name
.log
my.cnf
и определить опции запуска для механизмов, которые Вы планируете
использовать. Если Вы собираетесь использовать механизмы хранения, которые
поддерживают транзакционные таблицы (InnoDB
,
NDB
), убедитесь, что у Вас есть способ
сконфигурировать их прежде, чем запустить сервер. Если Вы используете
InnoDB
, см. подробности в разделах
16.6 и
16.13.
Хотя механизмы хранения используют значения по умолчанию для опций, которые Вы опускаете, Oracle рекомендует, чтобы Вы рассмотрели доступные параметры и определили явные значения для любых опций, значения по умолчанию которых не являются подходящими для Вашей установки.
Местоположение каталога данных по умолчанию вносится в исполняемый модуль
на шаге компиляции. Чтобы определить, каковы настройки пути по умолчанию,
вызовите mysqld
с опциями --verbose
и --help
. Если каталог данных расположен где-то в другом месте на Вашей системе,
определите то местоположение с помощью опции
--datadir
для
mysqld или
mysqld_safe
, в командной строке или в файле опции. Иначе сервер не будет работать
должным образом. Как альтернатива Вы можете определить
mysqld
местоположение основного каталога, в соответствии с которым MySQL установлен
с помощью опции --basedir
, mysqld
ищет каталог data
там.
Чтобы проверить эффект определения опций пути, вызовите
mysqld
с теми опциями, сопровождаемыми
--verbose
и
--help
.
Например, если Вы изменяете местоположение в каталог, где установлен
mysqld
и затем выполняете следующую команду, это показывает эффект запуска сервера с
основным каталогом /usr/local
:
shell> ./mysqld --basedir=/usr/local --verbose --help
Вы можете определить другие опции, например,
--datadir
, но
--verbose
и
--help
должны быть последними.
Как только Вы определите настройки пути, запустите сервер без
--verbose
и
--help
.
Если mysqld в настоящее время работает, Вы можете узнать, какие настройки пути он использует, выполняя эту команду:
shell> mysqladmin variables
Или:
shell> mysqladmin -h host_name
variables
host_name
название узла сервера MySQL.
Если Вы получаете Errcode 13
(Permission denied
)
при запуске mysqld
, это означает, что привилегии каталога данных или его содержания
не разрешают доступ серверу. В этом случае измените разрешения для
вовлеченных файлов и каталогов так, чтобы сервер имел право использовать их.
Вы можете также запустить сервер как root
,
но это поднимает вопросы безопасности.
Если каталог данных или его файлы или подкаталоги не принадлежат учетной
записи, которую Вы используете для того, чтобы выполнить сервер, измените их
владельца на ту учетную запись. Если учетную запись называют
mysql
, используйте эти команды:
shell> chown -R mysql /usr/local/mysql/var shell> chgrp -R mysql /usr/local/mysql/var
Даже с правильной принадлежностью, MySQL может быть не в состоянии запуститься, если есть другое защитное программное обеспечение, работающее на Вашей системе, которая управляет доступом приложения к различным частям файловой системы. В этом случае реконфигурируйте то программное обеспечение, чтобы позволить mysqld получить доступ к каталогам, которые это использует во время нормального функционирования.
Если любая из следующих ошибок происходит, это означает, что некоторая другая программа (возможно, другой сервер mysqld) использует порт TCP/IP или файл сокета Unix, который нужен mysqld:
Can't start server: Bind on TCP/IP port: Address already in use Can't start server: Bind on unix socket...
Примените ps, чтобы определить, есть ли у Вас другой запущенный mysqld . Если так, закройте сервер прежде, чем запустить mysqld снова. Если другой сервер работает, и Вы действительно хотите выполнить много серверов, Вы можете найти информацию о том, как это сделать в разделе 6.7.
Если никакой другой сервер не работает, выполните команду
telnet
. Значение по умолчанию для
порта MySQL 3306. Нажмите несколько раз Enter.
Если Вы не получаете сообщение об ошибке, подобное
your_host_name
tcp_ip_port_number
telnet: Unable to connect to remote host: Connection refused
,
некоторая другая программа использует порт TCP/IP, который нужен
mysqld.
Разыщите, какая это программа, и отключите ее, или скажите
mysqld
слушать другой порт опцией
--port
. В этом случае определите тот же самый номер порта для
программ клиента, соединяясь с сервером, используя TCP/IP.
Другая причина, по которой порт может быть недоступным, состоит в том, что у Вас есть брандмауэр, который блокирует соединения с ним. Если так, измените настройки брандмауэра, чтобы разрешить доступ к порту.
Если сервер запускается, но Вы не можете соединиться с ним, удостоверьтесь,
что у Вас есть запись в /etc/hosts
, похожая на это:
127.0.0.1 localhost
--debug
. См.
раздел 26.5.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.
Процесс установки MySQL вовлекает инициализацию каталога данных, включая
базу данных mysql
, содержащую таблицы привилегий, которые
определяют учетные записи MySQL. Для деталей см.
раздел 2.9.
Этот раздел описывает, как назначить пароль на начального пользователя
root
, созданного во время процесса установки MySQL, если Вы
еще не сделали этого.
В Windows Вы можете также выполнить процесс, описанный в этом разделе во время установки с MySQL Installer (см. раздел 2.3.3). На всех платформах дистрибутив MySQL включает mysql_secure_installation, утилиту командной строки, которая автоматизирует большую часть процесса обеспечения установки MySQL. Инструментальные средства MySQL доступны на всех платформах, и также предлагают способность управлять учетными записями пользователя (см. главу 28).
Пароль может уже быть назначен на начальную учетную запись при этих обстоятельствах:
В Windows установки, выполненные, используя MySQL Installer, дают Вам опцию назначения пароля.
Таблица 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
существует с начальным случайным паролем,
который истек, соединитесь с сервером как root
,
используя этот пароль, затем выберите новый пароль. Дело обстоит так, если
каталог данных был инициализирован, используя
mysqld --initialize
вручную или через использование установщика, который не дает Вам
опцию определения пароля во время работы установки. Поскольку пароль
существует, Вы должны использовать его, чтобы соединиться с сервером. Но
потому что пароль истек, Вы не можете использовать доступ ни для чего,
кроме как выбрать новый пароль.
Если Вы не знаете начального случайного пароля, смотрите в журнале ошибок сервера.
root
с использованием пароля:
shell> mysql -u root -p
Enter password: (enter the random root password here)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password
';
Если учетная запись root
существует, но не имеет никакого
пароля, соединитесь с сервером как root
не используя пароля,
затем назначьте пароль. Дело обстоит так, если Вы инициализировали каталог
данных, используя mysqld
--initialize-insecure.
Соединитесь с сервером как root
без использования пароля:
shell> mysql -u root --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password
';
После назначения пароля 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.
Этот раздел обсуждает методы для запуска и остановки сервера MySQL.
Вообще, Вы запускаете mysqld одним из этих способов:
Вызовите mysqld . Это работает на любой платформе.
/etc/init.d
и определенные каталоги на уровне
выполнения), вызовите
mysql.server. Этот скрипт
используется прежде всего при системном запуске и завершении работы. Это
обычно устанавливается под именем mysql
. Скрипт
mysql.server
запускает сервер, вызывая
mysqld_safe
. См. раздел 5.3.3.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- |
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.
Этот раздел описывает шаги, чтобы обновить или понизить версию MySQL.
Обновление общая процедура, поскольку Вы поднимаете исправления ошибок в пределах того же самого ряда выпуска 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
в командной строке, чтобы определить
пользователя MySQL root
root
. Команды, которые требуют пароля для
root
, также включают опцию -p
. Поскольку
-p
не сопровождается никаким значением опции, это запрос
для пароля. Введите пароль когда запрошено.
Запросы SQL могут быть выполнены, используя клиент
mysql
(соединитесь как root
, чтобы
гарантировать, что у Вас есть необходимые привилегии).
Поддержанные методы обновления включают:
Оперативное обновление: Вовлекает закрытие старой версии MySQL, замену старых двоичных файлов MySQL или пакетов на новые, перезапуск MySQL на существующем каталоге данных и выполнение mysql_upgrade .
Если Вы выполняете сервер 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.
Если иное не сказано, следующие пути обновления поддержаны:
Обновление от серийной версии выпуска GA до более новой серийной версии выпуска поддержано. Пропуск серийных версий выпуска также поддержан. В настоящее время нет никаких выпусков состояния GA для MySQL 8.0.
Для MySQL 8.0 требуется, чтобы Вы обновлли от MySQL 5.7 версий GA (5.7.9 или выше). Обновления от версий non-GA MySQL 5.7 не поддержаны.
Обновление больше, чем одного уровня выпуска поддержано, но только если Вы обновляете один уровень выпуска за один раз. Например, если Вы в настоящее время выполняете MySQL 5.6 и хотите обновить до более нового ряда, обновите до MySQL 5.7 сначала прежде, чем обновить до MySQL 8.0 и т.д. Для информации об обновлении до MySQL 5.7 см. MySQL 5.7 Reference Manual .
Следующие условия относятся ко всем путям обновления:
Обновления между релизами General Availability (GA) поддержаны.
Перед обновлением изучите следующую информацию и выполните рекомендуемые шаги:
Перед обновлением, защитите свои данные, создавая резервную
копию Ваших текущих баз данных и файлов системного журнала. Резервное
копирование должно включать системную базу данных mysql
,
которая содержит таблицы словаря данных MySQL и системные таблицы. См.
раздел 8.2.
Для списков переменных сервера MySQL и опций, которые были добавлены, устарели или удалены в MySQL 8.0, см. раздел 1.5. Если Вы используете какой-либо из этих элементов, обновление требует изменений конфигурации.
InnoDB
, выполните
XA RECOVER
прежде, чем обновить, чтобы проверить на нейтральные транзакции XA. Если
результаты есть, закройте или отмените транзакции через
XA COMMIT
или
XA ROLLBACK
.mysql
, плюс все другие базы данных без данных.
Выполните свою процедуру обновления на этом фиктивном случае, чтобы видеть,
какие действия могли бы быть необходимы так, чтобы Вы могли лучше оценить
работу, вовлеченную, выполняя фактическое преобразование данных на Вашем
оригинальном случае базы данных.mysql
, модуль Perl DBD::mysql
и
Python MySQLdb
.Прежде, чем запустить MySQL 8.0, чтобы обновить каталог данных, очень важно гарантировать готовность обновления Вашей установки при использовании Вашего MySQL 5.7, чтобы выполнить несколько предварительных проверок. Процесс обновления иначе может потерпеть неудачу.
Выполните предварительные проверки:
Не должно быть никаких таблиц, которые используют
устаревшие типы данных, таблиц InnoDB
, которые используют
неродное разделение, или триггеров, у которых отсутствует или пустое
определение или недопустимый контекст создания. Этот контекст обозначен
атрибутами character_set_client
, collation_connection
, Database Collation
, выведенными на экран
SHOW TRIGGERS
или в таблице
INFORMATION_SCHEMA
TRIGGERS
. Чтобы идентифицировать таблицы и триггеры, которые
подходят под эти требования, выполните эту команду:
mysqlcheck -u root -p --all-databases --check-upgrade
Если mysqlcheck сообщает о каких-либо ошибках, исправьте проблемы.
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;
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
).
Это может также повлечь за собой изменения приложений, которые
используют затронутые таблицы.
SELECT CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE LENGTH(CONSTRAINT_NAME) > 64;
Любые таблицы, о которых сообщает запрос, должны быть изменены, чтобы не
иметь имена ограничения больше, чем 64 символа (используя
ALTER TABLE
).
Таблицы, которые используют механизм хранения, не поддержанный в MySQL 8.0, должны быть изменены, чтобы использовать поддержанный механизм.
Пример: MySQL 8.0 еще не поддерживает MySQL Cluster, таким образом,
таблицы NDB
должны быть изменены, чтобы использовать
иной механизм хранения.
Пример: Поскольку словарь данных предоставляет информацию об объектах базы
данных, сервер больше не проверяет имена каталогов в каталоге данных, чтобы
найти базы данных. Следовательно, опция --ignore-db-dir
является устаревшей и была удалена. Чтобы обработать это, удалите любые
случаи применения --ignore-db-dir
из Вашей конфигурации запуска.
Кроме того, удалите или переместите названные подкаталоги каталога данных
прежде, чем обновить до MySQL 8.0. Альтернативно, позвольте серверам 8.0
добавлять те каталоги к словарю данных как базы данных, затем удалите каждую
из тех баз данных с использованием
DROP DATABASE
.
Этот раздел описывает, как выполнить оперативное обновление. Перед переходом иззучите раздел "Прежде, чем Вы начнете" и гарантируете, что Ваша установка готова к обновлению.
Если Вы обновляете установку, первоначально произведенную, устанавливая много пакетов RPM, обновляйте все пакеты, не только некоторые. Например, если Вы ранее устанавливали сервер и клиент, не обновляйте только RPM сервера.
Для систем Linux, на которых MySQL установлен, используя пакеты RPM, запуск сервера и завершение работы, управляется systemd, и mysqld_safe не установлен. Если Вы устанавливали MySQL на системе Linux, используя пакеты RPM, используйте systemd для запуска сервера и завершения работы вместо методов, используемых в следующих инструкциях. См. раздел 2.5.9.
Выполните оперативное обновление:
Рассмотрите изменения, описанные в разделе 2.10.1.1.
InnoDB
выполните ротацию главного ключа, выполняя этот запрос:
ALTER INSTANCE ROTATE INNODB MASTER KEY;
SET GLOBAL innodb_fast_shutdown = 0;
С медленным завершением работы InnoDB
выполняет полную чистку
и буферное слияние изменений перед закрытием, которое гарантирует, что
журналы отмены пусты, и файлы с данными полностью подготовлены в случае
различий в формате файла между выпусками.
mysqladmin -u root -p shutdown
Для поддержанных дистрибутивов Linux лучший метод для того, чтобы заменить пакеты MySQL, это использовать репозитарии программного обеспечения MySQL, см. раздел 2.10.1.2, раздел 2.10.1.3 или Upgrading MySQL with the MySQL SLES Repository.
Запустите MySQL 8.0, используя существующий каталог данных. Например:
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
Если там зашифрованы табличные пространства InnoDB
,
используйте опцию
--early-plugin-load
, чтобы загрузить плагин.
Сервер автоматически обнаруживает, присутствуют ли таблицы словаря данных.
В противном случае сервер создает их в каталоге данных, заполняет их
метаданными и затем возобновляет его нормальную последовательность запуска.
Во время этого процесса сервер обновляет метаданные для всех объектов базы
данных, включая базы данных, табличные пространства, систему и
пользовательские таблицы, представления и сохраненные программы (хранимые
процедуры и функции, триггеры и события планировщика событий). Сервер также
удаляет файлы, которые ранее использовались для хранения метаданных.
Например, после обновления, Вы заметите, что Ваши таблицы больше
не имеют файлов .frm
.
Если этот шаг прошел нормально, сервер выполняет уборку:
В каталоге данных сервер создает каталог, названный
backup_metadata_57
и перемещает в него файлы с именами
db.opt
и суффиксами .frm
, .par
,
.TRG
, .TRN
или .isl
. Это файлы, ранее
используемые для хранения метаданных.
Файлы в backup_metadata_57
сохраняют оригинальную иерархию
файловой системы. Например, если t1.frm
был расположен в
подкаталоге my_schema1
, сервер перемещает это в каталог
backup_metadata_57/my_schema1
.
mysql
сервер переименовывает таблицы
event
и proc
в
event_backup_57
и proc_backup_57
.Если этот шаг терпит неудачу, сервер возвращает все изменения каталога данных. В этом случае Вы должны удалить все файлы системного журнала redo, запустить MySQL 5.7 на том же самом каталоге данных и установить причину любых ошибок. Тогда выполните другое медленное завершение работы сервера 5.7 и запустите MySQL 8.0, чтобы попробовать еще раз.
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.
Закройте и перезапустите сервер 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.
Выполните логическое обновление:
Изучите изменения, описанные в разделе 2.10.1.1.
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
в
команду загрузки. Однако, в этом случае, будьте готовы видеть несколько
предупреждений, когда те две таблицы загружаются,
предупреждения нужно проигнорировать.
mysqladmin -u root -p shutdown
mysqld --initialize --datadir=/path/to/8.0-datadir
Скопируйте временный пароль для 'root'@'localhost'
,
выведенный на Ваш экран или написанный в Ваш журнал ошибок для
более позднего использования.
mysqld_safe --user=mysql --datadir=/path/to/8.0-datadir
Если там зашифрованы табличные пространства InnoDB
,
используйте опцию
--early-plugin-load
, чтобы загрузить плагин.
root
пароль:
shell> mysql -u root -p
Enter password: ****<- enter temporary root password
mysql> ALTER USER USER() IDENTIFIED BY 'your new password
';
mysql -u root -p --force < data-for-upgrade.sql
Если Вы не определяли опцию
--ignore-table
, чтобы подавить дамп таблиц mysql.event
и
mysql.proc
для команды
mysqldump,
они вновь появятся, когда Вы перезагрузите файл дампа.
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.
Закройте и перезапустите сервер MySQL, чтобы гарантировать, что любые изменения, произведенные в системных таблицах, вступают в силу. Например:
mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/8.0-datadir
Если проблемы происходят, и
mysqld
не запускает, проверьте, что у Вас нет старого файла my.cnf
от Вашей предыдущей установки. Вы можете проверить это с помощью опции
--print-defaults
(например,
mysqld --print-defaults
). Если эта команда выводит на экран что-нибудь кроме названия
программы, у Вас есть активный файл my.cnf
, который затрагивает
работу клиента или сервера.
Commands
out of sync
с собранными программами клиента или неожиданные дампы
памяти, Вы, вероятно, использовали старый заголовок или файлы библиотеки,
собирая Ваши программы. В этом случае проверьте дату Вашего файла
mysql.h
и библиотеки libmysqlclient.a
, чтобы
проверить, что они от нового дистрибутива MySQL. В противном случае повторно
соберите свои программы с новыми заголовками и библиотеками. Перекомпиляция
может также быть необходимой для программ, собранных с совместно используемой
библиотеки клиента, если старший номер версии библиотеки изменился (например,
с libmysqlclient.so.15
на libmysqlclient.so.16
).
DROP FUNCTION
,
чтобы удалить UDF, а затем CREATE
FUNCTION
, чтобы обновить UDF с иным непротиворечивым именем. То же
самое верно, если новая версия MySQL осуществляет встроенную функцию с тем же
самым именем, как существующая сохраненная функция. См.
раздел 10.2.4
для правил, описывающих, как сервер интерпретирует ссылки на
различные виды функций.Прежде, чем обновить до 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.
Incompatible change:
механизм хранения MySQL теперь ответственен за обеспечение его собственного
обработчика разделения, и сервер MySQL больше не оказывает поддержку
разделения. InnoDB
единственный механизм хранения, обеспечивающий родной обработчик разделения,
который поддержан в MySQL 8.0. Механизм хранения NDB
также оказывает родную поддержку разделения, но это еще не поддержано в MySQL
8.0. Разделенная таблица, используя любой другой механизм хранения должна
быть преобразована к InnoDB
, или надо удалить разделение
до обновления сервера.
Для информации о преобразовании таблицы MyISAM
к
InnoDB
см.
раздел 16.8.4.
Табличный запрос создания, который привело бы к разделенной таблице,
используя механизм хранения без такой поддержки, терпит неудачу с ошибкой
(ER_CHECK_NOT_IMPLEMENTED) в MySQL 8.0.
Если Вы импортируете базы данных из файла дампа, создаваемого в MySQL 5.7
(или ранее), используя
mysqldump
в MySQL 8.0, Вы должны удостовериться, что любые запросы, составляющие
разделенные таблицы, также не определяют неподдержанный механизм хранения,
удаляя любые ссылки на разделение или определяя механизм хранения как
InnoDB
. Допустимо установить InnoDB
как
значение по умолчанию.
Процедура, данная здесь, описывает, как идентифицировать разделенные таблицы, которые должны быть изменены прежде, чем обновиться до MySQL 8.0.
См. раздел 20.6.2 для дополнительной информации.
Incompatible change:
Есть различия в формате журнала redo поэтому, выполняя оперативное обновление
до MySQL 8.0 от MySQL 5.7 надо, чтобы MySQL 5.7 был закрыт, используя
innodb_fast_shutdown
= 0
перед обновлением. Требуется, чтобы Вы
обновлялись от версии GA MySQL 5.7, то есть, 5.7.9 или выше. Обновления от
версий non-GA MySQL 5.7 не поддержаны.
После обновления рекомендуется, чтобы Вы проверили подсказки оптимизатора, определенные в коде программы, чтобы гарантировать, что подсказки все еще достигают желаемой стратегии оптимизации. Улучшения оптимизатора могут иногда представлять определенные ненужные подсказки. В некоторых случаях ненужная подсказка может даже быть контрпроизводительной.
Для поддержанных платформ (см. раздел 2.5.1) Вы можете выполнить оперативное обновление для MySQL (то есть, заменяя старую версию и затем выполняя новую версию от старых файлов с данными) с репозитарием MySQL Yum.
Прежде, чем выполнить любое обновление MySQL, следуйте тщательно инструкциям в разделе 2.10.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.
Обновите MySQL и его компоненты следующей командой, для платформ, которые не dnf:
sudo yum update mysql-server
Для платформ dnf:
sudo dnf upgrade mysql-server
Альтернативно, Вы можете обновить MySQL, говоря Yum обновить все на Вашей системе, что могло бы занять значительно больше времени, для платформ, которые не dnf:
sudo yum update
Для dnf-систем:
sudo dnf upgrade
Сервер 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") и установить последние совместно используемые библиотеки, используя инструкции, данные здесь.
В 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.
Этот раздел описывает, как откатиться к более старой версии MySQL.
В следующем обсуждении команды MySQL, которые должны быть выполнены,
используя учетную запись MySQL с административными привилегиями, включают
опцию -u
в командной строке, чтобы определить
пользователя MySQL root
root
. Команды, которые требуют пароля для
root
, также включают опцию -p
. Так как
-p
не сопровождается никаким значением опции, пароль будет
запрошен по мере надобности явно.
Запросы SQL могут быть выполнены, используя клиент
mysql
(соединитесь как root
, чтобы
гарантировать, что у Вас есть необходимые привилегии).
Поддержанные методы включают:
Оперативный: Вовлекает закрытие новой версии MySQL, замену новых двоичных модулей или пакетов старыми и перезапуска старой версии MySQL на существующем каталоге данных. Оперативные откаты поддержаны между версиями GA в пределах того же самого ряда выпуска.
Если иначе не сказано, следующие пути поддержаны:
От серийной версии выпуска до более старой серийной версии выпуска, используя все методы.
Следующие условия относятся ко всем путям:
Откаты между выпусками статуса General Availability (GA).
Перед откатом рекомендуются следующие шаги:
Изучите Release Notes для версии MySQL, от которой Вы откатываетесь, чтобы гарантировать, что нет никаких особенностей или затруднительных положений, в которых Вы окажетесь.
Процедуры, описанные в следующих разделах, предполагают, что Вы откатываетесь с файлами с данными, создаваемыми или измененными более новой версией MySQL. Однако, если Вы не изменяли свои данные после того, как выполнили обновление, использование резервных копий, сделанных перед обновлением, рекомендуется. Многие из изменений описаны в разделе 2.10.2.1, требуют действия прежде или после того, как откат неприменим. Это приводит к необходимости применения резервных копий, сделанных перед обновлением.
Всегда поддерживайте резервные копии своих текущих баз данных и файлов
системного журнала перед откатом. Резервное копирование должно включать
базу данных mysql
, которая содержит системные таблицы MySQL. См.
раздел 8.2.
InnoDB
, запустите
XA RECOVER
перед откатом,
чтобы проверить на нейтральные транзакции XA. Если результаты возвращены,
выполните XA COMMIT
или
XA ROLLBACK
.Оперативные откаты поддержаны для переходов между выпусками состояния GA в пределах того же самого ряда выпуска.
Для поддержанного пути в пределах MySQL 8.0 рядов выпуска должно быть по крайней мере две доступных версии MySQL 8.0 состояния GA.
Для систем Linux, на которых MySQL установлен, используя пакеты RPM, запуск сервера и завершение работы управляется systemd, и mysqld_safe не установлен. Если Вы устанавливали MySQL на системе Linux, используя пакеты RPM, используйте systemd для запуска сервера и завершения работы вместо методов, используемых в следующих инструкциях. См. раздел 2.5.9.
Выполнить оперативный откат:
Изучите изменения, описанные разделе 2.10.2.1 для понимания шагов, которые будут выполнены перед понижением версии.
innodb_fast_shutdown
в 0
. Например:
mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
С медленным завершением работы InnoDB
выполняет полную чистку
и буферное слияние изменений перед закрытием, которое гарантирует, что файлы
с данными полностью подготовлены в случае различий в формате
файла между выпусками.
mysqladmin -u root -p shutdown
InnoDB
redo (файлы ib_logfile*
) из каталога
data
, чтобы избежать проблем отката, связанных с тем, что
файл системного журнала внесет изменения, которые, возможно,
произошли между выпусками.
rm ib_logfile*
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
mysql_upgrade -u root -p
mysql_upgrade исследует все таблицы во всех базах данных для несовместимостей с текущей версией 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.
Выполните логический откат:
Рассмотрите изменения, описанные в разделе 2.10.2.1 для понимания шагов, которые будут выполнены перед понижением версии.
mysqldump -u root -p --add-drop-table --routines --events --all-databases --force > data-for-downgrade.sql
mysqladmin -u root -p shutdown
mysqld --initialize --user=mysql
mysqld_safe --user=mysql --datadir=/path/to/new-datadir
mysql -u root -p --force < data-for-upgrade.sql
mysql_upgrade -u root -p
mysql_upgrade исследует все таблицы во всех базах данных для выявления несовместимостей с текущей версией MySQL и пытается восстановить таблицы, если проблемы найдены.
mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/new-datadir
Если Вы понижаете от одного ряда выпуска до другого, в табличных форматах хранения могут быть несовместимости. В этом случае используйте mysqldump, чтобы вывести Ваши таблицы в дамп перед понижением. После понижения перезагрузите файл дампа, используя mysql или mysqlimport , чтобы обновить Ваши таблицы. Для примеров см. раздел 2.10.5.
Типичный признак нисходящего несовместимого изменения формата таблицы: Вы не можете открыть таблицы. В этом случае используйте следующую процедуру:
Остановите более старый сервер MySQL, к которому Вы понижаете версию.
Прежде, чем понизить версию от MySQL 8.0, рассмотрите изменения, описанные в этом разделе. Некоторые изменения могут потребовать действия прежде или после понижения версии.
Incompatible change: прежде, чем
выполнить оперативный откат от MySQL 8.0 к 5.7, Вы должны завершить работу
MySQL, используя установку
innodb_fast_shutdown
в 0
или 1
,
сопровождаемую удалением файлов системного журнала redo (файлы
ib_logfile*
).
Двоичное обновление устанавливает одну версию MySQL по существующей версии, не выводя в дамп и не перезагружая таблицы:
Остановите сервер для существующей версии, если он работает.
Во многих случаях, таблицы от предыдущей версии MySQL могут использоваться без проблем новой версией. Однако, иногда изменения происходят, которые требуют восстановления таблиц или индексов. Если у Вас есть таблицы, которые затронуты любыми такими проблемами, восстановите таблицы или индексы по мере необходимости с использованием инструкций, данных в разделе 2.10.4.
Модификации обработки наборов символов или сопоставлений могли бы изменить символьный порядок сортировки, который вызывает упорядочивание записей в любом индексе, который использует затронутый набор символов или сопоставление. Такие изменения приводят к нескольким возможным проблемам:
Результаты сравнения, которые отличаются от предыдущих результатов
ORDER BY
CHECK TABLE
помечает как нуждающиеся в ремонтеРешение этих проблем состоит в том, чтобы восстановить любой индекс, использующий затронутый набор символов или сопоставление, удалить и обновить индекс или вывести в дамп и перезагрузить всю таблицу. В некоторых случаях возможно изменить затронутые столбцы, чтобы использовать иное сопоставление. Подробности о пересоздании индексов см. в 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.
Этот раздел описывает, как восстановить таблицу, после таких изменений
MySQL как типы данных или наборы символов. Например, ошибка в сопоставлении,
возможно, была исправлена, требуя, чтобы таблица восстановилась, чтобы
обновить индексирование для символьных столбцов, которые используют
сопоставление. Для примеров см.
раздел 2.10.3.
Вы, возможно, также должны были бы восстановить или обновить таблицу,
обозначенную при выполнении
CHECK TABLE
,
mysqlcheck
или mysql_upgrade
.
Методы для того, чтобы восстановить таблицу включают дамп и перезагрузку
или использование ALTER TABLE
или REPAIR TABLE
.
REPAIR TABLE
относится только
к таблицам типов MyISAM
, ARCHIVE
и
CSV
.
Если Вы восстанавливаете таблицы, потому что версия MySQL не будет обрабатывать их после двоичного (оперативного) обновления, Вы должны использовать метод дампа-и-перезагрузки. Выведите таблицы в дамп до обновления, с использованием Вашей оригинальной версии MySQL. Затем перезагрузите таблицы после обновления.
Если Вы используете метод дампа-и-перезагрузки восстановления таблиц только с целью восстановления индексов, Вы можете выполнить дамп прежде или после обновления. Перезагрузка все еще должна быть сделана позже.
Чтобы восстановить таблицу, выводя в дамп и перезагружая ее, используйте mysqldump для создания дампа и mysql , чтобы перезагрузить файл:
mysqldumpdb_name
t1 > dump.sql mysqldb_name
< dump.sql
Чтобы восстановить все таблицы в единственной базе данных, определите имя базы данных без любого имени таблицы:
mysqldumpdb_name
> dump.sql mysqldb_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
В случаях, когда Вы должны передать базы данных между различными архитектурами, Вы можете использовать mysqldump, чтобы создать файл, содержащий запросы SQL. Вы можете тогда передать файл другой машине и ввести его через клиент mysql.
Используйте mysqldump --help, чтобы видеть, какие опции доступны.
Самый легкий (хотя не самый быстрый) способ переместить базу данных между двумя машинами, это выполнить следующие команды на машине, на которой расположена база данных:
mysqladmin -h 'other_hostname
' createdb_name
mysqldumpdb_name
| mysql -h 'other_hostname
'db_name
Если Вы хотите скопировать базу данных с удаленной машины по медленной сети, Вы можете использовать эти команды:
mysqladmin createdb_name
mysqldump -h 'other_hostname
' --compressdb_name
| mysqldb_name
Вы можете также сохранить дамп в файле, передать файл целевой машине и затем загрузить файл в базу данных там. Например, Вы можете вывести базу данных в сжатый файл на исходной машине:
mysqldump --quickdb_name
| gzip >db_name
.gz
Передайте файл, содержащий содержание базы данных к целевой машине, и выполните эти команды:
mysqladmin createdb_name
gunzip <db_name
.gz | mysqldb_name
Вы можете также использовать
mysqldump и
mysqlimport
, чтобы передать базу данных. Для больших таблиц это намного быстрее, чем
простое использование
mysqldump.
В следующих командах DUMPDIR
представляет полный путь каталога, который Вы используете, чтобы сохранить
вывод mysqldump
.
Создайте каталог для выходных файлов и выведите в дамп базу данных:
mkdirDUMPDIR
mysqldump --tab=DUMPDIR
db_name
Передайте файлы в каталоге DUMPDIR
к некоторому соответствующему каталогу на целевой машине и загрузите
файлы в MySQL там:
mysqladmin createdb_name
# create database catDUMPDIR
/*.sql | mysqldb_name
# create tables in database mysqlimportdb_name
DUMPDIR
/*.txt # load data into tables
Не забывайте скопировать базу данных mysql
, потому что это
то место, где таблицы привилегий сохранены. Вам, возможно, придется выполнить
команды как MySQL-пользователь root
на новой машине, пока Вы не
имеете базу данных mysql
.
После того, как Вы импортируете базу данных mysql
на
новой машине, выполните
mysqladmin flush-privileges, чтобы сервер перезагрузил
информацию о таблице привилегий.
Модуль 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.
Поддержка 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, используйте такую процедуру:
Распакуйте дистрибутив в текущий каталог:
shell> gunzip < DBI-VERSION
.tar.gz | tar xvf -
Эта команда создает каталог
DBI-
.VERSION
shell> cd DBI-VERSION
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-.
В Windows Вы должны сделать следующее, чтобы установить MySQL модуль
DBD
с ActiveState Perl:
Скачать ActiveState Perl с http://www.activestate.com/Products/ActivePerl/ и поставить его.
HTTP_proxy
. Например, Вы могли бы
попробовать такую установку:
C:\> set HTTP_proxy=my.proxy.com:3128
C:\> C:\perl\bin\ppm.pl
DBI
:
ppm> install DBI
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";
Если Perl сообщает, что не может найти модуль
../mysql/mysql.so
, проблема состоит, вероятно в том, что Perl не
может определить местонахождение совместно используемой библиотеки
libmysqlclient.so
. Вы должны быть в состоянии решить эту
проблему одним из следующих методов:
Скопируйте libmysqlclient.so
в каталог, где
расположены Ваши другие совместно используемые библиотеки (вероятно, это
/usr/lib
или /lib
).
-L
при сборке DBD::mysql
, чтобы
отразить фактическое местоположение libmysqlclient.so
.libmysqlclient.so
в файл /etc/ld.so.conf
.libmysqlclient.so
к переменной
LD_RUN_PATH
. Некоторые системы используют вместо этого
LD_LIBRARY_PATH
.Отметьте, что Вы, возможно, также должны изменить опцию -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.