Как настроить mariadb в винде. Установка MariaDB в Windows. Переход с MySQL на MariaDB в Windows. Тип хранения данных по умолчанию

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

Thick (Толстый)

  • Lazy Zeroed — Все пространство такого диска выделяется в момент создания, при этом блоки не очищаются от данных, которые находились там ранее. При первом обращении виртуальной машины к новому блоку происходит его очистка. Таким образом, эти диски более безопасны, однако при первом обращении к блоку — теряется производительность системы ввода-вывода на операцию очистки. При последующих обращениях — производительность идентична дискам типа Eager zeroed thick. Этот тип диска создается по умолчанию через VMware vSphere Client для виртуальных машин. Преимущество дисков Zeroed thick disks — безопасность и быстрота создания, недостаток — производительность при первом обращении к блоку.
  • Eager Zeroed — Все пространство такого диска выделяется в момент создания, при этом блоки очищаются от данных, которые находились там ранее. Далее происходит обычная работа с блоками без очистки. Преимущество такого диска — производительность и безопасность, недостаток — долгое время создания.

Thin (Тонкий)

  • Эти диски создаются минимального размера и растут по мере их наполнения данными до выделенного объема. При выделении нового блока — он предварительно очищается. Эти диски наименее производительны (выделение нового блока и его очистка), однако наиболее оптимальны для экономии дискового пространства на системе хранения данных.

Рассмотрим способы расширения дискового пространства для обоих типов дисков.

Все операции выполняются на выключенной виртуальной машине.

Увеличение размера Thin Provision диска

К примеру виртуальный диск имеет объем 32Gb, необходимо расширить его до 50Gb. Увеличение размера диска с помощью командной строки. Подключаемся по SSH к ESXi, выполняем команду:

Vmkfstools -X 50G /vmfs/volumes/datastore3/test/test.vmdk Grow: 100% done.

Так же расширить объем Thin Provision диска, можно через vShpere . Вызываем свойства виртуальной машины, выбираем нужный виртуальный диск и в разделе Disk Provisioning указываем новый размер жесткого диска (прим. 50Gb ).

Результат расширения виртуального диска:

Увеличение размера Thiсk Provision (Lazy Zeroed/Eager Zeroed) диска

Процедура увеличения размера виртуального диска Thick Provision (Lazy Zeroed/Eager Zeroed ) выполняется в командной строке ESXi. Подключаемся по SSH к ESXi и выполняем команду:

Vmkfstools -X 6G -d eagerzeroedthick /vmfs/volumes/datastore3/test/test.vmdk Grow: 100% done.All data on "/vmfs/volumes/datastore3/test/test.vmdk" will be overwritten with zeros from sector <10485760> onwards. Zeroing: 100% done.

Я решил отказаться от использования MySQL, а точнее полностью перевести все свои сервера на ее форк — MariaDB. Пользуясь случаем, хочу рассказать о процессе установки MariaDB 10.1 в Debian 8. Следует отметить, что краткое описание установки MariaDB есть на официальной странице проекта. Я решил выделить этому вопросу отдельный пост, в котором хочу описать необходимые действия после установки MariaDB на сервере.

Перед началом установки MariaDB необходимо добавить ее репозиторий. На сайте MariaDB рекомендуют для этого установить пакет software-properties-common . Я не вижу в этом никакого смысла и предпочитаю все делать вручную.

Регистрируем GPG-ключ репозитория в системе:

Apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Добавляем описание репозитория в файл sources.list . Открываем файл в редакторе nano:

Nano /etc/apt/sources.list

Копируем в конец следующие строки:

Deb http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main deb-src http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main

Обновляем список доступных пакетов:

Apt-get update

Запускаем процесс установки MariaDB 10.1:

Apt-get install mariadb-server

Во время установки нас попросят ввести пароль для пользователя root . На этом процесс установки MariaDB в Debian 8 закончен. А теперь переходим к настройке сервера.

Чтобы повысить надежность нашего сервера, нужно выполнить минимальные требования безопасности. Запретить авторизацию под пользователем root с удаленных хостов. При наличии базы test и пользователя anonymous , нужно удалить их с сервера. Чтобы облегчить задачу используйте скрипт:

Mysql_secure_installation

Тип хранения данных по умолчанию

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

Default-storage-engine = innodb

Убедитесь, что MariaDB использует таблицы InnoDB по умолчанию. Для этого выполните команду:

SHOW ENGINES;

Создать пользователя и базу MariaDB

Чтобы создать пользователя в MariaDB используйте команду ниже:

CREATE USER "USER_NAME"@"localhost" IDENTIFIED BY "PASSWORD";

Создаем новую базу:

CREATE DATABASE database_name;

