Инструменты пользователя

Инструменты сайта


databases:mysql

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
databases:mysql [2022/10/13 05:21]
admin создано
databases:mysql [2023/08/05 05:05] (текущий)
admin [Примеры]
Строка 3: Строка 3:
 Сервер базы данных.\\ Сервер базы данных.\\
 ===== Установка ===== ===== Установка =====
-<code bash>apt install mariadb-server</code> +<code bash> 
- +apt install mariadb-server 
-Первоначальная настройка +mysql_secure_installation 
-<code bash># mysql_secure_installation</code> +</code>
- +
-===== Конфигурация =====+
 Основные конфиги находятся в папке **/etc/mysql/mariadb.conf.d/**.\\ Основные конфиги находятся в папке **/etc/mysql/mariadb.conf.d/**.\\
 Настройки сервера **50-server.cnf**.\\ Настройки сервера **50-server.cnf**.\\
 +
  
 ===== Администрирование ===== ===== Администрирование =====
 После установки, командой **# mysql -u root -p** можно подключится и под системным linux-root и под mysql-root.\\ После установки, командой **# mysql -u root -p** можно подключится и под системным linux-root и под mysql-root.\\
 **Бэкапирование БД** **Бэкапирование БД**
-<code bash># mysqldump `namedb` > \..\filename.sql</code> 
-<code bash># mysqldump --databases db1 db2 [--all-databases] > \..\filename.sql </code> 
  
-**Развернуть из бэкапа** +<code bash> 
-<code bash># mysql [`namedb`] < \..\filename.sql</code> +mysqldump `namedb` > \..\filename.sql 
- +mysqldump --databases db1 db2 [--all-databases] > \..\filename.sql  
-===== Примеры ===== +  # Развернуть из бэкапа 
-<code mysql>SHOW DATABASES; +mysql [`namedb`] < \..\filename.sql
-SHOW CREATE DATABASE namedb; +
-CREATE DATABASE db1 default character set utf8 default collate utf8_general_ci;+
 </code> </code>
  
-<code mysql>use db1; 
-CREATE TABLE table1 (Id int, str1 varchar(45));</code> 
  
-<code mysql>CREATE USER 'admin'@'localhost' IDENTIFIED BY 'mypassword'; 
-GRANT [REVOKE] ALL PRIVILEGES ON db1.* TO 'admin'@'localhost'; 
-FLUSH PRIVILEGES; </code> 
  
-<code mysql>CREATE USER 'admin'@'%' IDENTIFIED BY 'mypassword'; +===== Примеры =====
-SELECT User,Host from mysql.user; +
-SHOW GRANTS FOR 'user'; +
-</code>+
  
-  * **ALL PRIVILEGES** - все, кроме GRANT; +<details> 
-  * **USAGE PRIVILEGES** - никаких привилегий; +<summary>:!: Администрирование</summary> 
-  * **SELECT,INSERT,UPDATE,DELETE** +<code mysql> 
-  * **CREATE** - создавать таблицы или базы данных; +  Запуск команды **mysql** без sudo 
-  * **ALTER** - изменять структуру таблиц; +SET PASSWORD = PASSWORD('your-pass');
-  * **DROP** - удалять таблицы; +
- +
-Запуск команды **mysql** без sudo +
-<code mysql>SET PASSWORD = PASSWORD('your-pass');+
 update mysql.user set plugin = 'mysql_native_password' where User='root'; update mysql.user set plugin = 'mysql_native_password' where User='root';
-FLUSH PRIVILAGES;</code>+FLUSH PRIVILAGES; 
 + 
 +  # Очистка таблицы + сброс инкремента 
 +truncate table `table`; 
 +</code> 
 +</details> 
 + 
 +<details> 
 +<summary>:!: Базы </summary> 
 +<code mysql> 
 +SHOW DATABASES; 
 +use db1; 
 +SHOW CREATE DATABASE namedb; 
 +CREATE DATABASE db1 default character set utf8 default collate utf8_general_ci; 
 +CREATE TABLE table1 (Id int, str1 varchar(45)); 
 +</code>
  
-**Очистка таблицы + сброс инкремента** 
-<code mysql>truncate table `table`;</code> 
  
  
Строка 68: Строка 64:
 DEFAULT CHARSET=utf8mb4 DEFAULT CHARSET=utf8mb4
 COLLATE=utf8mb4_general_ci; COLLATE=utf8mb4_general_ci;
 +</code>
 +</details>
  
 +
 +
 +<details>
 +<summary>:!: Пользователи </summary>
 +<code mysql>
 +SELECT User,Host from mysql.user;
 +
 +CREATE USER 'admin'@'localhost' IDENTIFIED BY 'mypassword';
 +GRANT [REVOKE] ALL PRIVILEGES ON db1.* TO 'admin'@'localhost';
 +
 +CREATE USER 'admin'@'%' IDENTIFIED BY 'mypassword';
 +SHOW GRANTS FOR 'user';
 +
 +FLUSH PRIVILEGES; 
 +
 +  * **ALL PRIVILEGES** - все, кроме GRANT;
 +  * **USAGE PRIVILEGES** - никаких привилегий;
 +  * **SELECT,INSERT,UPDATE,DELETE**
 +  * **CREATE** - создавать таблицы или базы данных;
 +  * **ALTER** - изменять структуру таблиц;
 +  * **DROP** - удалять таблицы;
 </code> </code>
 +</details>
 +
 +
 +
 +<details>
 +<summary>:!: В разработке </summary>
 +**Создание таблицы**
 +<code sql>
 +create table `table_name`
 +(`col1` int(11) not null auto_increment,
 + `col2` varchar(45) not null,
 +primary key(`id`)
 +) engine=innodb default charset=utf8 comment='Примечание';
 +</code>
 +
 +
 +**Копирование данных из одной таблицы в другую**\\
 +При условии что кол-во столбцов совпадает.
 +<code sql>
 +insert into `target_table`
 +select from `source_table`;
 +</code>
 +
 +
 +С дополнением статических, в т.ч. авто-инкремент, целевой таблице так же, можно задать перечень столбцов
 +<code sql>
 +insert into `target_table`
 +select 0, 'value', `col1`, `col2` from `source_table`;
 +</code>
 +
 +
 +**Переворот значения в ячейке**
 +<code sql>
 +update `table` set `col1`= not `col1` where *;
 +</code>
 +
 +
 +**Условие выбора**\\
 +На примере проверки даты
 +<code sql>
 +if(`date` = CurDate(), 'Сегодня', if(`date`= CurDate() - interval 1 day, 'Вчера', date_format(`date`, '%d %b')))
 +
 +select if(1=1, 'true', 'false');
 +</code>
 +
 +
 +**Объединение запросов**\\
 +Объединяет несколько запросов в один результат, необходимо что бы кол-во столбцов было одинаковым, названия берется из первого запроса\\
 +<code sql>
 +select `col1`, `col2` from `tab1`
 +union
 +select `col1`, `col2` from `tab2`
 +order by `col1` asc;
 +</code>
 +
 +
 +**Усечение строки**\\
 +Применяется ко всему столбцу, укорачиваем строку на 8 символов
 +<code sql>
 +update `table1` set `col1`= substring(`col1`, 1, (length(`col1`)- 8));
 +</code>
 +
 +
 +**Переменные**\\
 +<code sql>
 +SELECT @start := 1, @finish := 10;
 +SELECT * FROM places WHERE place BETWEEN @start AND @finish;
 +</code>
 +</details>
 +
 +
 +<details>
 +<summary>:!: Администрирование</summary>
 +<code mysql>
 +  # Запуск команды **mysql** без sudo
 +SET PASSWORD = PASSWORD('your-pass');
 +update mysql.user set plugin = 'mysql_native_password' where User='root';
 +FLUSH PRIVILAGES;
 +
 +  # Очистка таблицы + сброс инкремента
 +truncate table `table`;
 +</code>
 +</details>
 +
 +
 +
 +<details>
 +<summary>:!: В разработке. MSSQL</summary>
 +**Создание таблицы**\\
 +<code sql>
 +create table db-name.dbo[схема].table-name 
 +(id int IDENTITY(1,1) PRIMARY KEY, 
 +field1 nvarchar(max) not null);
 +</code>
 +
 +
 +**Удаление таблицы с проверкой существования**\\
 +<code sql>
 +if object_id('dbname.dbo.tab_test', 'U') is not null
 +drop table dbname.dbo.tab_test;
 +
 +# MSSQL 2016
 +drop table if exists dbname.dbo.tab_test;
 +</code>
 +</details>
 +
 +
 +
  
  
databases/mysql.1665638514.txt.gz · Последнее изменение: 2022/10/13 05:21 — admin