Как подключится к БД?

Почему-то все поголовно новички задают не тот вопрос, который им нужно решить.
Вопрос же не в том «Как подключиться», а «почему у меня не работает?». А это совсем другой вопрос.
$host = 'booktst.beget.tech'; $db = ''; $user = ''; $pass = ''; $charset = 'utf8mb4'; mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); try < $mysqli = mysqli_connect($host, $user, $pass, $db); mysqli_set_charset($mysqli, $charset); >catch (\mysqli_sql_exception $e) < throw new \mysqli_sql_exception($e->getMessage(), $e->getCode()); > unset($host, $db, $user, $pass, $charset); // we don't need them anymore
- пропадут все проблемы связанные с кодировками (сохранятся вопросы вместо русских букв, не работает json_encode(). )
- пропадут бесполезные сообщения об ошибках как mysqli_fetch_assoc() expects parameter. место них будет выдаваться нормальное объяснение прочему запрос упал
- сайт не будет позориться светя ошибками на весь интернет если упала база данных
Ответ написан более трёх лет назад
Нравится 3 12 комментариев
lookingfor2 @lookingfor2 Автор вопроса
Дико извиняюсь, я правильно понял, что db имя базы данных, user это пользователь которому разрешили доступ к базе данных, пароль так же при разрешении пользователю указывали ?

Это те же самые переменные что и у тебя, только с другими названиями. Я оставил эти навазния потому что копировал с готовгого примера.
А так да — db имя базы данных, user это пользователь которому разрешили доступ к базе данных, пароль так же
bedolazhka @bedolazhka
у некоторых перевернётся мир, когда они увидят это и охота к php пропадёт, полегче)
lookingfor2 @lookingfor2 Автор вопроса

bedolazhka, ))))
просто тут при добавлении доступов указывается домен или ip , я указал свой ip
все в переменные записал и в итоге 500 ошибка

«свой» — это чей?
bedolazhka @bedolazhka
lookingfor2, так Вы удалённо доступ получаете к БД? ЕМНИП там галочку нужно поставить для удалёнки давно бегетом не пользовался, но удалёнка на платном вроде тарифе только.
lookingfor2 @lookingfor2 Автор вопроса

как я писул уже, сюда пишется ip сервера на котором расположены пхп скрипты. Чаще всего это 127.0.0.1
lookingfor2 @lookingfor2 Автор вопроса
FanatPHP,
в бегете написано
Параметры для подключения
Сервер для подключения сайтов:
localhost
Сервер для внешних подключений:
booktst.beget.tech
Имя пользователя:
Совпадает с именем БД

так тебе откуда надо подключаться — из дома или с сайта?
Подключение с сайта работает?
lookingfor2 @lookingfor2 Автор вопроса
FanatPHP, по хорошему нужно бы научится по всякому
Это я так понимаю с сайта подключение

если с сайта, то в коде соединения надо писать не booktst.beget.tech а localhost или 127.0.0.1
Ответы на вопрос 1

Для правильного вопроса надо знать половину ответа
И что вы не поняли в тексте ошибки? Пользователю booktst запрещён доступ на сервер m2.spirit.beget.com с использованием указанного им пароля.
Все вопросы к тому, кто поднимал сервер MySQL, заводил там пользователя и назначал ему права.
Ответ написан более трёх лет назад
Нравится 4 2 комментария
lookingfor2 @lookingfor2 Автор вопроса
$host = ‘127.0.0.1’;
$db = ‘test’;
$user = ‘root’;
$pass = »;
$charset = ‘utf8mb4’;
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try $mysqli = new mysqli($host, $user, $pass, $db);
$mysqli->set_charset($charset);
> catch (\mysqli_sql_exception $e) throw new \mysqli_sql_exception($e->getMessage(), $e->getCode());
>
unset($host, $db, $user, $pass, $charset); // we don’t need them anymore

Эти два пункта определяются когда тут доступы создаем ?
$user — пользователь базы данных
$pass — пароль базы данных

lookingfor2, да здесь
с хостом надо внимательнее — в него пишется не хост на котором расположена база данных, а хост, с которого к ней обращаются. Хотя если это один и тот же сервер, то без разницы.
я только не понимаю, где здесь поле для пользователя. или оно просто совпадает с именем БД?
Базы данных MySQL
SQL — это сокращение от Structured Query Language (структурированный язык запросов). SQL создан для работы с реляционными базами данных. Он позволяет пользователям взаимодействовать с базами данных (просматривать, искать, добавлять и управлять данными). MySQL соответствует спецификации ANSI 92 SQL.
Какая версия MySQL установлена на вашем хостинге?
На хостинге установлена MySQL версии — 5. Всю необходимую информацию о сервере Вы можете получить из Панели Управления Аккаунтом в разделе «Статистика» или уточнить у технической поддержки.
Как мне создать базу?
Создавать базы данных Вы можете самостоятельно из Панели Управления в разделе «MySQL».
Для создания базы данных MySQL Вам необходимо определить имя БД. По умолчанию будет создан доступ с локальной машины (IP: 127.0.0.1 или localhost). При создании доступов с других IP Вы указываете свой пароль для каждого IP.
Какой Hostname, Username, Password для работы с MySQL на сервере?
Работа с MySQL-сервером по умолчанию осуществляется через localhost — т.е
- hostname: localhost
- username — ваш логин пользователя, который совпадает с именем БД, к которой Вы подключаетесь.
- password — пароль, который Вы задали в Панели Управления при создании базы данных.
Можно позволить пользоваться MySQL-сервером с другогo IP, а не только с localhost?
Да, необходимо настроить доступ из Панели Управления в разделе «MySQL». При создании доступов с других IP Вы указываете свой пароль для каждого IP.
Как восстановить базу данных?
Восстановление базы данных можно произвести из Панели Управления в разделе BackUp.
Выбираете «Восстановление MySQL», выбираете дату, за которую Вы хотите восстановить, выбираете базу данных и нажимаете «восстановить».
У Вас есть phpMyAdmin и как в него попасть?
Да, конечно. Попасть в phpMyAdmin можно из Панели Управления в разделе «MySQL». Напротив каждой базы данных есть ссылка с надписью «phpMyAdmin», переходите по ней, вводите пароль к базе данных и попадаете в phpMyAdmin.
Где настройки соединения с базой данных в WordPress?
Настройки соединения с базой данных можно задать в файле wp-config.php в корневой директории сайта, изменив следующие строки:
define('DB_NAME', ''); // Имя базы данных define('DB_USER', ''); // Имя пользователя MySQL define('DB_PASSWORD', ''); // Пароль к Базе Данных define('DB_HOST', 'localhost'); // Имя хоста
Имя пользователя равно имени базы данных.
Подскажите, где настройка соединения с базой данных в UMI.CMS?
Настроить соединение с базой данных MySQL в UMI.CMS можно в файле mysql.php в корневой директории сайта, изменив следующие строки:
/* UMI.CMS mySQL - connection to database */ mysql_connect('localhost', '', '') or die(mysql_fatal()); mysql_select_db('') or die(mysql_fatal());
Ошибка при загрузке базы — Duplicate entry
При загрузке дампа базы возникает ошибка
ERROR 1062 (23000) at line 2054: Duplicate entry 'a' for key 'username_clean'
Ее можно проигнорировать на тех строках, где идет ошибка, заменив конструкцию INSERT на INSERT IGNORE, если ошибок много , то можно воспользоваться командой sed
sed -e "s/INSERT/INSERT IGNORE/g" -i имя_дампа.sql
Можно ли открыть доступ к базе со всех IP?
Да, это можно сделать из Панели Управления в разделе «MySQL».
Импорт и экспорт базы данных MySQL
Импорт и экспорт базы данных MySQL используются для переноса данных между различными серверами, а также создания резервных копий – это может быть полезно при переносе сайта на новый хостинг, при обновлении MySQL или восстановлении данных после сбоя.
Сегодня мы разберем, для чего нужны эти процедуры, а также как экспортировать и импортировать базу данных MySQL.
phpMyAdmin — это веб-приложение, которое помогает в графической форме управлять базами данных на сервере MySQL. Данное веб-приложение доступно из панели управления в разделе MySQL.
Что такое импорт базы данных MySQL
Импорт базы данных MySQL – это процесс загрузки данных из предварительно созданного файла резервной копии или другого источника данных в базу данных MySQL.
Эта процедура может быть полезна в случае потери данных, обновления сервера, переноса веб-приложения на новый хостинг или обмена данными с другими системами. Обычно импорт базы данных MySQL выполняется через консоль (с помощью утилиты mysql) или сторонние инструменты управления базами данных (например, phpMyAdmin).
Что такое экспорт базы данных MySQL
Экспорт базы данных MySQL – это процесс выгрузки данных из базы данных MySQL в файл или другой источник данных. При экспорте все таблицы, структура и данные, содержащиеся в базе данных, будут сохранены в указанном формате.
Чаще всего экспорт производится для создания резервной копии данных, миграции базы данных на другой сервер или обмена данными с другими системами. Обычно экспорт базы данных MySQL выполняется с помощью утилиты mysqldump в командной строке или с использованием сторонних инструментов управления базами данных, таких как phpMyAdmin.
При экспорте необходимо указать формат файла, в который будут сохранены данные (например, SQL, CSV, XML и др.). Кроме того, дополнительно можно задать необходимые параметры, такие как выбор конкретных таблиц для экспорта или указание определенных условий для выборки данных.
Для чего нужен импорт и экспорт базы данных MySQL
Безопасное резервное копирование – импорт и экспорт базы данных MySQL позволяют создавать копии данных, чтобы в случае сбоев или ошибок можно было восстановить их.
- Перенос данных с одного сервера на другой или между разными средами.
- Обмен данными с другими приложениями или системами с целью упрощения совместной работы и интеграции.
- Обновление и установка новых версий базы данных.
- Тестирование и разработка – импорт и экспорт базы данных MySQL дают возможность создавать копии баз данных для тестирования или разработки, не затрагивая рабочие данные на production-базе.
- Миграция на другую платформу или систему.
- Работа с отдельными таблицами – например, для перемещения отдельных таблиц или данных внутри базы данных.
- Консолидация данных – импорт и экспорт базы данных MySQL могут использоваться для объединения данных из разных источников в единую базу данных.
- Синхронизация баз данных между различными экземплярами базы данных.
Теперь перейдем к самим инструкциям по импорту и экспорту базы данных MySQL через phpMyAdmin и терминал.
Импорт и экспорт базы данных MySQL через phpMyAdmin
phpMyAdmin – это веб-приложение, которое помогает в графической форме управлять базами данных на сервере MySQL.С помощью phpMyAdmin можно выполнять импорт и экспорт базы данных. Данное веб-приложение доступно из панели управления в разделе MySQL.
Откройте раздел MySQL в панели управления.


С правой стороны от названия вашей базы данных нажмите на значок

Примечание!

Если после нажатия на значок , интерфейс phpMyAdmin не открылось, то необходимо выключить блокировку всплывающих окон в вашем браузере.
Экспорт базы данных в MySQL через phpMyAdmin
Если вам необходимо экспортировать базу данных, то перейдите во вкладку «Экспорт»:

Далее вам нужно выбрать один из методов экспорта:
- Быстрый – если нужно экспортировать базу данных с минимальным количеством настроек.
- Обычный – если нужно экспортировать базу данных с определенными настройками, такими как: сжатие, кодировка, операторы.
После выбора метода нажмите на кнопку «Вперед» для начала экспорта:

После этого база данных автоматически загрузится на ваш компьютер.
Импорт базы данных в MySQL через phpMyAdmin
Если вам необходимо импортировать базу, то перейдите во вкладку «Импорт»:

Выберите необходимый файл для загрузки, он может быть сжат в архив (gzip, bzip2, zip) или находиться без сжатия, после нажмите на кнопку «Вперед» для начала импорта:

Импорт и экспорт базы данных MySQL через терминал
Терминал – это интерфейс командной строки, созданный для управления программами с помощью команд.
Для выполнения импорта и экспорта MySQL через командную строку перейдите в панель управления Beget.
Нажмите на вкладку «Terminal» с левой стороны.

Более подробно о терминале вы сможете прочитать здесь.
Перейдите в директорию вашего сайта, используя команду:
cd ДИРЕКТОРИЯ_САЙТА/public_html/
Затем нажмите «Enter».
На скриншоте для примера указана директория под названием site:

Как экспортировать базу данных MySQL через терминал
После того как вы попадете в директорию вашего сайта, введите команду для экспорта:
mysqldump -u'begetguide_test' begetguide_test -p'yourpass' > dump.sql

Скачать созданный файл базы данных вы сможете через раздел “Файловый менеджер”.
Как импортировать базу данных MySQL через терминал
Вам необходимо поместить ваш файл базы данных в директорию вашего сайта. Сделать вы это сможете в разделе “Файловый менеджер”.
После этого введите команду:
mysql -u'begetguide_test' begetguide_test -p'yourpass' < dump.sql