Даем полные права пользователю USER_NAME на базу databasename:

GRANT ALL PRIVILEGES ON database_name.* TO "USER_NAME"@"localhost";

Теперь нужно обновить все привилегии:

FLUSH PRIVILEGES

Для просмотра привилегий выполните команду:

SHOW GRANTS FOR "USER_NAME"@"localhost";

Бинарные логи

MariaDB записывает все изменения БД в бинарный журнал, он необходим для работы механизма репликации. Если вы не делали бэкапов или они устарели, бинарные логи можно использовать для восстановления данных. Впрочем, нет никакой гарантии, что данные будут полностью или частично восстановлены. Успех будет зависеть от размера, времени хранения бинарных логов, частоты выполнения бэкапа.

Для отключения бинарных логов, комментируем строки в файле my.cnf:

#log_bin = /var/log/mysql/mariadb-bin #log_bin_index = /var/log/mysql/mariadb-bin.index

| |

1: Установка MariaDB

Debian 9 содержит пакет MariaDB 10.1 в стандартном репозитории. Это его вариант MySQL по умолчанию.

Чтобы установить его, обновите индекс пакетов:

Теперь установите пакет:

sudo apt install mariadb-server

Команда установит MariaDB, но не предложит вам выбрать пароль или изменить другие настройки. На данный момент установка MariaDB имеет несколько уязвимостей, которые нужно устранить.

2: Настройка MariaDB

После завершения установки нужно запустить сценарий безопасности, который удалит ненадёжные параметры и защитит БД от несанкционированного доступа.

sudo mysql_secure_installation

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

В следующем запросе скрипт предложит настроить пароль root для базы данных. Введите N и нажмите клавишу Enter. В Debian учетная запись root MariaDB тесно связана с автоматизированным обслуживанием системы, поэтому изменять стандартные методы аутентификации этой учетной записи нельзя. Иначе при обновлении пакета БД может повредиться, а доступ к учетной записи root может быть утрачен. Позже мы рассмотрим, как настроить дополнительную учетную запись администратора, если аутентификация сокетов вам не подходит.

На остальные вопросы можно нажать Y и Enter. Это удалит анонимных пользователей и тестовые базы данных, отключит удалённый root логин и обновит текущие настройки MariaDB.

3: Настройка поддержки парольной аутентификации

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

Поскольку сервер использует root-пользователя для таких задач, как ротация логов, запуск и остановка сервера, аутентификацию учетной записи root лучше не изменять. Изменение учетных данных в файле /etc/mysql/debian.cnf может сработать на начальном этапе, но дальнейшие обновления пакетов перезапишут эти изменения. Вместо этого разработчики рекомендуют создать отдельную учетную запись администратора с парольной аутентификацией.

Итак, создайте аккаунт под названием admin с теми же правами, что и у root, но с поддержкой парольной аутентификации. Для этого откройте командную строку MariaDB в терминале:

Теперь создайте нового пользователя с привилегиями root и поддержкой парольной аутентификации. Укажите в команде имя и пароль своего пользователя.

GRANT ALL ON *.* TO "admin"@"localhost" IDENTIFIED BY "password" WITH GRANT OPTION;

Сбросьте привилегии:

FLUSH PRIVILEGES;

Закройте оболочку MariaDB:

4: Тестирование MariaDB

При установке из стандартного репозитория MariaDB запускается автоматически. Чтобы убедиться в этом, проверьте состояние сервиса:

sudo systemctl status mariadb
mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-09-04 16:22:47 UTC; 2h 35min ago
Process: 15596 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSIT
Process: 15594 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Process: 15478 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||
Process: 15474 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITI
Process: 15471 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysql
Main PID: 15567 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 4915)
CGroup: /system.slice/mariadb.service
└─15567 /usr/sbin/mysqld
Sep 04 16:22:45 deb-mysql1 systemd: Starting MariaDB database server...
Sep 04 16:22:46 deb-mysql1 mysqld: 2018-09-04 16:22:46 140183374869056 /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process 15567 ...
Sep 04 16:22:47 deb-mysql1 systemd: Started MariaDB database server.

Если СУБД по какой-то причине не запустилась, введите:

sudo systemctl start mariadb

Для дополнительной проверки вы можете попробовать подключиться к базе данных с помощью инструмента mysqladmin (это клиент, который позволяет запускать административные команды). Например, эта команда подключится к MariaDB как root и выведет версию с помощью Unix-сокета:

sudo mysqladmin version
mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Server version 10.1.26-MariaDB-0+deb9u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 2 hours 44 min 46 sec
Threads: 1 Questions: 36 Slow queries: 0 Opens: 21 Flush tables: 1 Open tables: 15 Queries per second avg: 0.003

