Шпаргалка по 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.



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



#db



👉 @database_info