###### tags: `netology` `devops` # Домашнее задание к занятию "6.3. MySQL" ## Задача 1 - *Найдите команду для выдачи статуса БД и приведите в ответе из ее вывода версию сервера БД.* ```shell= mysql> status -------------- mysql Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL) Connection id: 19 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 8.0.23 MySQL Community Server - GPL Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /var/run/mysqld/mysqld.sock Binary data as: Hexadecimal Uptime: 13 min 51 sec Threads: 2 Questions: 106 Slow queries: 0 Opens: 137 Flush tables: 3 Open tables: 55 Queries per second avg: 0.127 -------------- ``` - *Приведите в ответе количество записей с price > 300.* ```sql= mysql> SELECT COUNT(*) FROM orders WHERE price > 300; +----------+ | COUNT(*) | +----------+ | 1 | +----------+ 1 row in set (0.01 sec) ``` ## Задача 2 - *Используя таблицу INFORMATION_SCHEMA.USER_ATTRIBUTES получите данные по пользователю test и приведите в ответе к задаче.* ```sql= mysql> SELECT * FROM INFORMATION_SCHEMA.USER_ATTRIBUTES WHERE USER = 'test' AND HOST = 'localhost'; +------+-----------+---------------------------------------+ | USER | HOST | ATTRIBUTE | +------+-----------+---------------------------------------+ | test | localhost | {"fname": "James", "lname": "Pretty"} | +------+-----------+---------------------------------------+ 1 row in set (0.00 sec) ``` ## Задача 3 - *Исследуйте, какой engine используется в таблице БД test_db и приведите в ответе.* ```sql= mysql> SHOW TABLE STATUS\G *************************** 1. row *************************** Name: orders Engine: InnoDB Version: 10 Row_format: Dynamic Rows: 5 Avg_row_length: 3276 Data_length: 16384 Max_data_length: 0 Index_length: 0 Data_free: 0 Auto_increment: 6 Create_time: 2021-02-06 12:19:35 Update_time: 2021-02-06 12:19:35 Check_time: NULL Collation: utf8mb4_0900_ai_ci Checksum: NULL Create_options: Comment: 1 row in set (0.02 sec) ``` - *Измените engine и приведите время выполнения и запрос на изменения из профайлера в ответе:* - на MyISAM - на InnoDB ```sql= SET profiling = 1; ALTER TABLE test_db.orders ENGINE = MyISAM; ALTER TABLE test_db.orders ENGINE = InnoDB; mysql> SHOW PROFILES; +----------+------------+--------------------------------------------+ | Query_ID | Duration | Query | +----------+------------+--------------------------------------------+ | 1 | 0.08565350 | ALTER TABLE test_db.orders ENGINE = MyISAM | | 2 | 0.07302175 | ALTER TABLE test_db.orders ENGINE = InnoDB | +----------+------------+--------------------------------------------+ 2 rows in set, 1 warning (0.00 sec) ``` ## Задача 4 **my.cnf**: ```bash= # Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # The MySQL Server configuration file. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL innodb_flush_log_at_trx_commit = 2 innodb_file_per_table = ON innodb_log_buffer_size = 1M innodb_buffer_pool_size = 30 innodb_log_file_size = 100M # Custom config should go here !includedir /etc/mysql/conf.d/ ```