MySQL, MariaDB, Ubuntu 14.04

WordPress: перейти с MySQL на MariaDB в Ubuntu 14.04

· WordPress · 5 мин чтения

Уже много лет MySQL был стандартной базой данной для многих приложений. После того как она была куплена Oracle‘ом, многие люди стали сомневаться в её open-source’ности и сообщество решило создать новый fork и назвали его «MariaDB«. MariaDB в свою очередь может быть использована вместо MySQL без каких-либо проблем, даже если изначально вы использовали MySQL.

Интересный факт: MariaDB была названа в честь дочери создателя — «Мария».

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

Подключиться к серверу через Linux

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

ssh -p port user@ip

вместо port указываете порт подключения (по стандарту — это 22).

вместо user указывается имя пользователя, а вместо ip указываете IP сервера или домен вашего сайта к которому вы пытаетесь подключиться.

Подключиться к серверу через Windows

Чтобы подключиться к серверу с Windows, вам нужно скачать PuTTY. После того как вы ее запустили, вы должны ввести данные для подключения к вашему серверу (они должны быть такие же как и для Linux примера выше). Ниже показан скриншот PuTTY после первого открытия.

PuTTy клиент

В поле Host Name вводите имя домена для подключения или IP. Порт оставляете такое же, если вы его не меняли и дальше нажимаете «Open» и у вас должна открыться консоль где от вас потребуется ввода логина и пароля.

Back-up базы данных

Перед тем как удалить MySQL лучше всего сделать back-up данных, чтобы не потерять важную для нас информацию.

Для начала создадим папку для хранения копии базы данных:

mkdir /tmp/backupsql && cd $_

Эта команда создаст папку backupsql внутри /tmp и сразу переместит вас в только что созданную папку.

Находясь в папке backupsql введите команду (ниже). Она создаст копию вашей текущей базы данных от WordPress сайта.

Создание копии базы данных

root — это имя пользователя

имя_базы — это имя базы данных к которой подключен ваш WordPress сайт

имя_файла_back_up.sql — вводите любое название файла. В нем будет храниться копия ваших данных от сайта. Он так же нам понадобиться потом, чтобы импортивровать данные в MariaDB.

mysqldump -u root -p имя_базы > имя_файла_back_up.sql;

После ввода команды и нажатия Enter у вас должен запроситься пароль от пользоателя. В моем случае — это root.

Удаляем MySQL и устанавливаем MariaDB

apt-get purge mysql*
apt-get install mariadb-client-10.0
apt-get install mariadb-server-10.0

Первая строка удалит все что связанное с MySQL. Вторая и третья строка установят все нужные компоненты для MariaDB.

Если вы пытаетесь повторно установить MariaDB, то вместо команд выше вам нужно ввести следующие команды:

apt-get purge mysql* mariadb*
apt-get install mariadb-client-10.0
apt-get install mariadb-server-10.0

Первая строка удалит все компоненты от MySQL и MariaDB и потом установит все что вам нужно для корректной работы MariaDB.

Во время установки у вас попросит пароль. Этот тот самый пароль, который мы вводили при создания back-up базы данных от вашего сайта. MariaDB password required

После того как вы ввели пароль и нажали Enter, MariaDB должна успешно установиться.

Далее её нужно запустить:

sudo service mysql start

Если все запустилось, то теперь нам нужно загрузить копию базы данных в MariaDB.

Импортируем back-up в MariaDB

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

mysql -u root -p

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

CREATE DATABASE имя_базы;

имя_базы — это имя вашей базы для сайта. Вы можете создать тоже самое, что было до этого или написать другое. После того как нажали Enter пишем exit и выходим из MariaDB.

После этого нужно зайти в папку с .SQL файлом (/tmp/backupsql), чтобы вернуть все данные обратно в базу.

Сначала заходим в папку:

cd /tmp/backupsql

После того как зашли, нам нужно прописать следующее:

mysqldump -u root -p имя_базы < имя_файла_back_up.sql;

Параметры этой строки уже были выше прописаны. Единственное, что поменялось в этой строке — это «>» (из базы данных) на «<» (в базу данных) и все.

Далее нам нужно проверить успешность импорта, это можно сделать следующим образом:

Сначала снова войдем в MariaDB:

mysql -u root -p

Далее пишем:

USE имя_базы;

Вы должны быть перемещены в определенную базу данных (имя_базы) и далее пишем следующее:

SHOW TABLES;

Если есть список таблиц, то все хорошо, можно двигаться дальше (смотреть ниже), а если нет, то повторите процесс с момента импорта .SQL файла.

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

Имя пользователя и пароль я буду использовать такой же, который прописан в wp_config.php от в корне WordPress сайта.

Если вы зайдете в wp_config.php, то там сможете найти две строки которые выглядят следующим образом (они нам и понадобятся):

define('DB_USER', 'имя_пользователя') — имя пользователя

define('DB_PASSWORD', 'пароль') — пароль от входа

И теперь создаем пользователя:

CREATE USER 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль';

Внимание! Вы можете поменять имя пользователя и пароль, но самое главное потом не забудьте сделать тоже самое в wp_config.php.

Далее нам нужно выдать права для имя_пользователя к базе (имя_базы), которая была создана для сайта:

GRANT ALL PRIVILEGES ON имя_базы.* TO 'имя_пользователя'@'localhost';

И после этого нужно прописать следующее:

FLUSH PRIVILEGES;
exit

Первая строка обновит все таблицы с правами, чтобы имя_пользователя стал активным и получил нужные ему права и потом можете выходить из MariaDB (exit).

После этого нужно снова перезагрузить MariaDB:

sudo service mysql restart

После этого этапа заходим на сайт и радуемся! Уху, теперь WordPress работает c MariaDB.

Ошибки

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

Ошибка создания пользователя

Если у вас выдает подобную ошибку:

ERROR 1396 (HY000): Operation CREATE USER failed for 'имя_пользователя'@'localhost'

Тогда внутри MariaDB вам нужно прописать следующее:

DROP USER 'имя_пользователя@localhost';
FLUSH PRIVILEGES;

И теперь пользователь должен создаться.

Послесловие

На этом все. Если у вас остались какие-либо вопросы или проблемы, то пишите их ниже под этой записью, я помогу вам решить ее.