Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>Server mysql percona mariadb databases}} ====== MySql ====== ===== Установка ===== MariaDB 10: <code bash> $ apt-get install libmariadbclient18 libmysqlclient18 mariadb-client mariadb-client-10.0 mariadb-client-core-10.0 mariadb-common mariadb-server </code> Percona 5.6: <code bash> $ install percona-server-common-5.6 percona-server-server percona-server-client </code> ===== Инициализация ===== <code> 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 </code> ===== Настройка и оптимизация ===== * [[mysql:my.cnf|]] * [[mysql:profiler|]] ===== Dump ===== <code> 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 </code> ==== Утилиты ==== * [[mysql:mysql_utils|]] - Архивирование БД (Ориентировался на Debian архитектуру) ===== Restore ===== <code> 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 </code> ==== Утилиты ==== * [[mysql:mysql_utils|]] - Архивирование БД (Ориентировался на Debian архитектуру) ====== SQL ====== <code 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; </code> ===== MyISAM ===== * tbl_name.frm: Table definition * tbl_name.MYD: Table data * tbl_name.MYI: Table indexes <code> CHECK TABLE tbl_name QUICK; REPAIR TABLE tbl_name EXTENDED; </code> ===== InnoDB ===== [[restore|Восстановление]] * 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. ===== Ошибки ===== ==== Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction ==== <code> SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction The SQL being executed was: UPDATE tbl_point SET location = POINTFROMTEXT(CONCAT('POINT(55.683452 37.526923)')) </code> Для выяснения причины ошибки, необходимо запустить **SHOW ENGINE INNODB STATUS;** ====== Компаненты / Настройка / Клиенты ====== * **[[mysql:mysql_utils|]]** - Архивирование БД (Ориентировался на 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) ====== Ссылки ====== ==== Движки ==== * [[db:mysql:tables|MyISAM, Aria]] * [[db:mysql:tables|InnoDB, XtraDB]] ==== Работа MySQL ==== * [[:Закрепить запись наверху при выборке|Закрепить запись наверху при выборке]] * [[sql:order fields by id|выбрать записи с определёнными id соблюдая порядок]] * [[optimize|]] * [[http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html|A Visual Explanation of SQL Joins]] * [[http://www.collation-charts.org/mysql60|mysql collation charts]] * [[http://pratchev.blogspot.com/2007/02/convert-tree-structure-from-nested-set.html|Convert Tree Structure From Nested Set Into Adjacency List]] * [[http://data.bangtech.com/sql/nested_set_treeview.htm|Convert an adjacency list (parent / child) model into a nested set model]] * [[http://www.sitepoint.com/hierarchical-data-database|Storing Hierarchical Data in a Database Article]] * http://www.sql.ru/ * http://eddnet.org/?cat=102 * [[deadlock|deadlock]] - Взаимная блокировка * [[:db:mysql:tables|Краткий обзор движков таблиц MySQL]] * [[http://habrahabr.ru/post/46542/|Блокировки в MySQL]] * http://oksoft.blogspot.in/2008/10/mysqldump-backups-and-transfers.html * http://www.sqlstyle.guide/ * http://sqlinfo.ru * http://www.sql.ru/ * [[http://rmcreative.ru/blog/post/mnozhestvennyy-update-v-mysql|Множественный UPDATE в MySQL]] * [[http://rmcreative.ru/blog/post/toggle-dlja-mysql|toggle для mysql]] — С логическими операциями у MySQL всё в полном порядке. * [[http://rmcreative.ru/blog/post/mysql-slozhenie-i-null|MySQL, сложение и NULL]] — см. COALESCE. * [[http://rmcreative.ru/blog/post/mysql-dobavit-esli-eschjo-net|Добавить если ещё нет, вставить если нет и обновить если есть]] * [[http://rmcreative.ru/blog/post/mysql_client_compress|Сжатие данных при передаче и MySQL]] * [[http://rmcreative.ru/blog/post/nagruzhaem-mysql|Нагружаем MySQL]] * [[http://rmcreative.ru/blog/post/utf8_unicode_ci-ili-utf8_general_ci|utf8_unicode_ci или utf8_general_ci?]] * [[http://www.artfulsoftware.com/infotree/queries.php#122|Common MySQL Queries]] * http://h1d3.org/posts/mariadb-master-master.html * [[http://www.sql-ex.ru/|Отличная обучалка]] * [[http://rmcreative.ru/blog/post/zakrepit-zapis-naverkhu-pri-vyborke|Закрепить запись наверху при выборке]] * [[http://rmcreative.ru/blog/post/mysql-vybrat-novosti-s-opredeljonnymi-id-sobljudaja-porjadok|Выбрать новости с определёнными id соблюдая порядок]] * [[http://www.codinghorror.com/blog/archives/000976.html|A Visual Explanation of SQL Joins]] * [[sql:mysql:update-someself]] * [[sql:mysql:select]] * [[sql:mysql:select:field_in_set]] ==== Миграции ==== * https://github.com/robmorgan/phinx ==== Обслуживание MySql ==== * **[[:mysql:errors|]]** * **[[:mysql|Сброс пароля root в MySQL]]** * **[[mysql:mysql_utils|]]** - Архивирование БД (Ориентировался на Debian архитектуру) * [[:mysql:debian|Восстановление пользователя debian-sys-maint]] * [[repaire|Восстановление таблиц MySql]] * [[:mysql:restore-gz|Восстановление таблиц из GZ файлов]] ==== Кодировка ==== * 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/ * [[http://habrahabr.ru/post/70640/|Индексы в MySQL: многоколоночные индексы против комбинированных индексов]] ==== Деревья ==== * [[http://pratchev.blogspot.com/2007/02/convert-tree-structure-from-nested-set.html|Convert Tree Structure From Nested Set Into Adjacency List]] * [[http://data.bangtech.com/sql/nested_set_treeview.htm|Convert an adjacency list model into a nested set model]] * [[http://articles.sitepoint.com/print/hierarchical-data-database|Storing Hierarchical Data in a Database]] ==== Быстродействие / Performance ==== * https://www.percona.com/blog/ * [[mysql:sqL-slow-query-monitor]] ==== Книги ==== * [[http://www.celko.com/books.htm]] ==== Безопасность ==== * [[http://webew.ru/articles/2078.webew|SQL-инъекции]] СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal