MySql

Установка

MariaDB 10:

$ apt-get install libmariadbclient18 libmysqlclient18 mariadb-client mariadb-client-10.0 mariadb-client-core-10.0 mariadb-common mariadb-server

Percona 5.6:

$ install percona-server-common-5.6 percona-server-server percona-server-client

Инициализация

dpkg-reconfigure mysql-server-5.1 - установка root пароля
mysql_upgrade -u root -p --force - ремонт баз данных
mysqlcheck -uroot -p --auto-repair --check --optimize --all-databases - ремонт баз данных
mysql_install_db - создание mysql database
mysql_install_db --rpm --user=mysql
mysql_install_db --defaults-file=/etc/mysql/my.cnf
mysql_install_db --no-defaults --basedir=/usr --datadir=/var/lib/mysql
mysql_install_db --defaults-file=/etc/mysql/my.cnf --force --basedir=/usr --datadir=/var/lib/mysql --user=mysql

Настройка и оптимизация

my.cnf - Файл конфигурации mysql

Профилирование MYSQL

Dump

mysqldump -u[uname] -p[pass] > mysql.sql
mysqldump -u[uname] -p[pass] [dbname] | gzip -9 > backupfile.sql.gz
mysqldump --hex-blob -A > all_databases.sql
mysqldump --all-databases -u[uname] -p[pass] > dump.sql
mysqldump --host=localhost --user=root --password=password --opt --skip-dump-date --skip-extended-insert --database [table-name] > /tmp/mydatabase.sql

Утилиты

Система резервного копирования и восстановления данных для MySql - Архивирование БД (Ориентировался на Debian архитектуру)

Restore

mysql -u[uname] -p[pass] database_name < file_name.sql
gunzip -c /path/backup.Sql.Gz | mysql -h -u[uname] -p[pass]
gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]
/usr/bin/gunzip < database.gz database.sql
mysql -u[uname] -p[pass] username_dbname < database.sql
mysql -u[user] -p database < database.sql
mysql>source /path/to/database.sql

Утилиты

Система резервного копирования и восстановления данных для MySql - Архивирование БД (Ориентировался на Debian архитектуру)

SQL

SHOW DATABASES; SHOW TABLES; CREATE DATABASE rxmeditrend; USE rxmeditrend; SELECT USER, Host FROM mysql.user; # List ALL the users IN the system CREATE USER 'username' IDENTIFIED BY 'password'; GRANT ALL ON rxmeditrend.* TO 'username'; SHOW GRANTS FOR 'username'@'host'; SET PASSWORD FOR 'username'@'host' = PASSWORD('password'); FLUSH PRIVILEGES; # FLUSH privileges after manually manipulating the USER TABLE SHOW TABLE STATUS;

MyISAM

tbl_name.frm: Table definition

tbl_name.MYD: Table data

tbl_name.MYI: Table indexes

CHECK TABLE tbl_name QUICK;
REPAIR TABLE tbl_name EXTENDED;

InnoDB

Восстановление

ibdata1: By default all data and indexes for all tables/databases is stored in a single, shared file: ibdata1. idbata1 does not shrink. If rows are deleted, space will be reclaimed by new rows, but the file will only grow in size.

ib_logfile0 and ib_logfile1: Redo log files to recover lost data if MySQL is not shutdown properly.

tablename.frm: Each table has a small *.frm file in the database-specific directory which stores the table definition.

Компаненты / Настройка / Клиенты

Система резервного копирования и восстановления данных для MySql - Архивирование БД (Ориентировался на Debian архитектуру)

http://www.chive-project.com

https://www.phpmyadmin.net/

http://www.enginsite.com/MySQL-client-manager-and-GUI-for-MySQL.htm

http://www.heidisql.com/

https://www.adminer.org/ (1 файл)

http://www.sequelpro.com/ (MacOS)

Ссылки

Движки

MyISAM, Aria

InnoDB, XtraDB

Работа MySQL

Закрепить запись наверху при выборке

выбрать записи с определёнными id соблюдая порядок

Оптимизация работы MySql

A Visual Explanation of SQL Joins

mysql collation charts

Convert Tree Structure From Nested Set Into Adjacency List

Convert an adjacency list (parent / child) model into a nested set model

Storing Hierarchical Data in a Database Article

http://www.sql.ru/

http://eddnet.org/?cat=102

deadlock - Взаимная блокировка

Краткий обзор движков таблиц MySQL

Блокировки в MySQL

http://oksoft.blogspot.in/2008/10/mysqldump-backups-and-transfers.html

http://www.sqlstyle.guide/

http://sqlinfo.ru

http://www.sql.ru/

Множественный UPDATE в MySQL

toggle для mysql — С логическими операциями у MySQL всё в полном порядке.

MySQL, сложение и NULL — см. COALESCE.

Добавить если ещё нет, вставить если нет и обновить если есть

Сжатие данных при передаче и MySQL

Нагружаем MySQL

utf8_unicode_ci или utf8_general_ci?

Common MySQL Queries

http://h1d3.org/posts/mariadb-master-master.html

Отличная обучалка

Закрепить запись наверху при выборке

Выбрать новости с определёнными id соблюдая порядок

A Visual Explanation of SQL Joins

MySQL - UPDATE query based on SELECT Query / Обновление самого себя How can i update itself in mysql/mariadb

SQL - Запросы

FIELD_IN_SET()

Миграции

https://github.com/robmorgan/phinx

Обслуживание MySql

Ошибки MySql/MariaDB

Сброс пароля root в MySQL

Система резервного копирования и восстановления данных для MySql - Архивирование БД (Ориентировался на Debian архитектуру)

Восстановление пользователя debian-sys-maint

Восстановление таблиц MySql

Восстановление таблиц из GZ файлов

sqlmap - Automatic SQL injection and database takeover tool

Кодировка

character_set_client - кодировка, в которой данные будут поступать от клиента

character_set_connection - кодировка по умолчанию для всего, что в рамках соединения не имеет кодировки

character_set_database - кодировка по умолчанию для баз

character_set_filesystem - кодировка для работы с файловой системой (LOAD DATA INFILE, SELECT … INTO OUTFILE, и т.д.)

character_set_results - кодировка, в которой будет выбран результат

character_set_server - кодировка, в которой работает сервер

character_set_system - кодировка, в которой задаются идентификаторы MySQL, всегда UTF8

character_sets_dir - папка с кодировками

Индексы

http://use-the-index-luke.com/

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Деревья

Convert Tree Structure From Nested Set Into Adjacency List

Convert an adjacency list model into a nested set model

Storing Hierarchical Data in a Database

Быстродействие / Performance

https://www.percona.com/blog/

SQL Slow Query Monitor

Книги

http://www.celko.com/books.htm

Безопасность

SQL-инъекции