Где правильнее хранить базу данных?
Собираюсь писать приложение для магазина. Естественно в нем будет Бд MySql. Бд нужна НЕлокальная. Прочитал множество материала, но в голове не однозначный ответ. Мне нужно поместить Бд на хостинг или сервере? Я понимаю, что сервер — это отдельный, мощный пк, который может стоять где угодно, но хостинг это как бы частичка сервера, на котором размещают сайты, на которых также используют Бд. Как я понял, для сайта используется локальная Бд, которая хранится на хостинге, тоесть по сути для сайта она будет на одном пк. А мне нужен виртуальный сервер, который мне даст ip, port,host, и т.д. через которые я уже и буду подключаться? Или я что-то неправильно понял? Приложения с уже созданными Бд уже писал , а теперь возникла потребность сделать все самому и с нуля.
Отслеживать
задан 7 мар 2021 в 21:03
79 9 9 бронзовых знаков
Если это просто «поиграться» в магазины, то нет смысла сервер покупать, проще и дешевле хостинг взять, при покупке которого вам выдаются все нужные данные, в т.ч. и данные для подключения mysql
7 мар 2021 в 21:11
@InDevX, нет, это именно проект. Но там не будет сверх большого объёма данных. До 1 Гб. Разница в сервере и хостинге в моем случае получается только в цене? И можно купить как 1е так и 2е?
7 мар 2021 в 21:16
Не в объемах данных дело. Если магазин не требователен к ресурсам и без огромной посещалки то можно взять хостинг, если же нагрузка более-менее приличная (в плане посетителей, что, так же, будет влиять на серверную нагрузку), много запросов в БД и пр. атрибуты тяжелого проекта, надо надёжно хранить данные и пр. то лучше брать сервер
Путь до базы MySQL / MariaDB

Обновлено: 20.07.2020 Опубликовано: 12.07.2018
Тематические термины: MySQL, MariaDB, Linux. В статье пойдет речь о просмотре и смене пути расположения файлов баз данных 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 в командную оболочку СУБД:
mysql -uroot -p
> SHOW VARIABLES WHERE Variable_Name LIKE «datadir»;
> select @@datadir;
Пример ответа:

Способ 3. Через phpMyAdmin. Если у нас нет доступа к серверу по SSH или удаленному рабочему столу, запрос можно сделать в phpMyAdmin:
Смена пути
Останавливаем сервер баз данных:
systemctl stop mysql || systemctl stop mariadb
Создаем новый каталог, например:
mkdir /home/mysql
Переносим содержимое старого каталога в новый:
mv /var/lib/mysql/* /home/mysql/
Задаем права и владельца для нового каталога:
chown mysql:mysql /home/mysql
chmod 755 /home/mysql
Открываем конфигурационный файл my.cnf:
vi /etc/my.cnf.d/server.cnf
- /etc/my.cnf.
- /etc/my.cnf.d/server.cnf.
- /etc/my.cnf.d/mariadb-server.cnf.
- В Windows это my.ini.
и задаем новый путь:
[mysqld]
datadir = /home/mysql
systemctl start mysql || systemctl start mariadb
Где находятся базы данных OpenServer
Базы вместе с файлами сайта надо отправить по почте, но не могу найти их (базы, конечно же).
Лучший ответ
Пересылаются не файлы базы данных, а дамп базы данных, сделанный в phpMyAdmin или HeidiSQL. Пересылать файлы БД бессмысленно, так как они будут работать только с той же самой версией базы данных. Но даже если версия совпадёт, то подключить эти файлы к БД на, например, виртуальном хостинге вообще невозможно.
Остальные ответы
в папке сервера есть папка userdata, в ней смотри папку модуля который ты используешь..
например «MySQL-5.7-x64» а вот в ней уже папки с базами. одна папка, одна база.
Похожие вопросы
Где в Linux находятся базы MySQL
Чаще всего базы данных MySQL на Linux хосте находятся в директории /var/lib/mysql.
Но перед тем, как резервировать эту папку, нужно все же быть уверенным, что именно тут находятся актуальные файлы базы данных. Как это проверить?
1) Самое простое и не самое точное: смотрим дату обновлений файлов в папке /var/lib/mysql. Если даты свежие, значит весьма вероятно, база данных лежит тут.
2) файл конфигурации «my.cnf»
MySQL (MariaDB) хранят настройки в файлах с расширением .cnf. По-умолчанию — файл my.cnf.
Скорее всего, это файл находится в /etc/my.cnf.
Лучше не гадать, а найти файлы my.cnf на хосте:
# find / -type f -name my.cnf
/etc/my.cnf
У меня в этом файле была единственная ссылка на директорию /etc/my.cnf.d, в которой были файлы:
auth_gssapi.cnf
client.cnf
enable_encryption.preset
mariadb-server.cnf
mysql-clients.cnf
В файле /etc/my.cnf.d/mariadb-server.cnf:
смотрим секцию mysqld:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
Директория с базой данных: /var/lib/mysql
3) как еще можно искать конфиг базы mysql?
# mysql —help | grep /my.cnf
/etc/my.cnf ~/.my.cnf
# mysqladmin —help | grep /my.cnf
/etc/my.cnf ~/.my.cnf
Зная файл конфига, вы легко найдете расположение базы данных.
4) изврат, но почему бы и да?
Используя команду lsof, можно посмотреть, какие файлы задействованы базой данных:
# lsof -u mysql
.
mysqld 1084 mysql 17r DIR 253,0 4096 394860 /var/lib/mysql
mysqld 1084 mysql 18uW REG 253,0 114688 657855 /var/lib/mysql/postfix/domain_admins.ibd
mysqld 1084 mysql 19uW REG 253,0 98304 657859 /var/lib/mysql/postfix/vacation_notification.ibd
mysqld 1084 mysql 20uW REG 253,0 131072 657863 /var/lib/mysql/postfix/alias_domain.ibd
mysqld 1084 mysql 21uW REG 253,0 98304 657866 /var/lib/mysql/postfix/domain.ibd
mysqld 1084 mysql 22uW REG 253,0 114688 657856 /var/lib/mysql/postfix/mailbox.ibd
Сразу несколько файлов задействованы в директории /var/lib/mysql.
lsof вообще команда крайне полезная.
Авторизуйтесь для добавления комментариев!

Почтовый сервер Mikrotik VPN 3proxy Шифрование Squid Резервное копирование Защита почты Виртуальные машины Настройка сервера java kvm Групповые политики SELinux OpenVPN IPFW WDS Lightsquid Samba firewalld systemd Mobile libvirt Remote desktop WiFi Iptables NAT Postfix Dovecot Удаление данных Софт Безопасность Winbox User agent Хостинг Передача данных Онлайн сервисы Privacy LetsEncrypt VPN сервер Настройка прокси RRDTool sendmail Rsync Linux SSH Система Windows Синхронизация Облако fail2ban FreeBSD