MySQL - это одна из самых популярных систем управления базами данных, которая применяется почти везде, начиная от различных предприятий и промышленности и заканчивая организацией работы веб-сайтов.
Сейчас существует несколько версий MySQL. Непосредственно mysql, разрабатываемая компанией Oracle и свободный форк от основного разработчика mysql - MariaDB. Имя MairaDB программа получила в честь первой дочери программиста, также как и MySQL в честь имени второй. В большинстве дистрибутивов Linux используется MariaDB, в том числе и в Ubuntu. Мы будем рассматривать установку именно этой версии, но для совместимости она называется все еще MySQL. В этой статье мы рассмотрим как выполняется установка MySQL Ubuntu 16.04 или 16.10.
Установка MySQL в Ubuntu 16.04
Программа и все необходимые компоненты есть в официальных репозиториях, поэтому установить ее не составит труда. Для установки из официальных репозиториев сначала обновим списки пакетов:
$ sudo apt update
Затем установим необходимые пакеты:
$ sudo apt install mariadb-server mariadb-client
На данный момент в репозиториях Ubuntu 16.10 есть только версия MariaDB 10.0, но уже доступна стабильная версия MariaDB 10.1. Для ее установки нужно использовать официальный репозиторий разработчиков. Для добавления репозитория в Ubuntu 16.10 выполните:
$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
$ sudo add-apt-repository 'deb [arch=amd64,i386] http://mirror.klaus-uwe.me/mariadb/repo/10.1/ubuntu yakkety main'
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
$ sudo add-apt-repository 'deb [arch=amd64,i386] http://mirror.klaus-uwe.me/mariadb/repo/10.1/ubuntu yakkety main'
А в Ubuntu 16.04:
$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
$ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.klaus-uwe.me/mariadb/repo/10.1/ubuntu xenial main'
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
$ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.klaus-uwe.me/mariadb/repo/10.1/ubuntu xenial main'
Затем, чтобы установить mysql Ubuntu 16.04 или 16.04 достаточно выполнить уже знакомую команду:
$ sudo apt update
$ sudo apt install mariadb-server mariadb-client
$ sudo apt install mariadb-server mariadb-client
Во время установки нужно будет два раза ввести пароль для root пользователя базы данных:
После того как установка будет завершена, вы можете проверить все ли прошло успешно:
$ sudo systemctl staus mysql
Вы должны увидеть зеленую надпись Active Running и версию программы, которую устанавливали.
Настройка mysql в Ubuntu
Перед тем как вы сможете полноценно использовать только что установленную базу данных, необходимо выполнить ее первоначальную настройку. Для этого был разработан специальный скрипт, выполните его:
$ mysql_secure_installation
На первом шаге нужно ввести пароль root пользователя базы данных, это не пароль root в системе, если вы только установили MySQL, то он еще не задан и это поле можно оставить пустым.
Дальше наберите Y чтобы установить пароль root:
Введите два раза новый пароль:
Введите Y для отключения анонимного доступа к mysql:
Еще раз Y чтобы запретить подключаться к базе от имени root удаленно:
Снова Y, чтобы удалить тестовую базу данных:
Последний шаг - это обновление привилегий для пользователей:
После завершения настройки вы можете подключиться с помощью пароля root к серверу баз данных из командной строки:
$ sudo mysql -u root -p
Здесь нам необходимо создать пользователя, от имени которого мы будем использовать базу данных, а также саму базу данных. Для этого воспользуемся командами SQL. Сначала создаем базу данных:
mysql> CREATE DATABASE testDB;
Далее создадим пользователя:
mysql> CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'password';
Слова my_user и password нужно заменить на свои имя пользователя и пароль. Дальше нужно дать права пользователю на управление этой базой данных:
mysql> GRANT ALL ON testDB.* TO 'my_user'@'localhost';
Или вы можете дать права только на несколько инструкций:
mysql> GRANT SELECT,UPDATE,DELETE ON testDB.* TO 'my_user'@'localhost';
Если какую-либо инструкцию нужно запретить, удалите ее:
mysql> REVOKE UPDATE ON testDB.* FROM 'my_user'@'localhost';
После завершения работы с правами нужно их обновить:
mysql> FLUSH PRIVILEGES;
Чтобы убедиться что нет никого лишнего, вы можете вывести список пользователей:
mysql> SELECT user,host,password FROM mysql.user;
Также вы можете посмотреть полномочия для нужного пользователя:
mysql> SHOW GRANTS FOR 'my_user'@'localhost';
Теперь установка mysql ubuntu 16.04 полностью завершена и вы можете использовать эту базу данных для решения своих задач.
Удаление MySQL в Ubuntu
Чтобы удалить mysql Ubuntu 16.04 понадобиться немного больше команд чем для удаления простого пакета. После удаления основных пакетов в системе остается еще много файлов. Мы рассмотрим как удалить все.
Сначала остановите сервисы:
$ sudo service mysql stop
$ sudo killall -KILL mysql mysqld_safe mysqld
$ sudo killall -KILL mysql mysqld_safe mysqld
Удалите основные пакеты и их зависимости:
$ sudo apt -y purge mysql-server mysql-client
$ sudo apt -y autoremove --purge
$ sudo apt autoclean
$ sudo apt -y autoremove --purge
$ sudo apt autoclean
Удалите пользователя mysql и остатки программы в системе:
$ deluser --remove-home mysql
$ sudo delgroup mysql
$ rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
$ updatedb
$ sudo delgroup mysql
$ rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
$ updatedb
Удалите все логи подключений к mysql из терминала:
$ sudo find / -name .mysql_history -delete
Теперь ваша система полностью очищена от MySQL.