Инструкция по установке MySQL на FreeBSD 11
MySQL — одна из самых заслуженно популярных систем управления базами данных (СУБД). Особенно часто она применяется для хранения данных веб-сайтов различной сложности, так как сочетает в себе простоту установки и первоначальной настройки с высокой функциональностью и неприхотливостью использования. Из-за своей популярности она включена в стандартные репозитории большинства дистрибутивов Linux, а также в систему портов FreeBSD. Разумеется присутствует и версия для OC Windows.
Существует две редакции MYSQL — платная (enterprise) и бесплатная (community). Первая существует также в нескольких вариантах, отличающихся стоимостью и набором поддерживаемых функциональных возможностей. Подробнее об этом рассказывается на официальном сайте MySQL.
В большинстве же случаев обычно хватает бесплатной версии от сообщества (Community) которую можно также скачать с официального сайта MySQL. Там же есть и дополнительные утилиты и коннекторы (драйверы) для MySQL.
В операционных системах семейства FreeBSD также существует пакетный менеджер — система управления пакетами — называющаяся pkg. Она достаточно проста в обращении, благодаря этому, установить Mysql во FreeBSD насколько же просто, как и в других ОС (Windows, Linux).
Для этого необходимо выполнить следующие операции.
Обновить базу данных пакетов командой pkg update для того, чтобы у нас была самая свежая версия пакетов.
root@freebsd11:~ # pkg update Updating FreeBSD repository catalogue... Fetching meta.txz: 100% 944 B 0.9kB/s 00:01 Fetching packagesite.txz: 100% 6 MiB 1.1MB/s 00:06 Processing entries: 100% FreeBSD repository update completed. 31153 packages processed. root@freebsd11:~ #
Находим нужный нам пакет командой pkg search mysql. Так как мы устанавливаем серверную часть MySQL — mysql-server то отфильтруем вывод с помощью утилиты grep.
root@freebsd11:~ # pkg search mysql | grep server geoserver-mysql-plugin-2. 12.1 MySQL DataStore implementation for GeoServer mydns-mysql-1.1.0_7 DNS server designed to utilize the MySQL database mysql-udf-0.3_2 Set of user-defined functions for the MySQL server mysql55-server-5.5.60 Multithreaded SQL database (server) mysql56-server-5.6.40 Multithreaded SQL database (server) mysql57-server-5.7.22 Multithreaded SQL database (server) mysql80-server-8.0.2_1 Multithreaded SQL database (server) mysqld_exporter-0.10.0_1 Prometheus exporter for MySQL server metrics mysqlwsrep56-server-5.6.39 MySQL database enhanced with Galera replication (server package) mysqlwsrep57-server-5.7.21 MySQL database enhanced with Galera replication (server package) root@freebsd11:~ #
Выберем версию MySQL и установим его также командой pkg install <имя пакета>, т.е в нашем случае пишем pkg install mysql57-server-5.7.22
Система проведет подготовительные операции и спросит хотим ли мы установить этот пакет — скажем да (Y).
pkg install mysql57-server-5.7.22 Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 6 package(s) will be affected (of 0 checked): New packages to be INSTALLED: mysql57-server: 5.7.22 curl: 7.60.0 libnghttp2: 1.31.1 protobuf: 3.5.1.1 mysql57-client: 5.7.22_1 cyrus-sasl: 2.1.26_13 Number of packages to be installed: 6 The process will require 213 MiB more space. 20 MiB to be downloaded. Proceed with this action? [y/N]: pkg install mysql57-server-5.7.22 Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 6 package(s) will be affected (of 0 checked): New packages to be INSTALLED: mysql57-server: 5.7.22 curl: 7.60.0 libnghttp2: 1.31.1 protobuf: 3.5.1.1 mysql57-client: 5.7.22_1 cyrus-sasl: 2.1.26_13 Number of packages to be installed: 6 The process will require 213 MiB more space. 20 MiB to be downloaded. Proceed with this action? [y/N]:
На этом этапе менеджер пакетов сообщит нам какой объем информации ему необходимо скачать из интернета и попросит нашего согласия — также ответим положительно.
New packages to be INSTALLED: libnghttp2: 1.31.1 curl: 7.60.0 protobuf: 3.5.1.1 cyrus-sasl: 2.1.26_13 mysql57-client: 5.7.22_1 mysql57-server: 5.7.22 Number of packages to be removed: 1 Number of packages to be installed: 6 The process will require 148 MiB more space. Proceed with this action? [y/N]:
На этом установка завершена. Для того, чтобы СУБД запускалась при старте системы добавляем mysql_enable=»YES» к файлу /etc/rc. conf echo ‘mysql_enable=»YES»‘ >> /etc/rc.conf
Запускаем MySQL
root@freebsd11:/usr/local # service mysql-server start
Starting mysql.
Проверяем, что он запустился.
service mysql-server status
Если выходит ошибка вида
/usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql
То необходимо очистить каталог /var/db/mysql/* и заново проинициализировать MySQL. Для этого введем следующие команды:
rm -rf /var/db/mysql/*
Команда rm удаляет файлы или папки. Ключ -f говорит о том, что команда не должна спрашивать подтверждение данного действия (используйте данный ключ с большой осторожностью, так как в отличие от ОС Windows в системах Linux/Unix корзины нет). Ключ -r означает что необходимо также удалять и вложенные каталоги.
Далее необходимо проинициализировать MySQL.
Для этого запускаем команду mysql_secure_installation
Securing the MySQL server deployment. Connecting to MySQL server using password in '/root/.mysql_secret' VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: Y
Программа спрашивает, запустить ли плагин проверки валидности пароля (соответствия требованиям безопасности) — включаем, нажав Y, и выбираем правила сложности:
- low — длина пароля не менее 8 символов
- medium — тоже что и low, плюс пароль должен содержать цифры, символы разных регистров и специальные символы, такие как $# и т.д.
- strong — тоже что и medium плюс не должно быть словарных слов.
Выберем вариант medium нажав 1.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
После задания паролей система спрашивает запретить ли доступ анонимных пользователей — скажем да, запретить.
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) :
Запретить ли пользователю root логиниться удаленно — обычно да, запрещают по соображениям безопасности, так как у этого пользователя неограниченные права на доступ в СУБД.
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Убрать ли тестовые базы. Скажем, например, нет.
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N
Перезагрузить таблицу привилегий — это таблица прав доступа
Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
После этого настройка завершена и можно попробовать соединиться с нашей базой данных консольным клиентом командой mysql -u root -p. Если все сделано правильно, то вы успешно войдете в систему.
- -u ключ, указывающий каким пользователем логиниться. По умолчанию у нас есть только root
- -p ключ, требующий ввода пароля. После него можно указать сам пароль в текстовом виде, но это небезопасно, и так никто не делает.
root@freebsd11:~ # mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.7.13-log Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@localhost [(none)]>
Можно, например, посмотреть список имеющихся БД командой show databases;.
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.7.13-log Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@localhost [(none)]> show databases; +------------------------------+ | Database | +------------------------------+ | information_schema | | mysql | | performance_schema | | sys | +-----------------------------+ 4 rows in set (0.00 sec) root@localhost [(none)]>
На этом установка MySQL на FreeBSD 11 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Linux, а если вы ищете надежный виртуальный сервер под управлением Linux, обратите внимания на нашу услугу — Аренда виртуального сервера на базе Linux.
Заказать сервер на Linux
Настройка MySQL на отдельном сервере с локальной сетью VPS — Раздел помощи
Внутри локальной сети на VPS — можно вынести базу данных MySQL на отдельный сервер. При таком варианте работы, сервер обрабатывает запросы MySQL через частное подключение.
Распределение ресурсов между виртуальными машинами может понадобиться, если база данных использует значительное количество ресурсов сервера. При использовании отдельного сервера для базы данных, появляется возможность выделить практически все ресурсы для работы базы данных без ущерба работы остальных сервисов.
Рассмотрим ниже конкретный пример, будем устанавливать подключение для CMS WordPress в Ubuntu 20.04
- Подготовительный этап
- Установка и настройка MySQL сервера
- Установка CMS WordPress
Подготовительный этап:
В первую очередь необходимо:
- Перейти в панель управления SpaceWeb и заказать две виртуальные машины. Для удобства назовем их как VPS_MYSQL (на нем будет располагаться база данных) и VPS_WP (на нем будет располагаться сайт)
- На VPS_WP устанавливаем образ Ubuntu 20.04 и связку LEMP(NGINX, MySQL и PHP). Для VPS_MYSQL — Ubuntu 20.04
- Подключить VPS_MYSQL и VPS_WP к локальной сети по инструкции
Установка и настройка MySQL сервера:
- Подключитесь с помощью ssh к VPS_MYSQL
- Выполните установку MySQL сервера:
sudo apt-get update
sudo apt-get install mysql-server
- Установите root пароль к MySQL. Для этого нужно подключиться к MySQL серверу и выполнить команду:
mysql -u root
- Выполнить команду для смены пароля, где PASSWORD ваш выбранный пароль:
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘PASSWORD’;
- Далее нужно применить изменения:
mysql> FLUSH PRIVILEGES;
- Откройте конфигурационный файл MySQL:
sudo nano /etc/mysql/mysql. conf.d/mysqld.cnf
В конфигурационном файле найдите секцию [mysqld] и поменяйте значения переменных bind-address и mysqlx-bind-address. Вместо 127.0.0.1 укажите IP-адрес VPS_MYSQL внутренней сети.
- Сохраните изменения в файле и выполните перезапуск MySQL-сервера:
sudo systemctl restart mysql
- Подключитесь к MySQL:
mysql -u root -p
В случае успешного подключения вы увидите приглашение в терминале для ввода команды.
- Создайте базу данных:
CREATE DATABASE local_test;
- Создайте пользователей для локального подключения к базе данных:
CREATE USER ‘localuser’@’localhost’ IDENTIFIED BY ‘password’;
где localuser логин и password пароль
- Задайте права на изменения в базе данных:
GRANT ALL PRIVILEGES ON local_test.* TO ‘localuser’@’localhost’;
- Создайте пользователя для удалённого подключения. В качестве хоста нужно указать локальный IP, присвоенный VPS_WP.
Для этого пользователя мы должны указать IP, с которого будет производиться подключение к БД, то есть не IP хоста, на котором расположена сама БД:
CREATE USER ‘dediuser’@’10.0.0.22’ IDENTIFIED BY ‘password’;
- где dediuser логин для удаленного подключения password пароль и 10.0.0.22 IP-адрес с которого будет производиться подключение к БД
- Этому пользователю также нужно задать права:
GRANT ALL PRIVILEGES ON local_test.* TO ‘dediuser’@’10.0.0.22’;
- Чтобы применить измения выпоните команду:
FLUSH PRIVILEGES;
Теперь можно выйти выпонив в консоли exit
Протестируем подключение к локальной базе данных:
mysql -u localuser -p
Если подключение было выполнено без ошибок можно выйти: exit
- Протестируем подключение удаленной базе данных. Перейдите на VPS_WP и подключитесь к базе данных на VPS_MYSQL:
mysql -u dediuser -h 10.16.0.3 -p
после ключа -h укажите адрес машины VPS_MYSQL 10.0.0.20
Если подключение завершается ошибкой:
ERROR 1130 (HY000): Host ‘10.0.0.20’ is not allowed to connect to this MySQL server
Вероятнее всего на VPS_MYSQL не был перезапущен сервер MySQL
Установка CMS WordPress:
- Подключитесь к VPS_WP скачайте пакет установки WordPress с официального сайта:
wget https://wordpress.org/latest.tar.gz
- Распакуйте загруженый архив:
tar xzvf latest.tar.gz
- Сделайте копию файла конфигурации CMS и переименуйте, чтобы WordPress смог корректно работать:
cp wordpress/wp-config-sample.php wordpress/wp-config.php
- Откройте файл wp-config.php и укажите данные для подключения к БД:
nano wordpress/wp-config.php
Нужно изменить значение переменных:
- DB_NAME — имя БД;
- DB_USER — имя пользователя базы данных для удалённого подключения к ней;
- DB_PASSWORD — пароль от базы;
- DB_HOST — локальный IP VPS_MYSQL;
Выполните сохранение файла и закройте его
- Скопируйте папку CMS WordPress в корневую папку nginx:
sudo cp -a wordpress/* /var/www/html
- Для корректной обработки данных nginx, измените владельца на www-data:
sudo chown -R www-data:www-data /var/www/html
- Откройте файл /etc/nginx/sites-enabled/default и добавьте для обработки index. php в строку под комментарием:
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
- Перезагрузите nginx:
systemctl restart nginx
- Перейдите в браузер в адресной строке, обратитесь к установочному файлу http://внешний-ip-адрес-VPS_WP/wp-admin/install.php Должна открыться страница установки WordPress.
- Выберите язык, далее «Продолжить», заполните необходимые данные в форме. Скопируйте пароль от панели админитрирования сайтом.
Проект полностью развернут.
Настройка репликации master-slave в MySQL
Репликация — механизм синхронизации содержимого нескольких копий объекта. Под этим процессом понимается копирование данных из одного источника на множество других и наоборот.
Обозначения:
master
— главный сервер, данные которого необходимо дублировать;replica
— починенный сервер, хранящий копию данных главного
Для настройки репликации в MySQL необходимо выполнить ниже описанную последовательность действий, но это не догма и параметры могут изменяться в зависимости от обстоятельств.
На главном сервере отредактируем файл файл my.cnf, в секцию mysqld добавить строки:
server-id = [master server id] log-bin = mysql-bin log-bin-index = mysql-bin.index log-error = mysql-bin.err relay-log = relay-bin relay-log-info-file = relay-bin.info relay-log-index = relay-bin.index expire_logs_days=7 binlog-do-db = [dbname]
Где
[master server id]
— уникальный идентификатор сервера MySQL, число в диапазоне 2(0-31)[dbname]
— имя базы, информация о которой будет писаться в бинарный журнал, если баз несколько, то для каждой необходима отдельная строка с параметромbinlog_do_db
На подчиненном отредактируем файл файл my.cnf, в секцию mysqld добавить строки:
server-id = [slave server id] master-host = master master-user = replication master-password = password master-port = 3306 relay-log = relay-bin relay-log-info-file = relay-log. info relay-log-index = relay-log.index replicate-do-db = [dbname]
На главном сервере добавим пользователя replication
с правами на репликацию данных:
GRAANT REPLICATION SLAVE ON *.* TO 'replication'@'replica' IDENTIFIED BY 'password'
Заблокируем реплицируемые базы на главном сервере от изменения данных, программно или с помощью функционала MySQL:
mysql@master> FLUSH TABLES WITH READ LOCK; mysql@master> SET GLOBAL read_only = ON;
Для разблокировки используется команда:
mysql@master> SET GLOBAL read_only = OFF;
Сделаем резервные копии всех баз данных на главном сервере (или тех которые нам необходимы):
root@master# tar -czf mysqldir.tar.gz /var/lib/mysql/[dbname]
или средствами утилиты mysqldump
:
root@master# mysqldump -u root -p --lock-all-tables [dbname] > dbdump.sql
Остановим оба сервера (в отдельных случаях можно обойтись и без этого):
root@master# mysqlamdin -u root -p shutdown root@replica# mysqlamdin -u root -p shutdown
Восстановим реплицируемые базы данных на подчиненном сервере с помощью копирования директории. Перед началом репликации базы данных должны быть одинаковы:
root@replica# cd /var/lib/mysql root@replica# tar -xzf mysqldir.tar.gz
или функционала mysql, тогда mysql на подчиненном сервере не было необходимости останавливать:
root@replica# mysql -u root -p [dbname] < dbdump.sql
Запустим mysql на главном сервере (а затем — на подчиненном, если это необходимо):
root@master# /etc/init.d/mysql start root@replica# /etc/init.d/mysql start
Проверим работы главного и подчиненного серверов:
mysql@replica> start slave; mysql@replica> SHOW SLAVE STATUS\G mysql@master> SHOW MASTER STATUS\G
На подчиненном сервере проверить логи в файле master.info, там должны содержаться запросы на изменение данных в базе. Так этот файл бинарный необходимо сначала преобразовать его в текстовый формат:
root@replica# mysqlbinlog master.info > master_info.sql
При возникновении ошибок, можно использовать команды:
mysql@replica> stop slave; mysql@replica> RESET SLAVE; mysql@master> RESET MASTER;
и повторить все действия начиная с блокировки баз данных.
Для горячего добавления серверов репликации можно использовать синтаксис:
mysql@replica> SHOW SLAVE STATUS\G mysql@master> SHOW MASTER STATUS\G mysql@replica-2> CHANGE MASTER TO MASTER_HOST = "master", MASTER_USER ="replication ", MASTER_PASSWORD = "password ", MASTER_LOG_FILE ="mysql-bin.000004 ", MASTER_LOG_POS = 155; mysql@replica-2> START SLAVE;
Информация из статусов покажет позицию и имя текущего файла лога.
В случае асинхронной репликации обновление одной реплики распространяется на другие спустя некоторое время, а не в той же транзакции. Таким образом, при асинхронной репликации вводится задержка, или время ожидания, в течение которого отдельные реплики могут быть фактически неидентичными. Но у данного вида репликации есть и положительные моменты: главному серверу не надо беспокоится о синхронизации данных, можно блокировать базу (например, для создания резервной копии) на подчиненной машине, без проблем для пользователей.
Список использованных источников
- Habrahabr.ru — Основы репликации в MySQL (http://habrahabr.ru/blogs/mysql/56702/)
- Википедия (http://ru.wikipedia.org/wiki/Репликация_(вычислительная_техника))
При полном или частичном использовании любых материалов с сайта вы обязаны явным образом указывать ссылку на handyhost.ru в качестве источника.
2.3 Установка MySQL в Microsoft Windows
- 2.3.1 Схема установки MySQL в Microsoft Windows
- 2.3.2 Выбор пакета установки
- 2.3.3 Установщик MySQL для Windows
- 2.3.4 Установка MySQL в Microsoft Windows с помощью
noinstall
ZIP-архив - 2.3.5 Устранение неполадок при установке Microsoft Windows MySQL Server
- 2.3.6 Процедуры после установки Windows
- 2.3.7 Ограничения платформы Windows
Важно
MySQL Community 5.7 Server требует Microsoft Распространяемый пакет Visual C++ 2019 для работы в Windows платформы. Пользователи должны убедиться, что пакет был установлен в системе перед установкой сервера. Пакет доступны в Майкрософт Центр загрузки.
Это требование со временем менялось: MySQL 5.7.37 и ниже. требуется распространяемый пакет Microsoft Visual C++ 2013, MySQL 5.7.38 и 5.7.39требуют оба, и только Microsoft Начиная с MySQL, требуется распространяемый пакет Visual C++ 2019. 5.7.40.
MySQL доступен для Microsoft Windows, как для 32-разрядной, так и для 64-разрядной версии. версии. Информацию о поддерживаемой платформе Windows см. https://www.mysql.com/support/supportedplatforms/database.html.
Важно
Если ваша операционная система — Windows 2008 R2 или Windows 7, и вы не установлен пакет обновления 1 (SP1), MySQL 5.7 регулярно перезагружается со следующим сообщением на сервере MySQL файл журнала ошибок:
mysqld получил исключение 0xc000001d
Это сообщение об ошибке возникает из-за того, что вы также используете ЦП, не поддерживает инструкцию VPSRLQ, что указывает на то, что ЦП инструкция, которая была предпринята, не поддерживается.
Чтобы исправить эту ошибку, вам необходимо установить SP1. Этот добавляет необходимую поддержку операционной системы для возможностей ЦП обнаружение и отключает эту поддержку, когда ЦП не имеет необходимые инструкции.
В качестве альтернативы установите более старую версию MySQL, например 5.6.
Существуют различные способы установки MySQL в Microsoft Windows.
Метод установки MySQL
Самый простой и рекомендуемый способ — загрузить установщик MySQL (для Windows) и позволить ему установить и настроить все продукты MySQL. в вашей системе. Вот как:
Загрузите установщик MySQL с https://dev.mysql.com/downloads/installer/ и выполнить его.
Примечание
В отличие от стандартного установщика MySQL, меньшая версия «веб-сообщества» не связывает никакие приложения MySQL, а скорее загружает продукты MySQL, которые вы решили установить.
Выберите подходящий тип установки для вашего система. Обычно вы должны выбрать Разработчик По умолчанию устанавливается сервер MySQL и другие инструменты MySQL. связанные с разработкой MySQL, полезные инструменты, такие как MySQL Workbench. Вместо этого выберите тип пользовательской настройки, чтобы вручную выберите желаемые продукты MySQL.
Примечание
Несколько версий сервера MySQL могут существовать на одном сервере. система. Вы можете выбрать одну или несколько версий.
Завершите процесс установки, следуя инструкциям. Эта установка нескольких продуктов MySQL и запуск MySQL сервер.
Теперь MySQL установлен. Если вы настроили MySQL как службу, то Windows автоматически запускает сервер MySQL при каждом перезапуске ваша система.
Примечание
Вы, вероятно, также установили другие полезные продукты MySQL, такие как MySQL Workbench в вашей системе. Рассмотрим загрузку Глава 29, MySQL Workbench для проверки вашего нового сервера MySQL подключение По умолчанию эта программа автоматически запускается после установка MySQL.
Этот процесс также устанавливает приложение MySQL Installer в вашей системе и позже вы можете использовать установщик MySQL для обновления или перенастройки вашего MySQL товары.
Дополнительная информация по установке
MySQL можно запускать как стандартное приложение или как Служба Windows. Используя службу, вы можете отслеживать и контролировать работа сервера через стандартную службу Windows инструменты управления. Для получения дополнительной информации см. Раздел 2.3.4.8, «Запуск MySQL как службы Windows».
Как правило, вы должны установить MySQL в Windows, используя учетную запись, которая
имеет права администратора. В противном случае могут возникнуть проблемы с
некоторые операции, такие как редактирование ПУТЬ
переменная среды или доступ к Service Control
Менеджер . При установке MySQL не нужно
выполняется пользователем с правами администратора.
Список ограничений на использование MySQL в Windows платформу, см. раздел 2.3.7, «Ограничения платформы Windows».
В дополнение к пакету MySQL Server вам может понадобиться или вы захотите дополнительные компоненты для использования MySQL с вашим приложением или среда разработки. К ним относятся, но не ограничиваются:
Чтобы подключиться к серверу MySQL с помощью ODBC, у вас должен быть Драйвер коннектора/ODBC. Для получения дополнительной информации, в том числе инструкции по установке и настройке см. Руководство разработчика MySQL Connector/ODBC.
Примечание
Установщик MySQL устанавливает и настраивает Connector/ODBC для вас.
Чтобы использовать сервер MySQL с приложениями .NET, вы должны иметь Драйвер коннектора/сети. Для получения дополнительной информации, включая установку и инструкции по настройке см. в Руководстве разработчика MySQL Connector/NET.
Примечание
Установщик MySQL устанавливает и настраивает MySQL Connector/NET для вас.
Дистрибутивы MySQL для Windows можно скачать с https://dev.mysql.com/downloads/. Видеть Раздел 2.1.3, «Как получить MySQL».
MySQL для Windows доступен в нескольких форматах дистрибутива, подробно здесь. Вообще говоря, вы должны использовать MySQL Installer. Это содержит больше функций и продуктов MySQL, чем в более старой версии MSI, проще использования, чем сжатый файл, и вам не нужны дополнительные инструменты для запустить MySQL. Установщик MySQL автоматически устанавливает сервер MySQL и дополнительные продукты MySQL, создает файл опций, запускает server и позволяет создавать учетные записи пользователей по умолчанию. Для большего информацию о выборе пакета см. Раздел 2.3.2, «Выбор установочного пакета».
Дистрибутив установщика MySQL включает сервер MySQL и дополнительные продуктов, включая MySQL Workbench. Установщик MySQL также можно использовать для обновить эти продукты в будущем.
Инструкции по установке MySQL с помощью установщика MySQL см. Раздел 2.3.3, «Установщик MySQL для Windows».
Стандартный бинарный дистрибутив (упакованный в виде сжатого файла) содержит все необходимые файлы, которые вы распаковываете в свой выбранное место. Этот пакет содержит все файлы в полный пакет установщика Windows MSI, но не включает программа установки.
Инструкции по установке MySQL с использованием сжатого файла см. см. Раздел 2.3.4, «Установка MySQL в Microsoft Windows с помощью
noinstall
ZIP-архив».Исходный формат дистрибутива содержит весь код и поддержку файлы для сборки исполняемых файлов с помощью Visual Studio система компилятора.
Инструкции по сборке MySQL из исходного кода в Windows см. Раздел 2.9, «Установка MySQL из исходников».
Рекомендации по работе с MySQL в Windows
Подставка для большого стола
Если вам нужны таблицы размером более 4 ГБ, установите MySQL в файловой системе NTFS или более новой. Не забудьте использовать
MAX_ROWS
иAVG_ROW_LENGTH
при создании таблиц. Видеть Раздел 13.1.18, «Выражение CREATE TABLE».Примечание
Файлы табличного пространства InnoDB не могут превышать 4 ГБ в 32-разрядной версии Windows. системы.
MySQL и проверка на вирусы Программное обеспечение
Программное обеспечение для сканирования на вирусы, такое как Norton/Symantec Anti-Virus на каталоги, содержащие данные MySQL и временные таблицы, могут вызвать проблемы, как с точки зрения производительности MySQL, так и программное обеспечение для сканирования на вирусы, ошибочно идентифицирующее содержимое файлов как содержащие спам. Это связано с механизмом снятия отпечатков пальцев. используемый программным обеспечением для сканирования на вирусы, и способ, которым MySQL быстро обновляет различные файлы, которые могут быть идентифицированы как потенциальный риск безопасности.
После установки MySQL Server рекомендуется отключить сканирование на вирусы в основном каталоге (
datadir
) используется для хранения вашего Данные таблицы MySQL. Обычно в систему встроена программное обеспечение для сканирования на вирусы, позволяющее проверять определенные каталоги. игнорируется.Кроме того, по умолчанию MySQL создает временные файлы в стандартный временный каталог Windows. Для предотвращения временного файлы также сканируются, настройте отдельный временный каталог для временных файлов MySQL и добавьте этот каталог в список исключений сканирования на вирусы. Для этого добавьте вариант конфигурации для
параметр tmpdir
на вашфайл конфигурации my. ini
. Для большего информацию см. в разделе 2.3.4.2, «Создание файла опций».Запуск MySQL в жестком секторе 4K Диск
Запуск сервера MySQL на жестком диске с сектором 4 КБ в Windows не поддерживается с
innodb_flush_method=async_unbuffered
, что является настройкой по умолчанию. Обходной путь заключается в использованииinnodb_flush_method=нормальный
.
B.3.3.2 Как сбросить пароль root
B.3.3.2 Как сбросить пароль root
Если вы никогда не назначали пароль root
для MySQL сервер вообще не требует пароля для
подключение как root
. Однако это
ненадежный. Инструкции по назначению пароля см.
Раздел 2.10.4, «Защита исходной учетной записи MySQL».
Если вы знаете пароль root
и хотите
изменить его, см. раздел 13.7.1.1, «Заявление ALTER USER» и
Раздел 13.7.1.10, «Заявление SET PASSWORD».
Если ранее вы назначали пароль root
но забыли его, вы можете назначить новый пароль.
следующие разделы содержат инструкции для Windows и Unix
и Unix-подобные системы, а также общие инструкции, которые
применимы к любой системе.
B.3.3.2.1 Сброс корневого пароля: Системы Windows
В Windows используйте следующую процедуру для сброса
пароль для MySQL 'root'@'localhost'
учетная запись. Чтобы изменить пароль для учетная запись root
с другим именем хоста
часть, измените инструкции, чтобы использовать это имя хоста.
Войдите в свою систему как администратор.
Остановите сервер MySQL, если он запущен. Для сервера который работает как служба Windows, перейдите в раздел Службы менеджер: В меню «Пуск» выберите Панель управления, затем Административные инструменты, затем Услуги. Найдите MySQL службу в списке и остановите ее.
Если ваш сервер не работает как служба, вам может понадобиться использовать диспетчер задач, чтобы принудительно остановить его.
Создайте текстовый файл, содержащий назначение пароля заявление в одну строку. Замените пароль на пароль, который вы хотите использовать.
ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost' ИДЕНТИФИКАЦИЯ 'MyNewPass';
Сохраните файл. В этом примере предполагается, что вы называете файл
C:\mysql-init.txt
.Откройте окно консоли, чтобы перейти к командной строке: From меню «Пуск», выберите Запустите, затем введите cmd в качестве команды для запуска.
Запустите сервер MySQL с помощью
init_file
система переменная, заданная для имени файла (обратите внимание, что обратная косая черта в опции значение удваивается):C:\> cd "C:\Program Files\MySQL\MySQL Server 8. 0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
Если вы установили MySQL в другое место, настройте cd команда соответственно.
Сервер выполняет содержимое файла, названного система
init_file
переменная при запуске, изменяя'root'@'localhost'
пароль учетной записи.Чтобы выходные данные сервера отображались в окне консоли а не в файл журнала, добавьте
--опция console
для команда mysqld .Если вы установили MySQL с помощью установки MySQL Wizard, вам может потребоваться указать
--defaults-file
опция. Например:С:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8. 0\\my.ini" --init-file=C:\\mysql-init.txt
Соответствующий
--файл по умолчанию
настройка можно найти с помощью диспетчера служб: из меню «Пуск», выберите Панель управления, затем Административные инструменты, затем Услуги. Найдите MySQL службы в списке, щелкните ее правой кнопкой мыши и выберитеСвойства
опция. Путьв исполняемый файл
поле содержит--defaults-file
настройка.После успешного запуска сервера удалите
C:\mysql-init.txt
.
Теперь вы сможете подключиться к серверу MySQL как root
используя новый пароль. Остановить
Сервер MySQL и перезапустите его в обычном режиме. Если вы запускаете сервер
как службу, запустите ее из окна служб Windows. Если
вы запускаете сервер вручную, используйте любую команду, которую вы
нормально пользуюсь.
B.3.3.2.2 Сброс пароля root: Unix и Unix-подобные системы
В Unix используйте следующую процедуру для сброса пароля
для учетной записи MySQL 'root'@'localhost'
.
Чтобы изменить пароль для учетной записи root
с другой частью имени хоста, измените инструкции на
использовать это имя хоста.
В инструкциях предполагается, что вы запускаете сервер MySQL из
учетная запись входа в Unix, которую вы обычно используете для ее запуска.
Например, если вы запускаете сервер с помощью учетная запись mysql
, вы должны войти как mysql
перед использованием инструкций.
Кроме того, вы можете войти в систему как root
,
но в этом случае вы должны начать mysqld с --user=mysql
вариант. если ты
запустите сервер как root
без использования --user=mysql
, сервер может
создать корневых
файлов в данных
каталог, например файлы журналов, и это может привести к
проблемы, связанные с разрешениями для будущих запусков сервера. Если
случае, вы должны либо изменить владельца
файлы до mysql
или удалите их.
Войдите в свою систему как пользователь Unix, сервер работает как (например,
mysql
).Остановите сервер MySQL, если он запущен. Найдите
.pid
файл, содержащий идентификатор процесса сервера. Точное местонахождение и название этого зависит от вашего дистрибутива, имени хоста и конфигурация. Общие места/var/lib/mysql/
,/var/run/mysqld/
и/usr/local/mysql/данные/
. В общем, имя файла имеет расширение.pid
и начинается сmysqld
или имя хоста вашей системы.Остановите сервер MySQL, отправив обычный
убить
(неубить -9
) к mysqld процесс. Используйте фактический путь к файлу.pid
в следующая команда:$> kill `cat /mysql-data-directory/host_name.pid`
Используйте обратные кавычки (не прямые кавычки) с Команда
кот
. Они вызывают выводкат.
заменить на Командаубить
.Создайте текстовый файл, содержащий назначение пароля заявление в одну строку. Замените пароль на пароль, который вы хотите использовать.
ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost' ИДЕНТИФИКАЦИЯ 'MyNewPass';
Сохраните файл. В этом примере предполагается, что вы называете файл
/home/me/mysql-init
. Файл содержит пароль, поэтому не сохраняйте его там, где он может быть прочитано другими пользователями. Если вы не вошли в систему какmysql
(пользователь, от имени которого работает сервер), убедитесь, что файл имеет разрешения, позволяющиеmysql
, чтобы прочитать его.Запустите сервер MySQL с помощью
init_file
система переменная, заданная для имени файла:$> mysqld --init-file=/home/me/mysql-init &
Сервер выполняет содержимое файла, названного
init_file
система переменная при запуске, изменяя'root'@'localhost'
пароль учетной записи.Могут потребоваться и другие опции, в зависимости от того, как вы обычно запускаете свой сервер. Например,
--defaults-file
может быть необходимо доinit_file
аргумент.После успешного запуска сервера удалите
/home/me/mysql-инит
.
Теперь вы сможете подключиться к серверу MySQL как root
используя новый пароль. Остановить
сервер и перезапустите его в обычном режиме.
B.3.3.2.3 Сброс пароля root: общие инструкции
В предыдущих разделах описана процедура сброса пароля. инструкции специально для Windows и Unix и Unix-подобных системы. Кроме того, на любой платформе вы можете сбросить пароль с помощью клиент mysql (но это подход менее безопасен):
При необходимости остановите сервер MySQL, а затем перезапустите его с помощью
--skip-grant-tables
вариант. Это позволяет любому подключиться без пароль и со всеми привилегиями, и отключает отчеты по управлению счетом, такие какИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ
иУСТАНОВИТЬ ПАРОЛЬ
. Потому что это небезопасно, если сервер запускается с--skip-grant-tables
вариант, он также отключает удаленные подключения, включивпропуск_сети
.Подключиться к серверу MySQL с помощью клиент mysql ; пароль не необходимо, потому что сервер был запущен с
--skip-grant-tables
:$> MySQL
В
клиент mysql
, сообщите серверу перезагрузить таблицы грантов, чтобы управление учетными записями операторы работают:mysql> FLUSH PRIVILEGES;
Затем измените
'root'@'localhost'
пароль от аккаунта. Замените пароль на пароль что вы хотите использовать. Чтобы изменить пароль дляучетная запись root
с другим хостом часть имени, измените инструкции для использования этого хоста имя.mysql> ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost' ИДЕНТИФИКАЦИЯ 'MyNewPass';
Теперь вы сможете подключиться к серверу MySQL как root
используя новый пароль. Остановить
сервер и перезапустите его в обычном режиме (без --skip-grant-tables
опция
и без включения skip_networking
система
переменная).
6.2.8 Добавление учетных записей, назначение прав и удаление учетных записей
6.2.8 Добавление учетных записей, назначение прав и удаление учетных записей
Для управления учетными записями MySQL используйте операторы SQL, предназначенные для этого. цель:
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
иDROP USER
создание и удаление учетные записи.ГРАНТ
иREVOKE
назначить привилегии и отозвать привилегии с учетных записей.SHOW GRANTS
отображает учетную запись назначения привилегий.
Операторы управления учетными записями заставляют сервер делать соответствующие изменения базовых таблиц грантов, которые обсуждаются в Разделе 6.2.3, «Таблицы грантов».
Примечание
Прямая модификация таблиц привилегий с использованием таких операторов, как ВСТАВКА
, ОБНОВЛЕНИЕ
, или УДАЛИТЬ
не рекомендуется и делается в
на свой страх и риск. Сервер может игнорировать строки, которые становятся
деформируется в результате таких модификаций.
Для любой операции, которая изменяет таблицу разрешений, сервер проверяет имеет ли таблица ожидаемую структуру и производит ли ошибка, если нет. Чтобы обновить таблицы до ожидаемой структуры, выполните процедуру обновления MySQL. Видеть Раздел 2.11, «Обновление MySQL».
Другой вариант создания учетных записей — использовать инструмент с графическим интерфейсом.
Верстак MySQL. Кроме того, несколько сторонних программ предлагают возможности
для администрирования учетной записи MySQL. phpMyAdmin
это
одна такая программа.
В этом разделе обсуждаются следующие темы:
Создание учетных записей и привилегий предоставления
Проверенные счета Привилегии и свойства
Привилегии счетов
Dropping
Создание учетных записей и предоставление привилегий
В следующих примерах показано, как использовать клиентская программа mysql для настройки новых учетных записей.
В этих примерах предполагается, что MySQL root
учетная запись имеет СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
привилегия и все привилегии, которые она предоставляет другим учетным записям.
В командной строке подключитесь к серверу как MySQL пользователь root
, указав соответствующий пароль
при запросе пароля:
$> mysql -u корень -p Введите пароль: (здесь введите пароль root)
После подключения к серверу вы можете добавлять новые аккаунты.
в следующем примере используется CREATE USER
Заявления
и GRANT
для настройки четырех учетных записей (где вы видите '
,
замените соответствующий пароль): пароль
'
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'finley'@'localhost' ОПРЕДЕЛЕН ' пароль '; ПРЕДОСТАВИТЬ ВСЕ НА *. * TO 'finley'@'localhost' С ПРЕДОСТАВЛЕНИЕМ ВАРИАНТА; СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ 'finley'@'%.example.com' ОПРЕДЕЛЕН ' пароль '; ПРЕДОСТАВИТЬ ВСЕ НА *.* TO 'finley'@'%.example.com' С ПРЕДОСТАВЛЕНИЕМ ВАРИАНТА; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'admin'@'localhost' ОПРЕДЕЛЕН ' пароль '; ПРЕДОСТАВИТЬ ПЕРЕЗАГРУЗКУ,ПРОЦЕСС НА *.* TO 'admin'@'localhost'; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'dummy'@'localhost';
Учетные записи, созданные этими операторами, имеют следующие характеристики:
Две учетные записи имеют имя пользователя
finley
. Оба являются учетными записями суперпользователя с полными глобальными привилегиями для Делать что-нибудь.'finley'@'localhost'
учетную запись можно использовать только при подключении с локального хозяин.'finley'@'%.example.com'
учетная запись использует подстановочный знак'%'
на хосте часть, поэтому его можно использовать для подключения с любого хоста вдомен example. com
.Учетная запись
'finley'@'localhost'
необходимо, если есть учетная запись анонимного пользователя длялокальный хост
. Без'finley'@'localhost'
аккаунт, который учетная запись анонимного пользователя имеет приоритет, когдаfinley
подключается с локального хоста иfinley
рассматривается как анонимный пользователь. Причина этого в том, что учетная запись анонимного пользователя имеет точнееHost
значение столбца, чем'finley'@'%'
учетная запись и таким образом приходит ранее в порядке сортировки таблицыпользователей
. (Для получения информации опользовательской таблице
сортировка, см. Раздел 6.2.6, «Контроль доступа, Этап 1: Проверка подключения».)Учетная запись
'admin'@'localhost'
может быть используется толькоadmin
для подключения с местный хост. Ему предоставляется глобальныйПЕРЕЗАГРУЗКА
иПРОЦЕСС
административный привилегии. Эти привилегии позволяютадминистратор
пользователь для выполнения mysqladmin перезагрузить , mysqladmin обновить и mysqladmin flush-xxx
команды, как а также список процессов mysqladmin . Нет привилегии предоставляются для доступа к любым базам данных. Ты можно добавить такие привилегии, используяГРАНТ
заявлений.У учетной записи
'dummy'@'localhost'
нет пароль (что небезопасно и не рекомендуется). Этот учетную запись можно использовать только для подключения с локального хоста. Нет привилегии предоставляются. Предполагается, что вы предоставляете определенные привилегии для учетной записи, используяГРАНТ
заявлений.
В предыдущем примере привилегии предоставляются на глобальном уровне.
В следующем примере создаются три учетные записи и предоставляется им доступ в
нижние уровни; то есть к конкретным базам данных или объектам внутри
базы данных. Каждая учетная запись имеет имя пользователя custom
, но части имени хоста отличаются:
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'custom'@'localhost' ОПРЕДЕЛЕН ' пароль '; ПРЕДОСТАВИТЬ ВСЕ НА банковский счет.* TO 'custom'@'localhost'; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'custom'@'host47.example.com' ОПРЕДЕЛЕН ' пароль '; ПРЕДОСТАВИТЬ ВЫБОР, ВСТАВИТЬ, ОБНОВИТЬ, УДАЛИТЬ, СОЗДАТЬ, УДАЛИТЬ НА расходы.* TO 'custom'@'host47.example.com'; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'custom'@'%.example.com' ОПРЕДЕЛЕН ' пароль '; ПРЕДОСТАВИТЬ ВЫБОР, ВСТАВИТЬ, ОБНОВИТЬ, УДАЛИТЬ, СОЗДАТЬ, УДАЛИТЬ ПО клиентам.адреса TO 'custom'@'%.example.com';
Три счета можно использовать следующим образом:
Учетная запись
'custom'@'localhost'
имеет все привилегии уровня базы данных для доступа кбанковский счет
база данных. Аккаунт может быть используется для подключения к серверу только с локального хоста.Учетная запись
'custom'@'host47.example.com'
имеет определенные привилегии на уровне базы данных для доступа красходы
БД. Аккаунт может быть используется для подключения к серверу только с хостаhost47.example.com
.Учетная запись
'custom'@'%.example.com'
имеет определенные привилегии на уровне таблицы для доступа кадресов
таблицы вклиентская база данных
с любого хоста вдомен example.com
. Аккаунт может быть используется для подключения к серверу со всех машин в домен из-за использования%
подстановочный знак символ в основной части имени учетной записи.
Проверка привилегий и свойств учетной записи
Чтобы увидеть привилегии для учетной записи, используйте ПОКАЗАТЬ ГРАНТЫ
:
mysql> ПОКАЗАТЬ ГРАНТЫ ДЛЯ 'admin'@'localhost'; +------------------------------------------------- ----+ | Гранты для admin@localhost | +------------------------------------------------- ----+ | GRANT RELOAD, ПРОЦЕСС НА *.* TO `admin`@`localhost` | +------------------------------------------------- ----+
Чтобы просмотреть непривилегированные свойства учетной записи, используйте ПОКАЗАТЬ СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
:
mysql> SET print_identified_with_as_hex = ON; mysql> ПОКАЗАТЬ СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'admin'@'localhost'\G *************************** 1-й ряд ********************** ******* СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ для admin@localhost: СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ `admin`@`localhost` ИДЕНТИФИКАЦИЯ С 'caching_sha2_password' КАК 0x24412430303524301D0E17054E2241362B1419313C3E44326F294133734B30792F436E77764270373039612E32445250786D43594F45354532324B6169794F47457852796E32 НЕ ТРЕБУЕТСЯ ВВОД ПАРОЛЯ СРОК ИСЧЕЗНЕНИЯ УЧЕТНАЯ ЗАПИСЬ ПО УМОЛЧАНИЮ РАЗБЛОКИРОВКА ИСТОРИЯ ПАРОЛЯ ПО УМОЛЧАНИЮ ИНТЕРВАЛ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ ПАРОЛЯ ПО УМОЛЧАНИЮ ТРЕБУЕТСЯ ПАРОЛЬ ТЕКУЩИЙ ПО УМОЛЧАНИЮ
Включение print_identified_with_as_hex
системная переменная (доступна с MySQL 8. 0.17) вызывает SHOW CREATE USER
для отображения хеша
значения, которые содержат непечатаемые символы, как шестнадцатеричные
строк, а не как обычные строковые литералы.
Отзыв привилегий учетной записи
Чтобы отозвать привилегии учетной записи, используйте REVOKE
заявление. Привилегии могут
могут быть отозваны на разных уровнях, точно так же, как они могут быть предоставлены на
разные уровни.
Отменить глобальные привилегии:
ОТМЕНИТЬ ВСЕ НА *.* FROM 'finley'@'%.example.com'; ОТМЕНИТЬ ПЕРЕЗАГРУЗИТЬ НА *.* ОТ 'admin'@'localhost';
Отменить привилегии уровня базы данных:
ОТМЕНА СОЗДАНИЯ, УДАЛЕНИЕ НА расходы.* FROM 'custom'@'host47.example.com';
Отменить привилегии на уровне таблицы:
ОТМЕНИТЬ ВСТАВКУ, ОБНОВЛЕНИЕ, УДАЛЕНИЕ ПО клиентам.адреса FROM 'custom'@'%.