Розеттский камень DBA

Действие MySQL PostgreSQL ClickHouse
Просмотр списка пользователей SELECT user, host FROM mysql.user; SELECT usename FROM pg_user; или \du SHOW USERS;
Создание пользователя CREATE USER user@host IDENTIFIED BY 'password'; CREATE USER user WITH PASSWORD 'password'; CREATE USER user IDENTIFIED BY 'password';
Смена пароля пользователя GRANT USAGE ON *.* TO user@host IDENTIFIED BY 'password'; ALTER USER user WITH PASSWORD 'password'; или \password user ALTER USER user IDENTIFIED BY 'password';
Просмотр прав пользователя SHOW GRANTS FOR user@host; \du user и \dp SHOW GRANTS FOR user;
Предоставление прав администратора GRANT ALL PRIVILEGES ON *.* TO admin@host WITH GRANT OPTION; GRANT ALL ON *.* TO admin WITH GRANT OPTION;
Предоставление права репликации GRANT REPLICATION CLIENT ON *.* TO slave@host; GRANT REPLICATION TO user;
Предоставление прав резервного копирования GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON db.* TO operator@host;
Предоставление полного доступа к базе данных GRANT ALL ON db.* TO owner@host; GRANT ALL PRIVILEGES ON DATABASE db TO owner; GRANT ALL ON db.* TO owner;
Предоставление права только чтения из базы данных GRANT SELECT ON db.* TO reader@host; GRANT SELECT ON DATABASE db TO user; GRANT SELECT ON db.* TO reader;
Предоставление права только на подключение к базе данных GRANT USAGE ON db.* TO user@host; GRANT CONNECT ON DATABASE db TO user;
Отбор прав доступа REVOKE privileges ON db.table FROM user@host; REVOKE privileges ON DATABASE db FROM user; REVOKE privileges ON db.table FROM user;
Удаление пользователя DROP USER user@host; DROP USER user; DROP USER user;
Применение изменений пользователей и их прав FLUSH PRIVILEGES; - -
Применение изменений узлов и прав пользователей FLUSH HOSTS; - -
Установка локального IP-адреса пользователя/доступ через Unix-сокет - Отредактировать файл /etc/postgresql/9.6/main/pg_hba.conf, добавить строчку вида local "db" "user" md5 ALTER USER user HOST LOCAL;
Установка IP-адреса пользователя - Отредактировать файл /etc/postgresql/9.6/main/pg_hba.conf, добавить строчку вида host "db" "user" host/32 md5 ALTER USER user HOST IP '192.168.1.10';
Разрешение пользователю подключаться с любого IP-адреса - Отредактировать файл /etc/postgresql/9.6/main/pg_hba.conf, добавить строчку вида host "db" "user" 0.0.0.0/0 md5 ALTER USER user HOST ANY;
Назначение пользователю профиля по умолчанию - - ALTER USER user SETTINGS PROFILE default;
Просмотр списка баз данных SHOW DATABASES; \l SHOW DATABASES;
Создание базы данных CREATE DATABASE db; CREATE DATABASE database OWNER owner; CREATE DATABASE db;
Переименование базы данных mysqldump db > bak.sql && mysql new_db < bak.sql или ALTER DATABASE old_db RENAME TO new_db; RENAME DATABASE old_db TO new_db;
mysql old -BNe 'SHOW TABLES;' ! awk '{ print "ALTER TABLEold." $0 " RENAME TOnew." $0 ";"; }' ! mysql
Удаление базы данных DROP DATABASE db; DROP DATABASE db; DROP DATABASE db;
Выбор другой базы данных USE db; \c db USE db;
Просмотр списка таблиц в базе данных SHOW TABLES; \dt SHOW TABLES;
Переименование таблицы RENAME TABLE old_table TO new_table; или RENAME TABLE old_table TO new_table; ALTER TABLE old_table RENAME TO new_table; RENAME TABLE old_table TO new_table;
Создание аналогичной таблицы CREATE TABLE new_table LIKE old_table; CREATE TABLE new_table (LIKE old_table INCLUDING ALL); CREATE TABLE new_table LIKE old_table;
Сжатие таблицы (с блокировкой, обновлением статистики, сообщениями) ALTER TABLE table ENGINE=InnoDB; VACUUM [FULL ANALYZE VERBOSE] table, ...; OPTIMIZE TABLE table FINAL DEDUPLICATE;
Добавление индекса ALTER TABLE table ADD INDEX index(column1, column2, ...); CREATE INDEX index ON TABLE table(column1, column2, ...); ALTER TABLE [db.]table [ON CLUSTER cluster] ADD INDEX index expression TYPE type GRANULARITY 1;
Пересчёт индекса для уже имеющихся данных - - ALTER TABLE [db.]table [ON CLUSTER cluster] MATERIALIZE INDEX index;
Удаление индекса ALTER TABLE table DROP INDEX index; DROP INDEX index; ALTER TABLE [db.]table [ON CLUSTER cluster] DROP INDEX index;
Резервное копирование всех баз данных mysqldump > dbs.sql pg_dumpall > dbs.sql -
Восстановление всех баз данных из резервной копии mysql < dbs.sql psql < dbs.sql -
Резервное копирование базы данных mysqldump db > db.sql pg_dump -d db > db.sql BACKUP DATABASE db TO Disk('backups', 'db.zip');
Восстановление базы данных из резервной копии mysql db < db.sql psql -d db < db.sql RESTORE DATABASE db AS db_new TO Disk('backups', 'db.zip');
Резервное копирование таблицы mysqldump db table > db_table.sql pg_dump -d db -t table > db_table.sql BACKUP TABLE db.table TO Disk('backups', 'table.zip');
Восстановление таблицы из резервной копии mysql db < table.sql psql -d db < db_table.sql RESTORE TABLE db.table AS db_new.table_new FROM Disk('backups', 'table.zip');

Источники