Если вы создали дополнительного администратора, вы можете выполнить эту операцию с помощью команды:

mysqladmin -u admin -p version

СУБД MariaDB запущена и работает должным образом.

Начиная с версии Debian 9 популярную систему управления базами данных MySQL заменила MariaDB. Данная СУБД является ответвлением от MySQL созданная ее первоначальными разработчиками, которые оказались недовольны лицензионной политикой Oracle и испытывали опасения, что MySQL может стать более закрытым продуктом. MariaDB является полностью совместимой с MySQL, а это значит, что замена произойдет максимально прозрачно и все приложения, которые работали с MySQL также будут работать с MariaDB. А мы же рассмотрим некоторые особенности этого перехода.

Прежде всего скажем, что все команды, инструкции, скрипты и т.д. и т.п. которые раньше работали с MySQL будут также работать с MariaDB, никаких изменений вносить не нужно и многие пользователи просто могут не заметить, что работают с другой СУБД.

Но есть и отличия, прежде всего они касаются безопасности и были внесены командой Debian. Одним из основных отличий является то, то MariaDB входящая в состав Debian 9 не запрашивает пароль root при установке . После чего пользователь остается в некоторой растерянности, а что делать дальше? Масла в огонь подливает тот факт, что большинство инструкций в сети интернет рассматривают управление MySQL сугубо через панель управления phpMyAdmin, и не имеющие навыков работы в командной строке пользователи оказываются в особо беспомощном состоянии.

"Как установить пароль root в MariaDB " в разных вариациях является одним из популярных поисковых запросов, связанных с этой СУБД. Но не будем рубить с плеча, а сначала разберемся, что сделали разработчики Debian и для чего.

Самой большой проблемой безопасности MySQL является то, что учетные данные для доступа к БД хранятся в конфигурационных файлах веб-приложений открытым текстом. С учетом того, что многие пользователи не заморачиваются и делают владельцем всех баз суперпользователя root - проблема становится довольно серьезной. А если учесть, что доступ к файлам веб-приложений может иметь достаточно широкий круг лиц, включая не только сотрудников, но и фрилансеров - становится совсем плохо.

Поэтому в Debian для суперпользователя root в MariaDB предусмотрена аутентификация через UNIX-сокет и реализована она таким образом, что неограниченный доступ к MariaDB может получить только суперпользовтаель системы и только в режиме командной строки. С точки зрения безопасности это очень правильно, так как теперь сторонние пользователи и веб-приложения не смогут получить доступ с правами root, даже если они каким-то образом узнали пароль.

Все это хорошо, но что делать обычному пользователю, который поставил MariaDB на свой сервер и хочет залить на нее дамп базы сайта? Прежде всего завести пользователя, лучше даже не одного. Для этого поднимем свои права в системе до root через su или sudo и выполним команду:

Mysql -u root

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

create user "andrey" @ "localhost" identified by "password" ;

В нашем примере мы создали пользователя andrey с паролем password .

Теперь назначим ему права. Прежде всего явно заберем права на чужие базы:

grant usage on *.* to "andrey"@"localhost";

И выдадим полные права на базы с шаблоном имени andrey_basename, такой подход позволит автоматически давать права всем новым базам которые будет создавать пользователь.

grant all privileges on `andrey\_%`.* to "andrey"@"localhost";

