Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>Server mysql percona mariadb databases}} ====== MySql ====== ===== Установка ===== MariaDB: <code> apt-get install libmariadbclient18 libmysqlclient18 mariadb-client mariadb-client-10.0 mariadb-client-core-10.0 mariadb-common mariadb-server </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. ====== Ошибки / Errors ====== * ERROR 1878 (HY000): Temporary file write failure * Необходимо увеличить /tmp раздел или сменить его в настройках на больший (например на /opt). свободный размер можно узнать командой df -h <code> [mysqld] tmpdir = /opt</code> * ERROR 1114 (HY000): The table is full * Закончилось место под индексы ====== Компаненты / Настройка / Клиенты ====== * **[[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 ==== Миграции ==== * 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 файлов]] ==== Индексы ==== * 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]] ==== Книги ==== * [[http://www.celko.com/books.htm]] ==== Безопасность ==== * [[http://webew.ru/articles/2078.webew|SQL-инъекции]] ==== Общее ==== * [[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]]СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal