MySQL на Ubuntu 14.04

Установка MySQL


apt-get install mysql-server php5-mysql

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

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

Во-первых, нам надо сказать MySQL создать структуру директорий базы данных, где она будет хранить информацию. Вы можете сделать это при помощи команды:

mysql_install_db

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

mysql_secure_installation

Вас попросят ввести пароль, который вы установили для root-аккаунта в MySQL. Затем вас спросят, не хотите ли вы его сменить. Если вас устраивает текущий пароль, введите "n" в командной строке. На все последующие вопросы просто нажимайте клавишу "ENTER" для выбора настроек по-умолчанию. При этом удалятся некоторые тестовые пользователи и базы данных, будет отключена возможность удаленного доступа с учетной записью root-пользователя, и все изменения будут немедленно применены в MySQL.

Сброс пароля пользователя root в MySQL.

Что делать если забыл пароль root-а? Не беда, если есть права суперпользователя на сервере. Начнем:

Остановим MySQL

/etc/init.d/mysql stop

Запускаем MySQL с особыми параметрами

/usr/bin/mysqld_safe --skip-grant-tables --user=root &

1 вариант

Запускаем клиента MySQL

mysql -u root

Выполняем запрос SQL

UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root';

2 вариант

mkdir /var/run/mysqld

chown mysql:mysql /var/run/mysqld

/usr/bin/mysqld_safe --skip-grant-tables --user=root &

mysql -u root

USE mysql;

UPDATE user SET authentication_string=PASSWORD("XXXXXXX") WHERE User='root';

Обновим права

FLUSH PRIVILEGES;
exit

Перезапускаем MySQL сервер

/etc/init.d/mysql restart

 Команды управления базой данных.

Создадим базу test с кодировкой utf8

create database test DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Проверим какая кодировка

show create database test;

Создадим пользователя и назначим ему права для базы test

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
grant all privileges on test.* to 'user'@'localhost';
FLUSH PRIVILEGES;

Установка для Ubuntu 18

apt install mysql-server

mysql_secure_installation

Отключим вход для root без пароля

mysql -p

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

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-------
----------------+-----------+

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

FLUSH PRIVILEGES;


Изменим пароль пользователя.

set password for sams@localhost = PASSWORD('Пароль');

Создать дамп всех баз.

mysqldump -u root -p'password' --all-databases > /var/lib/mysql/dumpallbases.sql

По умолчанию в mysql 8 включено бинарное логирование, и место спустя несколько недель на диске может неожиданно закончится.... Для того, чтобы его отключить идем в конфигурационный файл.

nano /etc/mysql/mysql.conf.d/mysqld.cnf

находим параметр log_bin раскоментировав его можно изменить путь для логов

параметр max_binlog_size - это максимальные размер лога, по достижении его будет создан новый файл

параметр expire_logs_days = 2 спасет нас так как он ограничит хранение логов двумя днями