Обратите внимание, что шаблон оборачивается символами грависа (`) , который находится на клавише с русской буквой Ё.

Остается только перезагрузить привелегии и выйти из консоли MariaDB

flush privileges;
quit;

После чего можно вернуться к привычным инструментам работы с MySQL/MariaDB, например, phpMyAdmin:


Обратите внимание, что данный способ, в отличие от распространенных рекомендаций "включить root в MariaDB", позволяет сохранить повышенную безопасность системы, что важно, если доступ к ней будут иметь третьи лица. Также мы не советуем держать все базы под одним пользователем, в идеале один сайт (или иное приложение) - один пользователь, это позволит без лишних затрат времени и сил сменить пароль в случае его компрометации или ее потенциальной возможности (скажем вы привлекали для работ с сайтом фрилансера).

Установка MariaDB из репозиториев разработчика

Операционная система Debian имеет много достоинств, одно из них, за которое его больше всего любят - это стабильность. Настроил и забыл - это как раз про него, но оборотной стороной такого подхода является консервативность, многие пакеты имеют не столь свежие версии, как иногда хотелось бы. В настоящий момент вместе с Debian 9 поставляется MariaDB 10.1, в то время как текущими версиями являются 10.2 и 10.3.

Поэтому если вам нужны какие-то новые функции MariaDB или вы просто хотите использовать последние стабильные версии софта, то можете установить MariaDB непосредственно из репозиториев разработчика. Сделать это несложно, но перед любым потенциально опасным действием следует сделать полную резервную копию вашего сервера.

Для этого выполните в консоли сервера с правами суперпользователя следующую команду:

Mysqldump -u root --all-databases > ~/my_backup.sql

Эта команда сохранит все базы MariaDB, включая служебные, в файл my_backup.sql в директории /root и, если что-то пойдет не так, вы всегда сможете восстановить состояние вашего сервера на момент создания копии.

Получить инструкции по установке можно на специальной странице официального сайта.

Сделана она очень удобно: вы выбираете свой дистрибутив, его выпуск, версию СУБД и зеркало - после чего получаете готовую инструкцию для установки. Чтобы сэкономить вам время приведем ее здесь (мы будем устанавливать MariaDB 10.3 на Debian 9):

Apt-get install software-properties-common dirmngr
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
add-apt-repository "deb http://mirror.mephi.ru/mariadb/repo/10.3/debian stretch main"

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

Теперь обновим список пакетов:

Apt-get update

и установим новую версию MariaDB:

Apt-get install mariadb-server

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

Второй момент, при установке MariaDB от разработчиков инсталлятор попросит у вас задать пароль root, так как в этой версии аутентификация через UNIX-сокет не используется.

Кого-то может это и порадует, но если вы успели понять и оценить все достоинства способа от разработчиков Debain, то возникнет резонный вопрос: а можно ли вернуть как было? Можно. Для этого откройте конфигурационный файл /etc/mysql/mariadb.conf.d/50-server.cnf и добавьте в секцию строку:

Plugin-load-add = auth_socket.so

Перезапустим СУБД:

Service mysqld restart

Попробуем войти из учетной записи обычного пользователя:

Несмотря на то, что система спросит нас пароль и мы его правильно введем - в доступе нам будет все равно отказано. Повторим попытку через phpMyAdmin:

И здесь успеха у нас не будет. Отлично! Теперь доступ с правами суперпользователя СУБД имеет только суперпользователь системы и нам не нужно беспокоиться, что пароль root MariaDB станет известен кому-либо.

  • Теги:

Please enable JavaScript to view the Январь 2, 2017 12:16 пп 9 477 views | Комментариев нет

Требования

  • Сервер CentOS 7.
  • Пользователь с доступом к sudo.

Все необходимые инструкции можно найти в .

1: Установка MariaDB

Чтобы установить MariaDB, используйте репозиторий Yum. Запустите следующую команду и нажмите y, чтобы продолжить.

sudo yum install mariadb-server

После завершения установки запустите демон:

sudo systemctl start mariadb

Команда systemctl не показывает вывод некоторых команд. Чтобы убедиться, что демон запущен, введите:

sudo systemctl status mariadb

Если демон MariaDB был запущен, в выводе команды будут строки:

Active: active (running)
[…]
Dec 01 19:06:20 centos-512mb-sfo2-01 systemd: Started MariaDB database server.

Теперь нужно настроить автозапуск MariaDB. Для этого введите:

sudo systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

После этого нужно обеспечить безопасность данных.

2: Безопасность MariaDB

После завершения установки нужно запустить встроенный сценарий безопасности MariaDB, который изменяет некоторые опции по умолчанию и блокирует удалённый root-логин. Чтобы запустить сценарий, введите:

sudo mysql_secure_installation

Сценарий предоставляет подробное описание каждого шага. Сначала он запросит root-пароль. Поскольку в новой установке такого пароля пока нет, просто нажмите Enter. После этого сценарий предложит вам создать такой пароль. Введите сложный пароль и подтвердите его.

После этого сценарий задаст вам ряд вопросов. Чтобы принять данные по умолчанию, можете просто нажать Y и Enter. Сценарий заблокирует анонимных пользователей и удалённый root логин, удалит тестовые таблицы и перезагрузит привилегии.

3: Тестирование MariaDB

Теперь нужно убедиться, что установка MariaDB прошла успешно.

Попробуйте подключиться к БД с помощью инструмента mysqladmin (это клиент для запуска команд администрирования). Чтобы подключиться к MariaDB как root (-u root), ввести пароль (-p) и запросить версию программы, введите команду:

mysqladmin -u root -p version

Команда выведет:

mysqladmin Ver 9.0 Distrib 5.5.50-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Server version 5.5.50-MariaDB
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 4 min 4 sec
Threads: 1 Questions: 42 Slow queries: 0 Opens: 1 Flush tables: 2 Open tables: 27 Queries per second avg: 0.172

Это значит, что установка СУБД MariaDB прошла успешно.

Заключение

Теперь вы умеете выполнять базовую установку и настройку MariaDB.




Top