Настройка mysql linux ubuntu

MySQL

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

Версии MySQL в Ubuntu

Установка

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

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php5-mysql

Настройка

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

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

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

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

Кодировки

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

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

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/

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

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

. 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] необходимо добавить строчку:

Перезагрузите сервер 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.

Читайте также:  Linux machine check error

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

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

sudo mysql_secure_installation

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

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

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

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

UPDATE mysql.user SET authentication_string=PASSWORD(''), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES;
UPDATE mysql.user SET Password=PASSWORD('') WHERE User='root'; FLUSH PRIVILEGES;
sudo service mysql restart

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

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

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

Параметр Описание Пример
-u Пользователь, от лица которого будет производится дамп баз данных. -uroot
-p Пароль пользователя. Пароль необязательно указывать, достаточно упомянуть этот параметр для того, чтобы утилита знала что подключение требует пароля. -ppassword
-p
-h Хост, на котором расположена база данных. -h127.0.0.1
-A Создать бекап всех баз данных. -A
-B Базы данных, которые нужно забэкапить. -B db1 db2 db3
—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 существует в двух вариантах:

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

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

Источник

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

MySQL — это одна из наиболее часто используемых систем управления реляционными базами данных с открытым исходным кодом. Это третий компонент стеков LAMP и LEMP, используемых для разработки и развертывания динамических веб-приложений и веб-сайтов. MySQL разрабатывается и поддерживается компанией Oracle.

Эта статья подробно покажет как производится установка и настройка MySQL на Ubuntu 20.04. А так же покажет вам, как создать образец базы данных и таблицы с некоторыми записями

Требование к установки

Вам потребуется пользователь с привилегиями sudo для установки MySQL на Ubuntu 20.04.

Установка MySQL на Ubuntu 20.04

MySQL доступен в репозитории пакетов Ubuntu по умолчанию. Прежде всего, обновите репозиторий пакетов Ubuntu следующей командой.

Теперь выполните приведенную ниже команду, чтобы установить MySQL на Ubuntu 20.04.

Введите «, чтобы продолжить при появлении запроса.

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

Проверка состояния службы MySQL

Нажмите Q, чтобы вернуться в командную строку.

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

$ sudo systemctl start mysql-server

Настройка MySQL в Ubuntu 20.04 LTS

Существует скрипт с именем mysql_secure_installation, который поставляется как часть установки MySQL. Вам нужно будет запустить этот скрипт для защиты вашей установки MySQL. Делается это следующим образом.

Сценарий проведет вас через ряд шагов, как показано ниже примере ответа терминала.

Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Please set the password for root here.
New password:
Re-enter new password:
Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
‘localhost’. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named ‘test’ that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
— Dropping test database.
Success.
— Removing privileges on test database.
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!

Вход в MySQL

После настройки MySQL вы можете войти в систему с учетной записью root. Делается это следующим образом.

Если вы видите подсказку mysql>>, то вы на правильном пути.

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

Показать базы данных MySQL

Создайте альтернативного пользователя MySQL Root

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

Внимание: Измените mysqluser и mySQLp@ssw0rd на свои собственные значения.

Создать пользователя MySQL:

mysql> CREATE USER mysqluser@localhost IDENTIFIED by ‘mySQLp@ssw0rd’;

Предоставьте права на все базы данных новому пользователю:

mysql> GRANT ALL PRIVILEGES ON *.* to mysqluser@localhost;

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

mysql> GRANT ALL PRIVILEGES ON continents.* TO ‘mysqluser’@’localhost’;

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

После этого выйдите из MySQL:

Теперь войдите в систему как вновь созданный пользователь:

Создание альтернативного пользователя MySQL root

Создание базы данных в MySQL

Выполните приведенный ниже запрос, чтобы создать новую базу данных в MySQL.

mysql> CREATE DATABASE continents;

Чтобы выбрать вновь созданную базу данных, выполните следующий запрос.

Создание таблицы в MySQL

Давайте создадим простую таблицу и заполним ее следующим образом.

mysql> CREATE TABLE europe (country varchar (25), abbreviation char (2) );

Добавление записей в таблицу:

mysql> INSERT INTO europe VALUES (‘Germany’, ‘DE’), (‘Italy’, ‘IT’);

Чтобы просмотреть записи в таблице europe, выполните команду:

Создание базы данных в MySQL

Чтобы удалить таблицу Европа, выполните:

Чтобы удалить базу данных континентов, введите команду:

Заключение

В этой статье мы рассмотрели, как установить и настроить MySQL на Ubuntu 20.04. Мы также показали вам, как создать альтернативного пользователя MySQL root. Далее мы подробно рассказали, как создать базу данных с таблицей и образцами записей.

Источник

Оцените статью
Adblock
detector