MySQL — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 60: | Строка 60: | ||
mysql> show variables like '%char%'; - посмотреть кодировки | mysql> show variables like '%char%'; - посмотреть кодировки | ||
+ | |||
Размер баз данных на сервере с сортировкой по размеру в мегабайтах: | Размер баз данных на сервере с сортировкой по размеру в мегабайтах: | ||
mysql> SELECT table_schema "DB Name", ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "Size in MB" FROM information_schema.tables GROUP BY table_schema ORDER BY `Size in MB` DESC; | mysql> SELECT table_schema "DB Name", ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "Size in MB" FROM information_schema.tables GROUP BY table_schema ORDER BY `Size in MB` DESC; | ||
+ | |||
+ | Размер конкретной базы данных: | ||
+ | mysql> SELECT table_schema `Database`, round(Sum(data_length + index_length) / 1024 / 1024, 1) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "<font color=blue>DATABASE</font>"; | ||
+ | |||
+ | Размер самых больших таблиц в базе данных: | ||
+ | mysql> SELECT table_name `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "<font color=blue>DATABASE</font>" ORDER BY `Size in MB` DESC LIMIT 10; | ||
+ | |||
+ | Удалить все таблицы в базе данных, не удаляя саму базу. То есть полная очистка базы без удаления: | ||
+ | mysql>SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(TABLE_NAME),';') INTO @qery FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = "<font color=blue>DATABASE</font>"; PREPARE drop_tables FROM @qery; EXECUTE drop_tables; |
Текущая версия на 00:29, 20 февраля 2024
mysql> show databases; - список баз mysql> use DATABASE; - выбор базы mysql> show tables; - список таблиц в выбранной базе mysql> show fields from TABLE; - вывод списка полей таблицы с описанием типов mysql> create database DATABASE; - создать базу mysql> drop database DATABASE; - удалить базу mysql> create table TABLE (имя_столбца(), имя_столбца(), имя_столбца...); - создать таблицу mysql> drop table TABLE; - удалить таблицу mysql> insert into TABLE values ('данные','данные','данные'); - ввод данных в таблицу mysql> insert into TABLE (id) values ('30'); - ввод данных в опередлённое поле, в данном случае id mysql> update TABLE set столбец='новые данные' where строка='в какой строке обновляем'; - обновление данных в поле mysql> select * from TABLE; - вывод всех полей таблицы mysql> delete from TABLE where Name='test'; - удаление данных в таблице из колонки Name
mysql> truncate table TABLE; - удаляет все строки в таблице(обнуляет автоинкремент) mysql> alter table TABLE auto_inсrement = 100; - задаёт начальное значение автоинкремента
mysql> create user test@localhost; - создать пользователя mysql> create user test@localhost identified by 'PASSWORD'; - создать пользователя с паролем mysql> drop user test@localhost; - удалить пользователя mysql> set password for 'root'@'localhost' = password('пароль'); - создание пароля root mysql> update user set password = password('новый_пароль') where user = 'root'; - смена пароля root mysql> set password for test@localhost=PASSWORD('PASSWORD'); - создать пароль пользователя mysql> grant all privileges on DATABASE.* to 'user'@'localhost'; - дать все права на базу mysql> grant select,update,insert on DATABASE.* to 'user'@'localhost'; - дать права на выборку, запись и обновление записей mysql> grant all privileges on *.* TO 'user'@'localhost' WITH GRANT OPTION; - дать права суперпользователя mysql> revoke ALL on DATABASE.* from 'user'@'localhost'; - удалить права пользователя mysql> show grants for user@localhost; - посмотреть права пользователя mysql> select User,Host from mysql.user; - отобразить пользователей
# mysqladmin -u root password 'пароль' - создание пароля root # mysqladmin -u root -pтекущий_пароль password 'новый_пароль' - смена пароля root # mysqladmin -u USER -pPASSWORD create DATABASE - создание базы
# mysqldump -u USER -pPASSWORD DATABASE > backup.sql - дамп базы # mysqldump -u USER -pPASSWORD -B DATABASE_1 DATABASE_2 > backup.sql - дамп нескольких баз # mysqldump -u USER -pPASSWORD -A > backup.sql - дамп всех баз # mysqldump -u USER -pPASSWORD DATABASE TABLE > backup.sql - дамп таблицы # mysqldump -u USER -pPASSWORD --no-data DATABASE > backup.sql - дамп базы без данных # mysqldump -u USER -pPASSWORD DATABASE | gzip > backup.sql.gz - дамп базы с архивацией # mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +backup.sql.%Y%m%d.%H%M%S.gz` - дамп базы с указанием даты создания # mysqldump --defaults-extra-file=backup.cnf DATABASE - дамп с использованием файлика с кредами # mysql -u USER -pPASSWORD DATABASE < backup.sql - восстановление базы из бэкапа
# mysqlshow -u USER -pPASSWORD - просмотр списка баз # mysqlshow -u USER -pPASSWORD DATABASE - просмотр списка таблиц базы # mysqlshow -i DATABASE TABLE - посмотреть используемый движок
# mysql --database=mysql --execute="DELETE FROM user WHERE User=" # mysql --database=mysql --execute="DELETE FROM user WHERE Host != 'localhost'"
mysql> show table status; - посмотреть используемый движок mysql> select table_name, engine from information_schema.tables where table_schema = 'DATABASE' - посмотреть используемый движок
mysql> show variables like '%char%'; - посмотреть кодировки
Размер баз данных на сервере с сортировкой по размеру в мегабайтах:
mysql> SELECT table_schema "DB Name", ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "Size in MB" FROM information_schema.tables GROUP BY table_schema ORDER BY `Size in MB` DESC;
Размер конкретной базы данных:
mysql> SELECT table_schema `Database`, round(Sum(data_length + index_length) / 1024 / 1024, 1) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "DATABASE";
Размер самых больших таблиц в базе данных:
mysql> SELECT table_name `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "DATABASE" ORDER BY `Size in MB` DESC LIMIT 10;
Удалить все таблицы в базе данных, не удаляя саму базу. То есть полная очистка базы без удаления:
mysql>SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(TABLE_NAME),';') INTO @qery FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = "DATABASE"; PREPARE drop_tables FROM @qery; EXECUTE drop_tables;