Шпаргалка по MySQL

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
7,709
Реакции
1,447
Credits
25,001
Шпаргалка по MySQL

Коннект к mysql по TCP
mysql --user root --host localhost --port 3306 --protocol tcp

Создать БД
CREATE DATABASE $DB_NAME character set utf8;

Добавить пользователя
CREATE USER $DB_USER@localhost IDENTIFIED BY '$DB_PASSWORD';

Дать права пользователю на БД
GRANT ALL ON $DB_NAME.* TO $DB_USER@localhost;

на удаленный доступ:
GRANT ALL PRIVILEGES ON $DB_NAME.* TO $DB_USER@'%' IDENTIFIED BY '$DB_PASSWORD';

на удаленный доступ на все таблицы:
grant all privileges on *.* to DB_USER@'%';

сменить пароль пользователю
SET PASSWORD FOR логин@localhost = PASSWORD('пароль'); SET PASSWORD FOR логин@"%" = PASSWORD('пароль');

что бы права вступили в силу:
flush privileges;

Посмотреть права пользователя
SHOW GRANTS for $DB_USER@localhost;

Если нужно залить большой дамп, то в /etc/my.cnf в секцию [mysqld] добавить:
max_allowed_packet = 16M

Работа с кластером мастер-слейв

посмотреть состояние мастера:
show master status;

посмотреть состояние слейва:
SHOW SLAVE STATUS\G

Посмотреть структуры таблицы в БД
describe <table_name>;
или
SHOW CREATE TABLE <table_name>;

Посмотреть состояние таблиц в БД
SHOW TABLE STATUS;

Сброс пароля mysql
1). В /etc/mycnf в секцию [mysqld] вставляем строку skip-grant-tables
2). Перезапустить mysqld.

После этого пароль будут сброшен и можно ввести любой другой.