Как скопировать базу данных MySQL
Описание: в этой статье показано, как скопировать базу данных MySQL на одном и том же сервере и с одного сервера на другой.
Копирование базы данных MySQL на тот же сервер
Чтобы скопировать базу данных MySQL, вам необходимо выполнить следующие шаги:
- Сначала создайте новую базу данных, используя оператор CREATE DATABASE.
- Во-вторых, экспортируйте все объекты базы данных и данные базы данных, из которой вы хотите скопировать, используя инструмент mysqldump.
- В-третьих, импортируйте файл дампа SQL в новую базу данных.
Для демонстрации мы скопируем базу данных classicmodels в базу данных classicmodels_backup.
Шаг 1. Создайте базу данных classmodels_backup:
Сначала войдите на сервер базы данных MySQL:
>mysql -u root -p Enter password: **********
Затем используйте оператор CREATE DATABASE следующим образом:
> CREATE DATABASE classicmodels_backup;
В-третьих, используйте команду SHOW DATABASES для проверки:
> SHOW DATABASES
Сервер базы данных MySQL возвращает следующий вывод:
+----------------------+ | Database | +----------------------+ | classicmodels | | classicmodels_backup | | information_schema | | mysql | | performance_schema | | sys | +----------------------+ 6 rows in set (0. 00 sec)
Как видите, мы успешно создали базу данных classicmodels_backup.
Шаг 2 . Копирование объектов базы данных и данные в файл SQL с помощью инструмента mysqldump.
Предположим, вы хотите сбросить объекты базы данных и данные базы данных classicmodels в файл SQL, расположенный в папке D:\db, вот команда:
>mysqldump -u root -p classicmodels > d:\db\classicmodels.sql Enter password: **********
По сути, эта команда инструктирует mysqldump войти на сервер MySQL, используя учетную запись пользователя root с паролем, и экспортирует объекты базы данных и данные classicmodels базы данных в d:\db\classicmodels.sql. Обратите внимание, что оператор(>) означает экспорт.
Шаг 3 . Импортируйте файл d:\db\classicmodels.sql в базу данных classicmodels_backup.
>mysql -u root -p classicmodels_backup < d:\db\classicmodels.sql Enter password: **********
Обратите внимание, что оператор (<) означает импорт.
Чтобы проверить импорт, вы можете выполнить быструю проверку с помощью команды SHOW TABLES.
> SHOW TABLES FROM classicmodels_backup;
Он вернул следующий вывод:
+--------------------------------+ | Tables_in_classicmodels_backup | +--------------------------------+ | customers | | employees | | offices | | orderdetails | | orders | | payments | | productlines | | products | +--------------------------------+ 8 rows in set (0.01 sec)
Как видите, мы успешно скопировали все объекты и данные из базы данных classicmodels в базу данных classicmodels_backup.
Скопируйте базу данных MySQL с одного сервера на другой
Чтобы скопировать базу данных MySQL с сервера на другой, выполните следующие действия:
- Экспортируйте базу данных на исходном сервере в файл дампа SQL.
- Скопируйте файл дампа SQL на конечный сервер
- Импортируйте файл дампа SQL на конечный сервер
Давайте посмотрим, как скопировать базу данных classicmodels с сервера на другой.
Сначала экспортируйте базу данных classicmodels в файл db.sql.
>mysqldump -u root -p --databases classicmodels > d:\db\db.sql Enter password: **********
Обратите внимание , что опция –database позволяет включить mysqldump как операторы CREATE DATABASE и USE в файле SQL дамп. Эти операторы создадут базу данных classicmodels на конечном сервере и сделают новую базу данных базой данных по умолчанию для загрузки данных.
Вкратце, следующие операторы включаются в начало файла дампа SQL, когда мы используем –databaseoption.
CREATE DATABASE `classicmodels`. USE `classicmodels`;
В-третьих, импортируйте файл db.sql на сервер базы данных, предполагая, что файл db.sql был скопирован в папку c:\tmp\.
>mysql -u root -p classicmodels < c:\tmp\db. sql
В этой статье вы шаг за шагом научились копировать базу данных MySQL на тот же сервер и копировать базу данных с одного сервера на другой.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как создать Базу Данных MySql через phpmyadmin
Всем доброго времени суток! Сегодня я расскажу вам о том, как создать базу данных в phpmyadmin. И так, в первую очередь запускаем сервер и заходим в phpMyAdmin.Если у Вас сервер установлен на локальном компьютере, то в Danwer phpMyAdmin расположен по адресу http://localhost/tools/phpmyadmin/, а в WAMP и в других серверах, phpMyAdmin доступен по адресу http://localhost/phpmyadmin/
На реальном хостинге, phpMyadmin доступен по другому адресу. По какому именно Вам нужно узнать у хостинга провайдера.
Далее, для того чтобы создать базу данных (В дальнейшем я буду писать коротко БД ) в phpmyadmin нажимаем на Базы данных.
В версии 5.5 это выглядит так:
Далее в поле имя новой БД вводим название нашей БД, например test. В поле сравнение выбираем кодировку БД, utf8mb4_unicode_ci. Эту кодировку необходимо использовать если у Вас версия MySQL выше 5.5.3.
Если мы не указываем кодировку, то есть оставляем как есть «сравнение» то это кодировка выбирается по умолчанию. После того как заполнили эти поля, нажимаем на кнопку создать.
Посередине экрана появится сообщение, что База данных test была создана. Она появится в списке с созданными БД. Находим ее в этом списке, кликнем на ее название и попадаем внутри созданной БД. Изначально она пуста, поэтому давайте создадим таблицу.
Есть два способа для создания таблиц:
Первый способ: В левой колонке нажимаем на создать таблицу
И появится такое окно:
Задаем имя для таблицы и название для каждого поля. Например, мы хотим создать таблицу с категориями сайта. Поэтому задаем имя таблицы categories. Для этой таблицы нам понадобится только 2 поля, это id и название категорий (name) По правилам в любой таблицы, первое поле всегда имеет название id, то есть идентификатор. Для этого поля обязательно выбираем тип INT и задаем длину значения в цифрах, например 2. Индекс выбираем PRIMARY, таким образом, мы задаем ей первичный ключ и вставляем галочку у A_I (Auto Increment) для того чтобы ее значение автоматически увеличивалось на единичку.
Для поля с названием категорий выбираем тип VARCHAR и задаем максимальную длину 255 символов.
Если вы хотите добавить еще одно или больше полей, то в поле добавить, введите то число, которое соответствует кол-ву полей, которые вы хотите добавить и нажмите ок.
Нам не нужно четыре поля, а только два, поэтому заполняли только два поля, а остальные оставляем пустыми. В таблицу добавиться только заполненные поля.
После того как заполнили все нужные поля, передвигаемся по странице чуть ниже и нажимаем на Сохранить.
Вот и все, таблица с названием categories создана. Она появится в списке таблиц, в левой части экрана.
Второй способ:
Сразу как вошли в БД видим такой блок Создать таблицу. В этом блоке есть 2 поля, где мы можем вводить название таблицы и кол-во столбцов в таблице. Создадим, например таблицу с регистрированными пользователями, назовем эту таблицу users . В этой таблицы будут такие поля: id, login, password, e-mail, f_name, s_name, В поле количество столбцов вводим 6 и нажимаем ок.
Появится то же самое окно, как и в первом способе.
После того как заполняли все поля спускаемся чуть ниже и жмем на кнопку сохранить.
Все таблица users создана. Она также добавилась в левом списке с созданными БД.
На сегодня все. Теперь вы знаете, как создать базу данных и таблицы MySQL в phpmyadmin без трудностей и головоломок. Желаю всем удачи!
Понравилась статья?
Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.
Поделиться с друзьями:
Подписаться на новые статьи:
Поддержите пожалуйста мой проект!
Если у Вас есть какие-то вопросы или предложения, то можете писать их в комментариях или мне на почту [email protected]. И если Вы заметили какую-то ошибку в статье, то прошу Вас, сообщите мне об этом, и в ближайшее время я всё исправлю.
Добавляйтесь ко мне в друзья в:
Добавляйтесь в мои группы:
Подпишитесь на мои каналы:
Автор статьи: Мунтян Сергей
Копирование материалов с сайта sozdatisite.ru ЗАПРЕЩЕНО!!!
Дата добавления: 2014-06-21 04:42:03
Как создать базу данных MySQL для WordPress
Создание базы данных MySQL является обязательным условием для установки и работы с WordPress, поэтому приступим.
Нам необходимо зайти в админ.панель своего хостинга и выбрать пункт управление базами данных MySQL (или просто базы данных, названия могут отличаться).
У моего хостинг провайдера создание базы данных выглядит таким образом :
Я просто выбираю имя пользователя и пароль и БД создается автоматически со всеми настройками.
Если вы пользуетесь хостингом Бегет то за вас это все сделают автоматически и вам не придется тратить время на создание и настройку БД и WordPressa.
Как создать базу данных MySQL в phpMyAdmin
Если у вас панель управления базами данных phpMyAdmin то для создания БД вам необходимо сделать следующее:
Перейти во вкладку Базы Данных, выбрать имя для своей базы. В пункте Сравнение выбираем кодировку utf8_unicode_ci и жмем Создать.
Далее во вкладке Пользователи (Привелегии) нужно создать пользователя для нашей базы.
Жмем кнопку “Добавить пользователя” в открывшемся меню выбираем имя , пароль и устанавливаем ему все права в Глобальных привилегиях — жмем “отметить все”.
Однако, как правило, хостинг уже задает определенные настройки для таблиц самостоятельно (иногда при регистрации сайта на хостинге вам сразу создается таблица, а данные к ней высылаются письмом, в таком случае нужно просто заполнить присланные данные в файл wp-config. php или в окне браузера при установке WordPress)
Иногда вы можете выбрать только пароль, а имя базы и пользователя устанавливаются хостинг-провайдером такие же как ваш логин, либо же ваш логин будет префиксом для имени пользователя и базы которые вы сами выбираете.
Иногда и пароль к базе так же будет установлен по умолчанию как ваш пароль к админке.
Все зависит от настроек вашего хостинг-провайдера, но думаю, смысл вы поняли, главное это создать таблицу и знать ее название, имя пользователя с правами к ней, и пароль.
Теперь имея созданную базу данных, мы можем перейти к пункту установки WordPress и наконец приступить к созданию своего сайта.
Как предоставить все привилегии для базы данных в MySQL
Чтобы начать редактирование привилегий в MySQL, вы должны сначала войти на свой сервер, а затем подключиться к клиенту mysql
. Обычно вам нужно подключиться к root
или любой другой учетной записи, которая является вашей основной учетной записью «суперпользователя», которая имеет полный доступ на протяжении всей установки MySQL.
Обычно пользователю root
назначается пароль аутентификации при установке MySQL, но если это не так, вам следует предпринять шаги для повышения безопасности, добавив пароли root
, как показано в официальной документации.
В этом примере мы предположим, что root
является основной учетной записью MySQL. Чтобы начать использовать инструмент командной строки MySQL ( mysqlcli
), подключитесь к серверу как пользователь root , затем введите команду
mysql
:
$ MySQL
Добро пожаловать в монитор MySQL. Команды заканчиваются на; или \ g.
Ваш идентификатор подключения MySQL - 112813
Версия сервера: 5.5.43-0ubuntu0.14.04.1 (Ubuntu)
[...]
mysql>
В случае успеха вы увидите некоторые данные о вашем соединении с MySQL и увидите приглашение mysql
.
Примечание: в случае, если вы не можете подключиться напрямую к серверу как пользователь root перед подключением к
mysql
, вы можете указать пользователя, которого вы хотите подключить , как , добавив --user =
флаг:
Предоставление привилегий
Теперь, когда вы находитесь в командной строке mysqlcli
, вам нужно только ввести команду GRANT
с необходимыми параметрами, чтобы применить соответствующие разрешения.
Типы привилегий
Команда GRANT
может применять широкий спектр привилегий, от возможности СОЗДАТЬ
таблиц и баз данных, читать или записывать ФАЙЛОВ
и даже SHUTDOWN
на сервере. Команде доступен широкий спектр флагов и параметров, поэтому вы можете ознакомиться с тем, что на самом деле может делать GRANT
, просмотрев официальную документацию.
Привилегии, специфичные для базы данных
В большинстве случаев вы будете предоставлять привилегии пользователям MySQL на основе конкретной базы данных
, к которой учетная запись должна иметь доступ.Обычной практикой является, например, для каждой уникальной базы данных
MySQL на сервере иметь своего собственного уникального пользователя
, связанного с ней, так что только один единственный пользователь
имеет доступ для аутентификации к одной единственной базе данных
и наоборот. наоборот.
- ПРЕДОСТАВИТЬ ВСЕ привилегии
пользователю
, позволяя этому пользователю полный контроль над конкретной базой данных .
, используйте следующий синтаксис:
mysql> ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА имя_базы_данных.* TO 'username' @ 'localhost';
С помощью этой команды мы отправили MySQL по адресу:
-
GRANT
PRIVILEGES
типаALL
(таким образом, все, конечно). Примечание. Большинство современных установок MySQL не требуют дополнительного ключевого словаPRIVILEGES
. - Эти привилегии предназначены для
имя_базы_данных
и применяются ко всем таблицам этой базы данных, что обозначается следующим образом. *
. - Эти привилегии назначаются
имени пользователя
, когда это имя пользователя@ 'localhost'
. Чтобы указать любой допустимый хост, замените'localhost'
на'%'
.
Вместо предоставления всех привилегий для всей базы данных, возможно, вы захотите дать пользователю tolkien
только возможность читать данные ( SELECT
) из таблицы авторов
базы данных books
.Это легко сделать так:
mysql> ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА books.authors 'tolkien' @ 'localhost';
Создание другого суперпользователя
Хотя это и не совсем безопасно, в некоторых случаях вы можете захотеть создать другого «суперпользователя», который будет иметь ВСЕ привилегии во ВСЕХ базах данных на сервере. Это можно сделать аналогично описанному выше, но заменив имя_базы_данных
на звездочку с подстановкой:
mysql> ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *.* TO 'tolkien' @ '%';
Теперь tolkien
имеет те же привилегии, что и учетная запись root по умолчанию , будьте осторожны!
Сохранение изменений
В качестве последнего шага после любых обновлений прав пользователей обязательно сохраните изменения, введя команду FLUSH PRIVILEGES
из приглашения mysql
:
mysql> ПРИВИЛЕГИИ ПРОМЫВКИ;
Запрос в порядке, затронуто 0 строк (0,01 сек)
Создать и удалить базу данных MySQL
В чем дело?
На протяжении многих лет MySQL и MariaDB были самыми популярными системами управления базами данных с открытым исходным кодом во всем мире. Поэтому неудивительно, что большинство распространенного программного обеспечения поддерживает их изначально.
На самом деле существует только две большие области баз данных. Реляционные базы данных (MySQL, PostgreSQL, Oracle и аналогичные) и так называемые нереляционные базы данных, также называемые базами данных без SQL.
MySQL и MariaDB относятся к реляционным базам данных.
Мы работаем с этими базами данных очень часто и обнаружили, что большинство задач можно выполнить с помощью нескольких команд. В этой статье мы познакомим вас с командами MySQL или MariaDB для создания новой базы данных.
Затем мы покажем вам, как удалить новую (или любую другую) базу данных.
Запуск консоли MySQL
Сначала войдите на свой сервер MySQL или MariaDB. Для этого подключитесь к вашему серверу через SSH. В Windows вы можете использовать программу PuTTY, в Linux использовать любую программу терминала (например, xTerm), а в MAC OS X вы просто используете встроенный терминал (введите «терминал» в поиске Spotlight и подтвердите, нажав Enter).
Если вы вошли на сервер, вы можете просто войти на свой сервер MySQL или MariaDB.Если вы еще не создали нового пользователя с правами на создание новых баз данных, используйте пользователя «root».
Войдите как пользователь root в MySQL
Процесс регистрации очень прост. После того, как вы вошли на свой сервер, вы просто используете mysql-binary для входа.
Если ваш сервер MySQL или MariaDB установил пароль, вы вызываете программу следующим образом:
mysql -u root -p
Если вы не установили пароль для пользователя root, не используйте параметр '-п'.Если все пойдет хорошо, вы должны увидеть следующий результат:
root @ mysql: ~ # mysql -u root -p
Введите пароль:
Добро пожаловать в монитор MySQL. Команды заканчиваются на; или \ g.
Ваш идентификатор подключения MySQL - 98
Версия сервера: 5.5.47-0 + deb8u1 (Debian)
Авторское право (c) 2000, 2015, Oracle и / или ее дочерние компании. Все права защищены.
Oracle является зарегистрированным товарным знаком Oracle Corporation и / или ее
филиалы. Другие названия могут быть товарными знаками соответствующих
владельцев.
Введите "помощь"; или '\ h' для помощи.Введите '\ c', чтобы очистить текущий оператор ввода.
mysql>
Непосредственно после входа в систему с правами администратора (root) вы можете создавать новые базы данных или отображать существующие базы данных.
Список всех баз данных
Если у вас недавно установлена система с новым экземпляром MySQL или MariaDB, то, вероятно, существует не слишком много баз данных. Прежде всего, позвольте MySQL или MariaDB показать вам все существующие базы данных с помощью команды «SHOW DATABASES;». Убедитесь, что в консоли SQL есть команда с точкой с запятой; в конце.
mysql> ПОКАЗАТЬ БАЗЫ ДАННЫХ;
+ -------------------- +
| База данных |
+ -------------------- +
| information_schema |
| mysql |
| performance_schema |
+ -------------------- +
3 ряда в наборе (0,00 сек)
mysql>
Как видите, мой сервер скучный и пустой.
Создание базы данных MySQL или MariaDB
DaСоздание новой базы данных в MySQL или MariaDB так же просто, как перечисление существующих баз данных. Просто используйте команду SQL «CREATE DATABASE
mysql> СОЗДАТЬ блог БАЗЫ ДАННЫХ;
Запрос в порядке, затронута 1 строка (0,00 сек)
mysql>
Если все прошло хорошо, вы только что создали базу данных под названием blog . Если вы снова перечислите все свои базы данных, вы сможете найти вновь созданную базу данных в выводе:
mysql> SHOW DATABASES;
+ -------------------- +
| База данных |
+ -------------------- +
| information_schema |
| блог |
| mysql |
| performance_schema |
+ -------------------- +
4 ряда в наборе (0.00 сек)
mysql>
Удаление базы данных MySQL или MariaDB
Если вы удаляете базу данных напрямую с помощью инструмента командной строки, обязательно удалите правильную. После удаления базы данных, как правило, нет возврата.
Сначала перечислите все базы данных на вашем сервере. Используйте команду «SHOW DATABASES;» в консоли mysql, как в примере выше.
Теперь скопируйте имя базы данных, которую хотите удалить.
Чтобы удалить базу данных, вам понадобится команда «DROP DATABASE».Синтаксис аналогичен созданию базы данных. ‘DROP DATABASE
Пример может выглядеть так:
mysql> DROP DATABASE blog;
Запрос в порядке, затронуто 0 строк (0,01 сек)
mysql>
Консоль mysql здесь не очень полезна. Если все прошло правильно, вы увидите простое «ОК».
Используйте команду «SHOW DATABASES;», чтобы дважды проверить, что база данных была удалена.
Дополнительная информация
Zurück zur Tutorial Übersicht Назад к обзору учебного курса
MySQL «показать пользователей»: как отобразить / перечислить пользователей в базе данных MySQL
Часто задаваемые вопросы о пользователях MySQL: Как мне отобразить / перечислить пользователей MySQL, т. е. учетные записи пользователей в базе данных MySQL или MariaDB?
Чтобы отобразить / перечислить пользователей в базе данных MySQL, сначала войдите на сервер MySQL в качестве административного пользователя с помощью клиента командной строки mysql
, затем выполните этот запрос MySQL:
mysql> выберите * из mysql.пользователь;
Однако обратите внимание, что этот запрос показывает все столбцы из таблицы mysql.user , что обеспечивает большой объем вывода, поэтому на практике вы можете захотеть обрезать некоторые поля для отображения, что-то вроде этого :
mysql> выберите хост, пользователя, пароль от mysql.user;
В следующем разделе представлены дополнительные сведения и сведения об этом втором запросе.
Как уменьшить количество отображаемой «пользовательской» информации
Вы можете получить список полей в файле mysql.таблица пользователя
, выполнив этот запрос MySQL:
mysql> desc mysql. user;
На моем текущем сервере отображаются следующие 37 столбцов информации о пользователе MySQL, как показано здесь:
mysql> desc mysql.user; + ----------------------- + ------------------------- ---------- + ------ + ----- + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Экстра | + ----------------------- + ------------------------- ---------- + ------ + ----- + --------- + ------- + | Хост | символ (60) | НЕТ | PRI | | | | Пользователь | символ (16) | НЕТ | PRI | | | | Пароль | символ (41) | НЕТ | | | | | Select_priv | enum ('N', 'Y') | НЕТ | | N | | | Insert_priv | enum ('N', 'Y') | НЕТ | | N | | | Update_priv | enum ('N', 'Y') | НЕТ | | N | | | Delete_priv | enum ('N', 'Y') | НЕТ | | N | | | Create_priv | enum ('N', 'Y') | НЕТ | | N | | | Drop_priv | enum ('N', 'Y') | НЕТ | | N | | | Reload_priv | enum ('N', 'Y') | НЕТ | | N | | | Shutdown_priv | enum ('N', 'Y') | НЕТ | | N | | | Process_priv | enum ('N', 'Y') | НЕТ | | N | | | File_priv | enum ('N', 'Y') | НЕТ | | N | | | Grant_priv | enum ('N', 'Y') | НЕТ | | N | | | References_priv | enum ('N', 'Y') | НЕТ | | N | | | Index_priv | enum ('N', 'Y') | НЕТ | | N | | | Alter_priv | enum ('N', 'Y') | НЕТ | | N | | | Show_db_priv | enum ('N', 'Y') | НЕТ | | N | | | Super_priv | enum ('N', 'Y') | НЕТ | | N | | | Create_tmp_table_priv | enum ('N', 'Y') | НЕТ | | N | | | Lock_tables_priv | enum ('N', 'Y') | НЕТ | | N | | | Execute_priv | enum ('N', 'Y') | НЕТ | | N | | | Repl_slave_priv | enum ('N', 'Y') | НЕТ | | N | | | Repl_client_priv | enum ('N', 'Y') | НЕТ | | N | | | Create_view_priv | enum ('N', 'Y') | НЕТ | | N | | | Show_view_priv | enum ('N', 'Y') | НЕТ | | N | | | Create_routine_priv | enum ('N', 'Y') | НЕТ | | N | | | Alter_routine_priv | enum ('N', 'Y') | НЕТ | | N | | | Create_user_priv | enum ('N', 'Y') | НЕТ | | N | | | ssl_type | enum ('', 'ЛЮБОЙ', 'X509', 'УКАЗАНО') | НЕТ | | | | | ssl_cipher | капля | НЕТ | | NULL | | | x509_issuer | капля | НЕТ | | NULL | | | x509_subject | капля | НЕТ | | NULL | | | max_questions | int (11) без знака | НЕТ | | 0 | | | max_updates | int (11) без знака | НЕТ | | 0 | | | max_connections | int (11) без знака | НЕТ | | 0 | | | max_user_connections | int (11) без знака | НЕТ | | 0 | | + ----------------------- + ------------------------- ---------- + ------ + ----- + --------- + ------- + 37 рядов в наборе (0. 10 сек)
Таким образом, в большинстве случаев, когда вы хотите показать учетные записи пользователей MySQL, вы, вероятно, захотите ограничить запросы пользователей MySQL несколькими важными столбцами, примерно так:
выберите хост, пользователя, пароль от mysql.user;
Итак, если вам нужно перечислить пользователей в базе данных MySQL, я надеюсь, что это было полезно.
404 | Микро Фокус
Ускорьте автоматизацию функционального тестирования для веб-приложений, мобильных приложений, API и корпоративных приложений
Обнаружение, проектирование и моделирование сервисов и API для устранения зависимостей и узких мест
Функциональное тестирование со сдвигом влево с использованием среды IDE, языка и выбранных платформ тестирования
Надежная и эффективная автоматизация функционального и регрессионного тестирования
Централизованная, вездесущая лаборатория для разработки, отладки, тестирования, мониторинга и оптимизации мобильных приложений
баз данных - Mysql | Документация на сервер
MySQL - это быстрый, многопоточный, многопользовательский и надежный сервер базы данных SQL. Он предназначен для критически важных, высоконагруженных производственных систем и массового программного обеспечения.
Установка
Чтобы установить MySQL, выполните следующую команду из командной строки:
sudo apt установить mysql-server
После завершения установки сервер MySQL должен запуститься автоматически. Вы можете быстро проверить его текущий статус через systemd:
sudo service mysql status
● mysql.service - Сервер сообщества MySQL
Загружен: загружен (/ lib / systemd / system / mysql.оказание услуг; включен; предустановка поставщика: включена)
Активен: активен (работает) с Tue 2019-10-08 14:37:38 PDT; 2 недели 5 дней назад
Основной PID: 2028 (mysqld)
Задач: 28 (лимит: 4915)
CGroup: /system.slice/mysql.service
└─2028 / usr / sbin / mysqld --daemonize --pid-file = / run / mysqld / mysqld.pid
08 октября, 14:37:36 db.example.org systemd [1]: запуск сервера сообщества MySQL ...
08 октября, 14:37:38 db. example.org systemd [1]: запущен сервер сообщества MySQL.
Состояние сети службы MySQL также можно проверить, выполнив команду ss
в командной строке терминала:
sudo ss -tap | grep mysql
Когда вы запустите эту команду, вы должны увидеть что-то вроде следующего:
СЛУШАТЬ 0 151 127.0.0.1: mysql 0.0.0.0:* пользователи: (("mysqld", pid = 149190, fd = 29))
СЛУШАТЬ 0 70 *: 33060 *: * users: (("mysqld", pid = 149190, fd = 32))
Если сервер работает некорректно, вы можете ввести следующую команду, чтобы запустить его:
sudo service mysql перезапуск
Хорошей отправной точкой для устранения неполадок является журнал systemd, доступ к которому можно получить из командной строки терминала с помощью этой команды:
sudo journalctl -u mysql
Конфигурация
Вы можете редактировать файлы в / etc / mysql /
, чтобы настроить основные параметры - файл журнала, номер порта и т. Д.Например, чтобы настроить MySQL для прослушивания соединений от сетевых хостов, в файле /etc/mysql/mysql.conf.d/mysqld.cnf
измените директиву bind-address на IP-адрес сервера:
адрес привязки = 192.168.0.5
Примечание
Замените 192.168.0.5 на соответствующий адрес, который можно определить через
ip address show
.
После изменения конфигурации демон MySQL необходимо перезапустить:
sudo systemctl перезапустить mysql.оказание услуг
Механизмы баз данных
Несмотря на то, что конфигурация MySQL по умолчанию, предоставляемая пакетами Ubuntu, отлично работает и работает хорошо, есть вещи, которые вы, возможно, захотите рассмотреть, прежде чем продолжить.
MySQL позволяет хранить данные разными способами. Эти методы называются механизмами базы данных или хранилища. Есть два основных движка, которые вам будут интересны: InnoDB и MyISAM. Механизмы хранения прозрачны для конечного пользователя.MySQL будет обрабатывать вещи по-разному, но независимо от того, какой механизм хранения используется, вы будете взаимодействовать с базой данных одинаково.
У каждого двигателя есть свои достоинства и недостатки.
Хотя возможно и может быть выгодно смешивать и сопоставлять механизмы базы данных на уровне таблицы, это снижает эффективность настройки производительности, которую вы можете сделать, поскольку вы будете разделять ресурсы между двумя механизмами вместо того, чтобы выделять их одному .
MyISAM является более старым из двух. При определенных обстоятельствах он может быть быстрее, чем InnoDB, и поддерживает рабочую нагрузку только для чтения. Некоторые веб-приложения были настроены для использования MyISAM (хотя это не означает, что они будут работать медленно под InnoDB). MyISAM также поддерживает тип данных FULLTEXT, который позволяет очень быстро искать большие объемы текстовых данных. Однако MyISAM может блокировать только всю таблицу для записи. Это означает, что только один процесс может обновлять таблицу за раз.Как и любое приложение, использующее настольные весы, это может стать помехой. В нем также отсутствует ведение журнала, что затрудняет восстановление данных после сбоя. По следующей ссылке приведены некоторые соображения по использованию MyISAM в производственной базе данных.
InnoDB - это более современный механизм базы данных, совместимый с ACID, что гарантирует надежную обработку транзакций базы данных. Блокировка записи может происходить на уровне строк в таблице. Это означает, что в одной таблице может происходить несколько обновлений одновременно.Кэширование данных также обрабатывается в памяти в ядре базы данных, что позволяет кэшировать более эффективно на уровне строк, а не на уровне файлового блока. Чтобы соответствовать требованиям ACID, все транзакции регистрируются независимо от основных таблиц. Это позволяет гораздо более надежно восстанавливать данные, поскольку можно проверить целостность данных.
Начиная с MySQL 5.5 InnoDB является механизмом по умолчанию, и его настоятельно рекомендуется использовать вместо MyISAM, если у вас нет особых потребностей в функциях, уникальных для этого механизма.
Расширенная конфигурация
Создание настроенной конфигурации
Существует ряд параметров, которые можно настроить в файлах конфигурации MySQL, что позволит вам со временем улучшить производительность сервера.
Многие параметры можно настроить с помощью существующей базы данных, однако некоторые из них могут влиять на структуру данных и, следовательно, требуют большей осторожности при применении.
Во-первых, если у вас есть данные, вам нужно будет выполнить mysqldump и перезагрузить:
mysqldump --all-databases --routines -u root -p> ~ / fulldump.sql
Затем вам будет предложено ввести пароль root перед созданием копии данных. Желательно убедиться, что другие пользователи или процессы не используют базу данных, пока это происходит. В зависимости от того, сколько данных у вас в базе данных, это может занять некоторое время. Во время этого процесса вы ничего не увидите на экране.
После завершения дампа выключите MySQL:
sudo service mysql stop
Также рекомендуется создать резервную копию исходной конфигурации:
sudo rsync -avz / etc / mysql / root / mysql-backup
Затем внесите необходимые изменения в конфигурацию.
Затем удалите и повторно инициализируйте пространство базы данных и перед перезапуском MySQL убедитесь, что права собственности указаны правильно:
судо rm -rf / var / lib / mysql / *
sudo mysqld --initialize
sudo chown -R mysql: / var / lib / mysql
служба sudo запуск mysql
Последний шаг - повторный импорт ваших данных путем передачи команд SQL в базу данных.
cat ~ / fulldump.sql | mysql
При импорте больших объемов данных утилита «Pipe Viewer» может быть полезна для отслеживания прогресса импорта. Игнорируйте любое время ETA, созданное pv, оно основано на среднем времени, затраченном на обработку каждой строки файла, но скорость вставки может сильно варьироваться от строки к строке с mysqldumps:
sudo apt install pv
pv ~ / fulldump.sql | mysql
Как только это будет завершено, все готово!
Примечание
Это не обязательно для всех моих.cnf изменения. Большинство переменных, которые вы, возможно, захотите изменить для повышения производительности, можно настраивать даже во время работы сервера. Как и во всем остальном, перед внесением изменений убедитесь, что у вас есть хорошая резервная копия файлов конфигурации и данных.
Настройка MySQL
MySQL Tuner подключается к работающему экземпляру MySQL и предлагает предложения по настройке для оптимизации базы данных для вашей рабочей нагрузки. Чем дольше работает сервер, тем точнее советует mysqltuner. В производственной среде подождите не менее 24 часов, прежде чем запускать инструмент. Вы можете установить mysqltuner из репозиториев Ubuntu:
sudo apt установить mysqltuner
Затем после установки запустите:
mysqltuner
и ждем его финального отчета. В верхнем разделе представлена общая информация о сервере базы данных, а в нижнем разделе представлены предложения по настройке, которые можно изменить в my.cnf. Большинство из них можно изменить прямо на сервере без перезапуска; просмотрите официальную документацию MySQL (ссылка в разделе «Ресурсы»), чтобы узнать, какие переменные следует изменить в процессе производства.Следующий пример является частью отчета из производственной базы данных, показывающего потенциальные выгоды от увеличения кеша запросов:
-------- Рекомендации --------------------------------------- --------------
Общие рекомендации:
Запустите OPTIMIZE TABLE, чтобы дефрагментировать таблицы для повышения производительности
Постепенно увеличивайте table_cache, чтобы избежать ограничений файлового дескриптора
Переменные для настройки:
key_buffer_size (> 1,4 ГБ)
query_cache_size (> 32 МБ)
table_cache (> 64)
innodb_buffer_pool_size (> = 22 ГБ)
Само собой разумеется, что стратегии оптимизации производительности варьируются от приложения к приложению. Так, например, то, что лучше всего работает для WordPress, может быть не лучшим для Drupal или Joomla. Производительность может зависеть от типов запросов, использования индексов, эффективности структуры базы данных и т. Д. Возможно, вам будет полезно потратить некоторое время на поиск советов по настройке базы данных в зависимости от того, какие приложения вы используете. Как только вы достигнете точки уменьшения отдачи от корректировок конфигурации базы данных, обратите внимание на само приложение за улучшениями или инвестируйте в более мощное оборудование и / или увеличивайте масштаб среды базы данных.
ресурсов
.
Добавить комментарий