Желаем удачной работы с экспортом и импортом данных в MySQL!
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел "Помощь и поддержка"), а если вы захотите обсудить эту статью или MySQL в целом – ждем вас в нашем сообществе в Telegram.
Управление MySQL по API
Метод возвращает список баз данных MySQL с их доступами.
Пример вызова
https://api.beget.com/api/mysql/getList?login=userlogin&passwd=password&output_format=json
Пример ответа
addDb
Описание
Метод добавляет задание в очередь на создание новой базы данных MySql с заданным суффиксом и создает доступ для localhost с заданным паролем. Процесс создания базы данных может занимать несколько минут.
Дополнительные параметры
- suffix - суффиксная часть имени базы данных. При передаче этого параметра нужно учитывать, что итоговый логин вида "login_suffix" должен быть не длиннее 16 символов;
- password - пароль для новой базы данных. Должен содержать не менее 6 символов.
Пример вызова
// input_data приведена в не закодированном виде для наглядности https://api.beget.com/api/mysql/addDb?login=userlogin&passwd=password&input_format=json&output_format=json&input_data= // корректный пример вызова, input_data закодирован с помощью urlencode https://api.beget.com/api/mysql/addDb?login=userlogin&passwd=password&input_format=json&output_format=json&input_data=%7B%22suffix%22%3A%22newdb%22%2C%22password%22%3A%22password%22%7D
Пример ответа
true
Возвращается признак удачного или нет выполнения.
addAccess
Описание
Метод добавляет заданный доступ к заданной базе данных MySql.
Дополнительные параметры
- suffix - суффиксная часть логина. При передаче этого параметра нужно учитывать, что итоговый логин вида "login_suffix" должен быть не длиннее 16 символов;
- access - имя доступа - это может быть: домен, IP, * или localhost;
- password - пароль для нового доступа к базе данных. Должен содержать не менее 6 символов.
Пример вызова
// input_data приведена в не закодированном виде для наглядности https://api.beget.com/api/mysql/addAccess?login=userlogin&passwd=password&input_format=json&output_format=json&input_data= // корректный пример вызова, input_data закодирован с помощью urlencode https://api.beget.com/api/mysql/addAccess?login=userlogin&passwd=password&input_format=json&output_format=json&input_data=%7B%22suffix%22%3A%22newdb%22%2C%22access%22%3A%22192.168.100.100%22%2C%22password%22%3A%22newpassword%22%7D
Пример ответа
true
Возвращается признак удачного или нет выполнения.
dropDb
Описание
Метод удаляет заданную базу данных и все доступы к ней.
Дополнительные параметры
- suffix - суффиксная часть имени базы данных.
Пример вызова
// input_data приведена в не закодированном виде для наглядности https://api.beget.com/api/mysql/dropDb?login=userlogin&passwd=password&input_format=json&output_format=json&input_data= // корректный пример вызова, input_data закодирован с помощью urlencode https://api.beget.com/api/mysql/dropDb?login=userlogin&passwd=password&input_format=json&output_format=json&input_data=%7B%22suffix%22%3A%22newdb%22%7D
Пример ответа
true
Возвращается признак удачного или нет выполнения.
dropAccess
Описание
Метод удаляет заданный доступ у базы данных.
Дополнительные параметры
- suffix - суффиксная часть имени базы данных;
- access - имя доступа - это может быть: домен, IP, * или localhost.
Пример вызова
// input_data приведена в не закодированном виде для наглядности https://api.beget.com/api/mysql/dropAccess?login=userlogin&passwd=password&input_format=json&output_format=json&input_data= // корректный пример вызова, input_data закодирован с помощью urlencode https://api.beget.com/api/mysql/dropAccess?login=userlogin&passwd=password&input_format=json&output_format=json&input_data=%7B%22suffix%22%3A%22newdb%22%2C%22access%22%3A%22localhost%22%7D
Пример ответа
true
Возвращается признак удачного или нет выполнения.
changeAccessPassword
Описание
Метод изменяет пароль на указанном доступе.
Дополнительные параметры
- suffix - суффиксная часть имени базы данных;
- access - имя доступа - это может быть: домен, IP, * или localhost;
- password - пароль для нового доступа к базе данных. Должен содержать не менее 6 символов.
Пример вызова
// input_data приведена в не закодированном виде для наглядности https://api.beget.com/api/mysql/changeAccessPassword?login=userlogin&passwd=password&input_format=json&output_format=json&input_data= // корректный пример вызова, input_data закодирован с помощью urlencode https://api.beget.com/api/mysql/changeAccessPassword?login=userlogin&passwd=password&input_format=json&output_format=json&input_data=%7B%22suffix%22%3A%22newdb%22%2C%22access%22%3A%22localhost%22%2C%22password%22%3A%22newpassword%22%7D%0A
Пример ответа
true
Возвращается признак удачного или нет выполнения.