- Путь до базы MySQL / MariaDB
- Посмотреть текущий путь
- Где физически лежат базы mysql?
- Re: Где физически лежат базы mysql?
- Re: Где физически лежат базы mysql?
- Re: Где физически лежат базы mysql?
- Как узнать путь до файлов базы данных MySQL/MariaDB в Linux и Windows
- Mysql
- Где хранятся базы данных MySQL в Linux
- Посмотреть список существующих пользователей в базе MYSQL
- CREATE DATABASE
- Создание базы данных и задание кодировки
- Раздача прав на базу
- SHOW
- Проверить права пользователя
- mysql> SHOW GRANTS FOR ‘user’@’localhost’;
- Создание пользователей и назначение им прав
- GRANT ALL PRIVILEGES ON `web_base`.* TO ‘web’@’localhost’ WITH GRANT OPTION ;
- ПРИМЕР:
- CREATE
- ALTER TABLE
- пример:
- UPDATE
Путь до базы MySQL / MariaDB
В статье пойдет речь о просмотре и смене пути расположения файлов баз данных MySQL. Приведенные примеры выполнены на CentOS 7 — также они будут работать на Ubuntu и многих других дистрибутивах Linux, FreeBSD и Windows.
Посмотреть текущий путь
Увидеть, где хранятся базы можно несколькими способами.
Способ 1. Командная строка Linux.
В командной строке вводим:
systemctl status mysql || systemctl status mariadb
* для Windows используем оснастку Службы. Для FreeBSD используем команду service mysql-server stop.
mariadb.service — MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Ср 2018-07-11 15:38:16 MSK; 23h ago
Process: 1067 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
Process: 992 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 1066 (mysqld_safe)
CGroup: /system.slice/mariadb.service
??1066 /bin/sh /usr/bin/mysqld_safe —basedir=/usr
??1248 /usr/libexec/mysqld —basedir=/usr —datadir=/var/lib/mysql —plugin-dir=/usr/lib64/mysql/plugin —log-error=/var/log/mariadb/mariadb.log —pid-file=/var/run/mariadb/mariadb.pid —socket.
* в выделенном фрагменте /var/lib/mysql — путь до файлов базы данных.
Способ 2. Командная оболочка MySQL.
Данный способ является более универсальным — он подойдет для любого дистрибутива Linux, FreeBSD, Windows. Также, метод универсален с точки зрения метода установки MySQL — чистая установка или в составе готовой сборки (Open Server, Xampp, Denwer . ).
Заходим под пользователем root в командную оболочку СУБД:
> SHOW VARIABLES WHERE Variable_Name LIKE «datadir»;
Источник
Где физически лежат базы mysql?
/var/lib/mysql . Ещё где-нибудь лежат файлы баз?
Нужно их бекапнуть. mysql лежит.
Ах, да: всем доброй ночи!
базы только там
каталоги так и названы по именам баз
> базы только там
Спасибо! Начинаю совершать необратимые изменения.
каталоги так и названы по именам баз
Угу, а файлы — таблицы. Очень удобно, однако, было не ясно: вдруг для них где-нибудь лежат crc или md5 для контроля целостности.
нет, я один раз так и переносила базу на другой сервер, все каталоги из /var/lib/mysql
Re: Где физически лежат базы mysql?
нет, я один раз так и переносила базу на другой сервер, все каталоги из /var/lib/mysql
Такое не проканает если базы в innodb.
Это зависит от настроек. По умолчанию именно там, но в настройках может быть другое мето и бэкапнишь нулевую базу.
Re: Где физически лежат базы mysql?
Такое не проканает если базы в innodb.
С чего это вдруг? У innodb гораздо больше фич в плане бэкапов, прокатит. Возможно, придётся соблюсти соответствие архитектур хостов (т.е. с x86 не переносить на x86_64 и т.п.) и версий mysql (для надёжности).
Сообщения не читай
@
сразу отвечай
Ну попробуй, епт.
попробовал, всё ок. Этот метод описан в документации к мускулю
Re: Где физически лежат базы mysql?
Хм. Значит, я перепутал и траблы возникнут с myisam
🙁
Источник
Как узнать путь до файлов базы данных MySQL/MariaDB в Linux и Windows
Файлы базы MySQL/MariaDB данных хранятся на жёстком диске. По умолчанию это папка data внутри директории исполнимых файлов MySQL (в Windows) или в директории /var/lib/mysql/ (Linux).
В настройках можно указать любое расположение базы данных MySQL — необязательно в папке с установленной программой, это может быть произвольная папка. Более того, на серверах с высокой нагрузкой рекомендуется файлы баз данных выносить на отдельный диск, чтобы не снижалась производительность из-за одновременного доступа к диску для чтения баз данных и для запуска исполнимых файлов.
Иногда непросто разобраться в сложной структуре веб-сервера, иногда нужно в скрипте реализовать возможность определять путь до файлов баз данных — например, в целях настройки автоматического резервного копирования.
Далее будет показано, как в командной строке можно определить, где расположены файлы баз данных MySQL в Windows и в Linux.
Определение пути без подключения к серверу СУБД
В ОС Windows для получения пути до базы данных введите команду:
Если вы получите сообщение, что команда mysqld не найдена, значит нужно указать путь до исполнимого файла mysqld или перейти в директорию с исполнимым файлом. Предположим, MySQL/MariaDB установлена в папке C:Serverbinmariadb, тогда переходим в поддиректорию bin, содержащую исполнимые файлы, и выполняем там указанную выше команду:
В операционной системе Linux выполните следующую команду и она покажет вам путь до базы данных:
Этот способ работает на всех системах одинаково. Нужно выполнить подключение к системе управления базой данных. Например, для пользователя root это делается так:
И затем в консоли MySQL/MariaDB выполните:
Как видно на скриншоте, путь до файлов базы данных на сервере, где введена команда, c:ServerdataDBdata.
Ещё один вариант выполнения данной команды:
Как узнать настройки директорий в MySQL/MariaDB
Чтобы показать информацию о всех настройках директорий СУБД сервера, выполнит команду:
Пример вывода в Windows для MariaDB:
Чтобы вывести только datadir выполните команду:
Как узнать путь до базы данных MySQL/MariaDB в скрипте
Если вы используете полученное значение пути до папки баз данных, например, в скрипте, то есть вам нужно только значение без лишних символов псевдографики, которая имитирует таблицу, то примените следующую команду:
Примечание: если в Linux у вас проблемы с последними командами, то инвертируйте (поменяйте местами) одинарные и двойные кавычки.
Также не забывайте менять пользователя root на имя вашего пользователя.
Источник
Mysql
Posted on 18 февраля, 2014
Где хранятся базы данных MySQL в Linux
Расположение файлов БД определяется директивой datadir в файле конфигурации MySQL (/etc/my.cnf или /etc/mysql/my.cnf). Обычно базы хранятся в /var/lib/mysql.
Посмотреть список существующих пользователей в базе MYSQL
SELECT USER from mysql.user;
CREATE DATABASE
Создание базы данных и задание кодировки
#create database base_name character set utf8 collate utf8_general_ci;
Раздача прав на базу
Раздача полных прав на базу cуществующему пользователю:
1 | mysql> GRANT ALL PRIVILEGES ON ` `.* TO ` `@`%` WITH GRANT OPTION ; |
все права на базу данных пользователю, который еще не существует в MySQL
1 | mysql> GRANT ALL PRIVILEGES ON ` `.* TO ` `@`%` IDENTIFIED BY ` ` WITH GRANT OPTION ; |
SHOW
SHOW DATABASES — просмотреть какие есть базы в MySQL сервере
SHOW TABLES — показать таблицы Бд
SHOW FIELDS(COLUMNS) — показать информацию о том какие поля есть в таблице,
каких они типов, пример: show fields from cars ;
cars — название таблицы.
SHOW KEYS from table_name — отобразить ключи таблицы
SHOW PROCESSLIST; — показать процессы сервера MySQL.
SELECT * from people;
выведет всё(все поля) что есть в таблице people;
Проверить права пользователя
mysql> SHOW GRANTS FOR ‘user’@’localhost’;
Создание пользователей и назначение им прав
GRANT — Создание пользователей и назначение прав
GRANT ALL PRIVILEGES ON `web_base`.* TO ‘web’@’localhost’ WITH GRANT OPTION ;
ВЫБОРКА ИЗ БАЗЫ
LIMIT — используеться для вывода определенной группы(кол-ва) данных
синтаксис:
a — число , с какой позиции выдавать данные
b — кол-во выводимых строк
IN — позволяет задавать несколько значений в поиск
синтаксис:
DML(Data Manipulation Language) — управление данными(УД)
SELECT — используеться для того чтобы делать выборки из БД
синтаксис:
column_names — если необходимо выбрать несколько полей,
они должны указываться через запятую, например
* — всё
SELECT * from people;
выведет всё(все поля) что есть в таблице people;
Иногда в таблице, некоторые из колонок могут содержать повторяющиеся значения.
Это не проблема, т.к. всегда можно сделать выборку лишь тех значений
который разняться между собой(не дублируються). Ключевое слово DISTINCT может быть использовано для этих целей.
синтаксис:
WHERE — используется для получения только тех записей,
которые соответствуют определенному критерию.
синтаксис:
Здесь также могут использоваться операторы:
= равно
<> не равно
> больше
= больше либо равно
Операторы AND & OR
Оператор AND отображает данные если выполняются оба условия.
Оператор OR отображает данные если выполняеться хотябы одно условие.
Смешивание AND & OR
ORDER BY — оператор сортировки, используется для сортировки результатов,
установленных указанной колонки.ORDER BY по умолчанию сортирует
записи в возрастающем порядке.(ASC)
Если вы хотите сортировать записи в (обратном)порядке убывания,
вы можете использовать ключевое слово DESC.
синтаксис:
в обратном порядке
LIMIT — используеться для вывода определенной группы(кол-ва) данных
синтаксис:
a — число , с какой позиции выдавать данные
b — кол-во выводимых строк
примечание: также можно задавать 1 цифру, не две.
LIKE — этот оператор используеться для поиска данных в полях по шаблону.
синтаксис:
IN — позволяет задавать несколько значений в поиск
синтаксис:
BETWEEN — оператор с помощью которого можно вывести диапазон данных
который ограниченный двумя значениями полей.
синтаксис:
Для того чтобы двигаться дальше создадим еще одну табличку.
Еще одна таблица cars в тойже БД mytest
JOIN — используется для запроса(вывода) данных из двух или более таблиц.
. вывод убрал, т.к. не очень красиво он тут «вписываеться»
UNION — оператор сочетает вывод двух и более SELECT операторов.
примечание: каждый запрос SELECT в сочетании с UNION должны иметь одинаковое
число столбцов. Колонки также должны иметь аналогичные типы данных.
синтаксис:
UPDATE — используется для обновления существующих записей в таблице.
синтаксис:
работать с данной конструкцией надо внимательно т.к. например если указать обновление
значений полей без «доп фильтра» можно затереть данные которые вам на самом деле нет
нужды трогать.
Например:
приведет таблицу к такому виду
т.е. если необходимо обновить только поле где/> то нужно писать так:
т.к. здесь присутствует WHERE соответсвенно можно комбинировать с AND & OR.
DELETE — удаление записей
синтаксис:
INSERT — вставка(заполнение) данных в полях таблицы
синтаксис:
columnN — названия полей в таблице table_name
valueN — значения полей, т.е. содержимое, те данные которые будут в поле
пример показан выше, где заполняеться таблица cars
ПРИМЕР:
insert into cars values (1, ‘2’, ‘VAZ’, ‘2310’, ‘Ufa’, ‘2’);
Добавим еще одну запись. в таблицу.
пример таблицы ниже.
mysql> select * from cars;
+———+——+———+———-+———+—————+
| Gmodel | C_id | Cmodel | GSNumber | country | Modification |
+———+——+———+———-+———+—————+
| NULL | 1 | GAZ | 2211 | Moscow | 1 |
| 1 | 2 | VAZ | 2310 | Ufa | 2 |
+———+——+———+———-+———+—————+
Добавляемые значения должны соответствовать тому порядку, в котором поля перечислены в операторе CREATE. Если вы хотите добавлять информацию в другом порядке, то вы должны указать этот порядок в операторе INSERT, например:
INSERT INTO CLIENTS (FIO, ADDRESS, C_NO, PHONE, CITY)
VALUES (‘Петров’, ‘Мира 29’, 2, ‘-‘, ‘Екатеринбург’);
С помощью INSERT мы можем добавлять данные и в определенные поля, например, C_NO и FIO :
INSERT INTO CLIENTS (C_NO, FIO)
VALUES (1, ‘Иванов’);
CREATE
create database mytest; — создание базы данных с именем mytest
FLUSH PRIVILEGES — перезагрузки таблиц привилегий
CREATE TABLE — для создания таблиц в БД
синтаксис:
где table_name — имя таблицы, column_name1 — имя столбца,
data_type — тип данных для этого солбца;
Какие типы данных могут быть в MySQL описано в разделе «Типы данных»
пример создания таблицы cars:
ALTER TABLE
беспечивает возможность изменять структуру существующей таблицы. Например, можно добавлять или удалять столбцы, создавать или уничтожать индексы или переименовывать столбцы либо саму таблицу. Можно также изменять комментарий для таблицы и ее тип.
Пример:
alter table cars change GosNumber GSNumber INTEGER; \\ поменять столбец GosNumber на GSNumber в таблице cars
alter table cars add test timestamp; добавить столбец test с типом timestamp
alter table cars drop column test; Удалить столбец.
Если необходимо, чтобы столбец встал в начало таблицы,
нужно после параметров вставляемого столбца написать ключевое слово FIRST:
Если необходимо , чтобы столбец был вставлен не в начале таблицы,
и не в конце, а после определенного столбца, то нужно применить
ключевое слово AFTER ‘имя столбца’, после которого будет установлен
новый столбец:
пример:
alter table cars add country varchar(255) after GSNumber;
вставить колонку country после колонки GSNumber
Если нужно дописать к таблице не один, а несколько столбцов,
то для каждого столбца нужно ADD column_name datatype записать через запятую:
REATE INDEX
Индекс может быть создан для таблицы,это даст возможность
более быстро и эффективно работать . Пользователю индекс не
виден, он просто используется для ускорения поисков / запросов.
Примечание: Обновление таблицы с индексами занимает больше времени,
чем обновление таблицы без (поскольку индексы также нуждаются в обновлении).
Таким образом, индексы стоит создавать только на столбцы (таблицы),
по которым будет часто производиться поиск и запросы.
синтаксис:
UPDATE
UPDATE Имя_таблицы
SET Поле1 = Значение1, . , ПолеN = ЗначениеN
[WHERE Условие];
ПРИМЕР:
update cars set country = ‘Ufa’ WHERE C_id =1;
обновить в таблицу cars задать значение в столбце с именем country значение ufa изменять в строке с C_id равным 1 (единице)
update cars set country = ‘Ufa’ where Cmodel=’VAZ’;
поменяем на город Ufa везде где стоит модель VAZ
примечание
если строчные символы заключаем их в одинарные ковычки.
Источник