Установка и настройка MySQL сервера на Ubuntu

Установка сервера и клиента чтобы можно было через консоль заливать файлы:

sudo apt-get install mysql-server mysql-client

Директория с файлами конфигурации находится по адресу:

/etc/mysql

Директория хранения баз данных:

/var/lib/mysql

Чтобы разрешить удаленный доступ к mysql серверу, в конфигурационном файле /etc/mysql/my.cnf необходимо закомментировать строку bind-address = 127.0.0.1 (поставить перед ней символ #) и выполнить перезапуск mysql сервера чтобы изменения применились:

sudo service mysql restart

Покажу некоторые примеры команд:
Подключение к mysql через командную строку:

mysql -u имяпользователя -p

Просмотр доступных баз данных:

show databases;

Открываем нужную базу данных:

use имябазы;

Смотрим какие в базе есть таблицы:

show tables;

Либо создаем новую базу:

create database имябазы;

Удаление базы:

drop database имябазы;

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

CREATE USER 'имяпользователя'@'localhost' IDENTIFIED BY 'пароль';

Даем пользователю полные привилегии над нужной базой:

GRANT ALL PRIVILEGES ON имябазы.* to 'имяпользователя'@'localhost';

Создание дампа базы данных (будет сохранен в домашнюю папку пользователя):

mysqldump -u имяпользователя -p имябазы > имядампа.sql

Заливаем дамп в нужную базу:

mysql -u имяпользователя -p имябазы < имядампа.sql

Команда справки — help

Восстановление и Оптимизация: mysqlcheck -Aor -p
Описание аргументов:
-A – Проверить на ошибки все Mysql базы данных
-r – Отремонтировать все Mysql базы данных
-o – Оптимизировать все Mysql базы данных
-p – Для доступа к базе используєтся пароль

Для безопасности подключаемся и удаляем стандартную базу test:

mysql -uroot -p
DROP DATABASE test;

Смотрим привилегии для пустого пользователя и если он существует, то удаляем:

SHOW GRANTS FOR ''@'localhost'
DROP USER "";
quit

Смотрим какие существуют пользователи и какие у них привилегии:

use mysql;
select * from user;

Пример правила iptables для открытия порта mysql всем и для определенной сети:

iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 3306 -j ACCEPT

Проверяем запущен ли сервер:

sudo netstat -tap | grep mysql

Проверяем соединения на порте 3306:

netstat -na | grep 3306

Можно посмотреть пакеты на порт 3306, когда возникают проблемы с подключением к mysql из вне:

tcpdump port 3306
tcpdump port 3306 -i eth0

Добавить комментарий