Установка linux mysql: MySQL | Русскоязычная документация по Ubuntu

MySQL | Русскоязычная документация по Ubuntu

Содержание

  • MySQL

    • Версии MySQL в Ubuntu

    • Установка

    • Настройка

      • Доступ к серверу из сети

      • Кодировки

    • Администрирование

      • Установка root пароля

      • Восстановление забытого пароля для root’a

      • Резервное копирование

      • Отключение и включение автозагрузки сервиса

    • MySQL Workbench

    • Ссылки

MySQL — свободная СУБД для малых и средних приложений. Входит в состав LAMP и XAMPP.

Версии MySQL в Ubuntu

Ubuntu MySQL
12.04 LTS (Precise) 5.5
14.04 LTS (Trusty) 5.5, 5.6
15.10 (Wily) 5. 6
16.04 LTS (Xenial) 5.7

Установка

MySQL есть в репозиториях Ubuntu. Он разбит на несколько пакетов.

Настройка

Конфигурация сервера MySQL содержится в файле /etc/mysql/my.cnf.

Доступ к серверу из сети

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

bind-address            = 127.0.0.1

на

#разрешить подключатся с любого хоста
bind-address            = 0.0.0.0
#разрешить подключатся только с указанного IP
bind-address            = 192.168.1.23

Кодировки

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

По-умолчанию в Ubuntu MySQL устанавливается с кодировкой latin1. В этом можно убедиться посмотрев вывод запроса:

SHOW VARIABLES LIKE 'char%';
character_set_client   latin1                      
character_set_connection latin1                    
character_set_database    latin1                    
character_set_filesystem   binary                   
character_set_results    latin1                    
character_set_server     latin1                   
character_set_system    utf8                       
character_sets_dir       /usr/share/mysql/charsets/

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

SET names utf8;

и используя при создании таблиц

...DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

невозможно добиться полной поддержки кодировки utf8:

character_set_client    utf8                        
character_set_connection  utf8                       
...                    
character_set_server        latin1                  
. ..            
character_sets_dir         /usr/share/mysql/charsets/

Кодировка по-умолчанию все равно останется latin1, что неудобно и может привести к ошибкам.

Чтобы сервер сразу загружался с нужной кодировкой, необходимо отредактировать файл /etc/mysql/my.cnf:

sudo nano -w /etc/mysql/my.cnf

В секцию [mysqld] добавьте следующие строки:

skip-character-set-client-handshake
character-set-server = utf8
init-connect='SET NAMES utf8'
collation-server=utf8_general_ci

Так же желательно установить кодировку для клиента и mysqldump. Для этого в секциях [client] и [mysqldump] необходимо добавить строчку:

default-character-set=utf8

Перезагрузите сервер MySQL:

sudo service mysql restart

После этого список переменных будет выглядеть так:

character_set_client      utf8                     
character_set_connection   utf8               
character_set_database      utf8                
character_set_filesystem  binary                    
character_set_results        utf8                        
character_set_server         utf8                        
character_set_system       utf8                        
character_sets_dir          /usr/share/mysql/charsets/

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

Администрирование

Установка root пароля

sudo mysql_secure_installation

Восстановление забытого пароля для root’a

