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

Почему-то все поголовно новички задают не тот вопрос, который им нужно решить.
Вопрос же не в том «Как подключиться», а «почему у меня не работает?». А это совсем другой вопрос.
$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».
Beget как подключиться к mysql
Вы можете посмотреть краткую видео-инструкцию либо воспользоваться её текстовым вариантом.
Пошаговая инструкция в картинках как создать базу данных MySQL.
Заходим в панель управления нашим хостингом Beget. Если вы пользуетесь услугами другого хостера, то процесс создания БД там аналогичный.

Нажимаем Управление базами
Дописываем окончание базы данных. У других хостеров возможно придется придумывать имя базы целиком самостоятельно, у Beget же достаточно приписать кончик после нижнего подчеркивания, идущего за именем вашего аккаунта.
Я дописываю буквы db — data base, вы можете придумать свое.
Затем прописываем пароль к БД.

И нажимаем Добавить. Все, ваша база данных создана.
Внимание! Обязательно запишите где-нибудь имя созданной БД, пароль и имя пользователя. Обращаю ваше внимание, что у Beget имя пользователя, то есть имя создателя (он же администратор) совпадает с именем базы данных, что довольно удобно.

Если у вас возникли вопросы после прочтения этой статьи, вы можете смело задать их мне в личные сообщения ВКонтакте
С уважением, Вадим Твердохлеб, руководитель веб-студии ИВЦ 8 бит — Бизнес.Интернет.Технологии
Управление 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
Возвращается признак удачного или нет выполнения.