MySQL — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
 
(не показана 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;