Схожая проблема возникает если не задать пароль при установке MySQL, в этом случае mysql использует плагин unix-socket.

  1. Остановите mysqld:

    sudo service mysql stop
  2. Запустите mysqld с параметрами --skip-grant-tables --user=root:

    sudo mysqld --skip-grant-tables --user=root

    Если команда не сработает, добавьте строку «skip-grant-tables» в секцию «[mysqld]» файла /etc/mysql/mysql.conf.d/mysqld.cnf. Затем выполните sudo service mysql restart. После выполнения операций удалите эту строку.

  3. Подключитесь к MySQL-серверу командой:

    mysql -u root
  4. Обновите пароль для root’a:

    UPDATE mysql. user SET authentication_string=PASSWORD('<новый пароль>'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';    
    FLUSH PRIVILEGES;

    Для MySQL версий < 5.7:

    UPDATE mysql.user SET Password=PASSWORD('<новый пароль>') WHERE User='root';
    FLUSH PRIVILEGES;
  5. Перезапустите демона:

    sudo service mysql restart

Теперь можете проверить вход под root с новым паролем:

mysql -u root -p

Резервное копирование

Для создания резервных копий существует специальная утилита mysqldump. Основные ее параметры приведены в таблице:

Параметр Описание Пример
-u<user> Пользователь, от лица которого будет производится дамп баз данных. -uroot
-p<password> Пароль пользователя. Пароль необязательно указывать, достаточно упомянуть этот параметр для того, чтобы утилита знала что подключение требует пароля. -ppassword
-p
-h<host> Хост, на котором расположена база данных. -h227.0.0.1
-A Создать бекап всех баз данных. -A
-B <databases> Базы данных, которые нужно забэкапить. -B db1 db2 db3
--tables <tables> Таблицы, которые нужно забэкапить. Перекрывает действие ключа -B --tables db1.table1 db1.table2 db2.table3
-d Создать бекап структуры таблиц. Содержимое таблиц скопировано не будет. -d
--skip-extended-insert Не использовать многострочные INSERT-записи при создании дампа. --skip-extended-insert
-w'where_clause Создавать дамп только тех строк, которые попадают под условие. -w'Id > 10 AND Id < 100

Отключение и включение автозагрузки сервиса

Начиная с версии Ubuntu 15.04 отключение и включение сервисов возможно одной командой, без редактирования конфигов. В примерах команд ниже слово «SERVICE» следует заменить на «mysql».

Узнать стоит ли сервис в автозагрузке:

$ systemctl is-enabled SERVICE

Убрать сервис из автозагрузки в Ubuntu-16.04:

$ sudo systemctl disable SERVICE

Добавить сервис в автозагрузку в Ubuntu-16.04:

$ sudo systemctl enable SERVICE

MySQL Workbench

MySQL Workbench – инструмент для визуального проектирования баз данных. MySQL Workbench существует в двух вариантах:

  • Community Edition – бесплатная версия, распространяемая под лицензией GPL3

  • Standard Edition – платная версия, включающая в себя некоторые дополнительные возможности.

MySQL Workbench можно скачать с официального сайта http://www. mysql.com/downloads/workbench/.

Пакет вложенный на официальном сайте не подходит для Ubuntu 12.04 и выше. Это связано с тем, что пакет libzip1, прописанный в зависимостях был исключен из репозиториев. Как временное решение используйте PPAppa:olivier-berten/misc .

Ссылки

  • Статья на русской Википедии

  • Обсуждение на форуме

Администрирование,
mysql,
mysqldump,
workbench,
lamp

Как установить MySQL на Ubuntu 20.04

MySQL – система управления базами данных (СУБД), используемая чаще всего в веб-разработке, но и не только там. MySQL является, наверное, одной из самых распостранённых СУБД. Её сильные стороны – быстрота, надёжность, универсальность. Ниже о том, как MySQL можно установить на сервер Ubuntu 20.04.

Установка MySQL 8.0

Первым делом, как всегда, необходимо обновить репозитории пакетов сервера:

$ sudo apt update

Теперь можно переходить к установке пакетов MySQL:

$ sudo apt install mysql-server

На момент написания статьи в репозиториях доступна версия 8. 0.22. Проверить версию установленного пакета можно при помощи команды:

$ mysql -V

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

Настройка MySQL

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

$ sudo mysql_secure_installation

Для начала в открывшемся диалоге необходимо определить, нужно ли производить настройку компоненты валидации пароля, используемой при проверке надёжности пароля в MySQL. Если вы даёте согласие на использование валидации пароля, скрипт предложит вам установить уровень валидации, выбрав из 0 – низкий, 1 – средний, 2 – высокий:

На следующем шаге нужно установить пароль для учётной записи root в MySQL:

Скрипт оценит надёжность введённого пароля и запросит вашего согласия на его использование:

В последующем диалоге можно использовать ответ Yes для удаления анонимных пользователей СУБД, запрещения удалённого подключения под рутовой учётной записью MySQL, удаления дефолтной БД test и для загрузки новых таблиц привилегий:

Настройка аутентификации с помощью пароля

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

Чтобы использовать пароль для подключения к СУБД под учётной записью root нужно изменить метод аутентификации. В нашем случае это – auth_socket.

В командной строке необходимо подключиться к MySQL:

$ sudo mysql

и вывести список аккаунтов СУБД, в котором виден используемый ими метод аутентификации (колонка plugin), командой:

mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;

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

Для изменения метода аутентификации учётной записи root нужно использовать команду:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'psswd'; 

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

Если вы планируете использовать MySQL с приложениями PHP, такими как phpMyAdmin, то возможно, будет актуально настроить аутентификацию с помощью более старого плагина mysql_native_password:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'psswd';

Для применения произведённых изменений необходимо выполнить инструкцию:

mysql> FLUSH PRIVILEGES;

Проверить применение изменений можно набрав команду:

mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;

Выход из оболочки MySQL производится командой:

mysql> exit

Если для подключения к MySQL будет использоваться специально созданная для этого учётная запись, то необходимо войти в MySQL командой:

$ sudo mysql

либо, если аутентификация рутовой учётной записи производится с помощью пароля:

$ mysql -u root -p

Далее, создайте нового пользователя:

mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'psswd';

Для предоставления новому пользователю прав на доступ к таблицам базы данных выполните инструкцию:

mysql> GRANT ALL PRIVILEGES ON *. * TO 'newuser'@'localhost' WITH GRANT OPTION;

После чего можно выйти из оболочки MySQL:

mysql> exit

Автоматический запуск MySQL

Каким бы способом не был установлен MySQL, его запуск должен производиться автоматически. Чтобы убедиться в этом, необходимо набрать:

$ systemctl status mysql.service 

Также, активировать MySQL можно командой:

$ sudo systemctl start mysql

Теперь на вашем сервере произведена базовая установка СУБД MySQL.

2.2 Установка MySQL Shell в Linux

версия 8.0

8,0
Японский

Примечание

Инсталляционные пакеты для MySQL Shell доступны только для
ограниченное количество дистрибутивов Linux и только для 64-битных
системы.

Для поддерживаемых дистрибутивов Linux самый простой способ установки
MySQL Shell в Linux должен использовать
MySQL APT
хранилище или
MySQL Юм
репозиторий. Для систем, не использующих репозитории MySQL,
MySQL Shell также можно загрузить и установить напрямую.

Установка MySQL Shell с репозиторием MySQL APT

Для дистрибутивов Linux, поддерживаемых
MySQL APT
репозиторий, следуйте по одному из следующих путей:

  • Если у вас еще нет
    MySQL APT
    репозиторий как репозиторий программного обеспечения в вашей системе,
    сделайте следующее:

    • Следуйте шагам, указанным в
      Добавление
      репозиторий MySQL APT, оплачивая специальные
      внимание на следующее:

      • Во время установки конфигурации
        package, когда в диалоговом окне будет предложено настроить
        репозиторий, убедитесь, что вы выбрали MySQL
        8. 0 в качестве серии выпусков, которую вы хотите.

      • Убедитесь, что вы не пропустите шаг для обновления
        информация о пакете для репозитория MySQL APT:

         sudo apt-получить обновление 
    • Установите MySQL Shell с помощью этой команды:

       sudo apt-get установить mysql-shell 
  • Если у вас уже есть
    MySQL APT
    репозиторий как репозиторий программного обеспечения в вашей системе,
    сделайте следующее:

    • Обновите информацию о пакете для репозитория MySQL APT:

       sudo apt-получить обновление 
    • Обновите пакет конфигурации репозитория MySQL APT.
      с помощью следующей команды:

       sudo apt-get установить mysql-apt-config 

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

    • Установите MySQL Shell с помощью этой команды:

       sudo apt-get установить mysql-shell 

Установка MySQL Shell с репозиторием MySQL Yum

Для дистрибутивов Linux, поддерживаемых
MySQL Юм
репозиторий, выполните следующие действия, чтобы установить MySQL Shell:

  • Выполните одно из следующих:

    • Если у вас уже есть
      MySQL Юм
      репозиторий как репозиторий программного обеспечения на вашем
      система и репозиторий были настроены с новой
      выпуск пакета
      mysql80-community-release .

    • Если у вас уже есть
      MySQL Юм
      репозиторий как репозиторий программного обеспечения на вашем
      систему, но настроили репозиторий со старым
      выпуск пакета
      mysql-community-release , это
      проще всего установить MySQL Shell, предварительно перенастроив
      репозиторий MySQL Yum с новым
      mysql80-сообщество-выпуск
      упаковка. Для этого вам нужно удалить старый релиз
      package сначала с помощью следующей команды:

       sudo yum удалить mysql-community-release 

      Для систем с поддержкой dnf сделайте следующее:

       sudo dnf стереть mysql-community-release 

      Затем выполните шаги, указанные в
      Добавление
      репозиторий MySQL Yum для установки нового
      выпускной пакет,
      mysql80-community-release .

    • Если у вас еще нет
      MySQL Юм
      репозиторий как репозиторий программного обеспечения на вашем
      системы, выполните действия, описанные в
      Добавление
      репозиторий MySQL Yum.

  • Установите MySQL Shell с помощью этой команды:

     sudo yum установить mysql-shell 

    Для систем с поддержкой dnf сделайте следующее:

     sudo dnf установить mysql-shell 

Установка оболочки MySQL из прямой загрузки от разработчика MySQL
Зона

Пакеты RPM, Debian и исходные коды для установки MySQL Shell
также доступен для скачивания на
Скачать MySQL
Оболочка.

ПРЕД.
ДОМ
ВВЕРХ
СЛЕДУЮЩИЙ

2.5 Установка MySQL в Linux

2.5.1 Установка MySQL в Linux с использованием репозитория MySQL Yum
2.5.2 Установка MySQL в Linux с использованием репозитория MySQL APT
2.5.3 Установка MySQL в Linux с использованием репозитория MySQL SLES
2.5.4 Установка MySQL в Linux с использованием RPM-пакетов Oracle
2.5.5 Установка MySQL в Linux с использованием пакетов Debian из Oracle
2.5.6 Развертывание MySQL в Linux с помощью Docker
2.5.7 Установка MySQL в Linux из собственных репозиториев программного обеспечения
2.5.8 Установка MySQL в Linux с помощью Juju
2.5.9 Управление сервером MySQL с помощью systemd

Linux поддерживает ряд различных решений для установки MySQL.
Мы рекомендуем вам использовать один из дистрибутивов от Oracle, для
которые доступны несколько способов установки:

Таблица 2. 8 Методы установки Linux и информация

Тип Метод настройки Дополнительная информация
кв Включить MySQL Apt
репозиторий
Документация
Юм Включить MySQL Yum
репозиторий
Документация
Молния Включить MySQL SLES
репозиторий
Документация
об/мин Загрузить определенный
пакет
Документация
ДЭБ Загрузить определенный
пакет
Документация
Общий Загрузить универсальный
пакет
Документация
Источник Компиляция из исходного кода Документация
Докер Использовать Оракула
Реестр контейнеров. Вы также можете использовать Docker Hub для
MySQL Community Edition и
Мой оракул
Поддержка MySQL Enterprise Edition.
Документация
Нерушимая сеть Oracle Linux Использовать каналы ULN Документация

В качестве альтернативы вы можете использовать диспетчер пакетов в вашей системе для
автоматически загружать и устанавливать MySQL с пакетами из
собственные репозитории программного обеспечения вашего дистрибутива Linux. Эти
нативные пакеты часто на несколько версий отстают от текущих
доступный релиз. Вы также обычно не можете установить
промежуточные выпуски разработки (DMR), поскольку они обычно не
доступны в родных репозиториях. Для получения дополнительной информации о
используя собственные установщики пакетов, см.
Раздел 2.5.7, «Установка MySQL в Linux из собственных репозиториев программного обеспечения».