Установка 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.
Остановите
mysqld
:sudo service mysql stop
Запустите
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
. После выполнения операций удалите эту строку.Подключитесь к MySQL-серверу командой:
mysql -u root
Обновите пароль для 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;
Перезапустите демона:
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 из собственных репозиториев программного обеспечения».