Перейти к содержимому

Как подключить базу данных phpmyadmin к сайту php

  • автор:

Создание базы данных для сайта phpmyadmin

Создание базы данных для сайта phpmyadmin

Создание базы данных для сайта сейчас не создаёт не каких сложностей. На любом качественных хостинге, а так же на локальном сервере стоит компонент PhpMyAdmin, в этой статьи и пойдёт речь о создание базы данных в ней.

1. Для начало зайдём в PhpMyAdmin, если вы на локальном сервере, то чаще всего логин: «root», заходим без пароля.

Если на хостинге, то создаём новую базу данных и для неё — имя базы, имя пользователя и пароль.

Создание базы данных для сайта phpmyadmin

2. Создадим таблицу с любым именем, указываем логин и пароль (если создаёте на локальном сервере, то можно указать логин — root, а поле пароль оставить пустым.

Всегда указывайте кодировку: «Utf8-general-ci»

Создание базы данных для сайта phpmyadmin

3. Отлично вы создали таблицу в PhpMyAdmin. Теперь вы можете подключить свою базу данных к сайту, в которой потребуется три поля: «логин, пароль, имя Базы данных».

Подключение к базе данных

Для работы с базой данных ISPmanager использует систему управления базами данных (СУБД). Чтобы подключиться к ней через веб-интерфейс, используйте:

  • phpMyAdmin — веб-интерфейс для работы с СУБД MySQL;
  • phpPgAdmin — веб-интерфейс для работы с СУБД PostgreSQL.
  1. Перейдите в Базы данных → кнопка Web интерфейс. Для СУБД MySQL откроется веб-интерфейс phpMyAdmin. Для СУБД PostgreSQL — phpPgAdmin. Логин и пароль пользователя указываются автоматически.
  2. Нажмите Продолжить. Откроется веб-приложение для работы с базой данных.

Подробнее о работе с веб-интерфейсами см. на официальном сайте phpMyAdmin и phpPgAdmin.

Подключение к базе данных

Подключение к базе данных MySQL в phpMyAdmin

Инструмент phpMyAdmin позволяет пользователям взаимодействовать с базой данных MySQL через веб-интерфейс, который может выполнять административные задачи. Он предоставляет веб-интерфейс для создания, хранения и редактирования баз данных, созданных с помощью MySQL. К примеру, запускать сценарии PHP для подключения к базам данных MySQL и выполнения пользовательских операций можно через phpMyAdmin, а не через интерфейс командной строки.

В этом мануале вы научитесь устанавливать phpMyAdmin и использовать его для подключения к кластеру управляемой базы данных MySQL.

Требования

  • Сервер с пользователем sudo и настроенным брандмауэром ufw (мы используем сервер Ubuntu 20.04, настроенный по этому мануалу).
  • Аккаунт облачного провайдера. Если у вас его нет, зарегистрируйте новый аккаунт.
  • Кластер управляемой базы данных MySQL, развернутый в облаке.
  • Опционально – зарегистрированный домен для подключения через SSL. Вы можете приобрести домен на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого другого регистратора. Убедитесь, что записи DNS для вашего домена ведут к IP-адресу вашего сервера. Также можно установить SSL/TLS сертификаты, инструкции вы найдете в мануале Создание сертификата Let’s Encrypt для Apache в Ubuntu 20.04.

1: Установка phpMyAdmin и настройка Apache

Для начала давайте установим пакет phpMyAdmin и веб-сервер, необходимые для доступа к управляемой базе данных MySQL.

Сначала войдите на свой сервер Ubuntu и обновите его, установив последние пакеты:

sudo apt update

Затем установите phpMyAdmin из стандартных репозиториев системы:

sudo apt -y install phpmyadmin

В процессе установки вам будет предложено выбрать веб-сервер: Apache или Lighttpd. Выберите apache2.

Далее вам будет предложено использовать dbconfig-common для настройки базы данных на вашем сервере.

Выберите No, если вы устанавливаете phpMyAdmin для подключения к управляемой базе данных MySQL и не собираетесь устанавливать MySQL на локальном сервере Ubuntu.

После завершения установки пакета phpMyAdmin нужно обновить файл apache.conf. Используйте любой текстовый редактор, чтобы отредактировать этот файл, который был помещен в каталог конфигурации Apache. В этом примере используется редактор nano:

sudo nano /etc/apache2/apache2.conf

Добавьте в конец файла следующую строку:

. # phpMyAdmin Configuration Include /etc/phpmyadmin/apache.conf

Эта строка настроит phpMyAdmin для поддержки веб-сервера Apache. Сохраните и закройте файл.

Итак, вы обновили свой сервер, установили phpMyAdmin и настроили Apache. Далее мы передадим phpMyAdmin учетные данные управляемой базы MySQL.

2: Настройка доступа к БД MySQL через phpMyAdmin

Теперь мы настроим phpMyAdmin и передадим ему учетные данные, необходимые для доступа к управляемой базе MySQL.

Откройте панель управления вашего облачного провайдера и откройте вкладку управляемой БД MySQL. Найдите раздел, содержащий сведения о подключении (у каждого провайдера он называется по-своему, ищите что-то типа Connection Details). Также вы можете загрузить файл ca-certificate.crt.

В новом сеансе терминала с вашего локального компьютера скопируйте файл сертификата в /etc/phpmyadmin/:

scp Downloads/ca-certificate.crt root@your-server-ip:/etc/phpmyadmin

Вернитесь в сессию вашего сервера, откройте конфигурационный файл phpMyAdmin по имени config.inc.php:

sudo nano /etc/phpmyadmin/config.inc.php

В конец файла добавьте следующие строки, в которых содержится информация о вашей БД:

. $i++; $cfg['Servers'][$i]['host'] = 'your_database_cluster_hostname.b.db.'yourcloudserver.com'; $cfg['Servers'][$i]['port'] = '25060'; $cfg['Servers'][$i]['ssl'] = true; $cfg['Servers'][$i]['ssl_ca'] = '/etc/phpmyadmin/ca-certificate.crt';

$i++; — постинкрементный оператор, который возвращает $i, а затем увеличивает $i на единицу. Эта строка позволяет управлять несколькими базами данных MySQL с помощью phpMyAdmin.

Поскольку phpMyAdmin поддерживает администрирование нескольких серверов MySQL, мы добавили массив $cfg[‘Servers’], который может содержать информацию для входа на разные серверы.

$cfg[‘Servers’][$i][‘host’] относится к имени хоста управляемой базы данных MySQL (вместо yourcloudserver укажите имя вашего провайдера), а $cfg[‘Servers’][$i][‘port’] задает номер порта, к которому она обращается (в данном случае порт 25060).

Строка $cfg[‘Servers’][$i][‘ssl’], которая в данном случае принимает значение true, сообщает, следует ли включить SSL для соединения между phpMyAdmin и управляемой базой данных MySQL, чтобы защитить соединение. При этом мы также обновили строку $cfg[‘Servers’][$i][‘ssl_ca’] и указали в ней путь к файлу CA, который будет подключаться к управляемой БД MySQL при использовании SSL.

Если вы хотите добавить еще одну управляемую базу данных MySQL, вы можете повторить строки от $i++; до $cfg[‘Servers’][$i][‘ssl_ca’] в config.inc.php, указав соответствующее имя хоста и файл сертификата.

Сохраните и закройте конфигурационный файл.

Затем перезапустите apache2 с помощью этой команды:

sudo service apache2 restart

Теперь вы можете получить доступ к веб-интерфейсу, посетив внешний IP-адрес сервера или его домен, а затем добавив phpmyadmin:

На экране появится форма. Здесь нужно будет указать имя пользователя и пароль управляемой БД MySQL, чтобы войти в нее.

После входа в базу данных вы увидите следующий экран:

Укажите IP-адрес сервера, на котором вы установили phpMyAdmin, в качестве надежного источника (если такая опция доступна, она ограничит доступ к базе данных одним конкретным IP-адресом).

Итоги

Мы настроили phpMyAdmin для подключения к кластеру управляемой базы данных MySQL на вашем сервере Ubuntu 20.04. Используя этот интерфейс, вы можете создавать базы данных, пользователей и таблицы и выполнять обычные операции, такие как удаление и изменение данных.

Создание таблицы при загрузке сайта

Для начала у вас должен быть установлен PHP. Чтобы получить версию, запускаем:

php -v

Вот такой ответ должен прийти:

Теперь установим сервер MySQL. Для этого открываем терминал и запускаем:

sudo apt-get install mysql-server

Вводим пароль, чтобы начать установку, и нажимаем на Enter.

Проверяем, установлен ли MySQL, этой командой:

sudo mysql

Если установка прошла успешно, выводится примерно следующее:

Теперь для доступа к базе данных с использованием программы на PHP нужно передать в качестве аргументов в SQL-запросе имя пользователя и пароль. Поэтому создадим пользователя с паролем и предоставим ему права доступа к базе данных.

Нового пользователя и пароль создаем, выполняя следующую команду:

sudo mysql -u rootCREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Теперь предоставим пользователю разрешения на доступ к базе данных, а заодно убедимся, что эти права доступа отображаются (для этого задействуем команду flush ):

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';FLUSH PRIVILEGES;

И для доступа к MySQL в Google Cloud:

GRANT ALL PRIVILEGES ON `%`.* TO 'newuser'@'localhost';

Для привязки ко всем адресам запускаем это:

#bind-address = 127.0.0.1

Для создания нового пользователя и пароля нужно выполнить указанные выше команды. После добавления нового пользователя выходим и перезапускаем сервер MySQL:

exit
service mysql restart

Обратите внимание: в случае с PHP версией 7+ для правильного выполнения команд MySQL необходимо использовать расширение MySQLi. Функции MySQLi позволяют получать доступ к серверам баз данных MySQL.

Для установки расширения MySQLi запускаем:

Sudo apt Install php-mysqli

Теперь все готово к выполнению программ на PHP с интегрированием MySQL. Переходим к решению сформулированной выше задачи.

Первым делом создадим базу данных на сервере MySQL. Для этого подключимся к серверу MySQL:

sudo mysql

Для того, чтобы создать таблицу, сначала нужно создать базу данных. Следующей командой создаем базу данных с названием «test»:

create database test;

Дальше эту базу данных нужно выбрать:

use test;
exit

Код для создания таблицы при загрузке сайта

База данных готова, теперь напишем код для создания таблицы при загрузке сайта.

Как было указано в необходимых условиях, в качестве хоста будет использоваться Apache2, поэтому выполняем такие команды:

cd /var/www/html
vim sqltest.php

С их помощью создается файл и открывается редактор Vim.

Копируем и вставляем в редактор следующий код:



creating mysql tables


$dbhost = 'localhost';
$dbuser= 'newuser';
$dbpass = 'password';
$conn = mysqli_connect($dbhost , $dbuser , $dbpass,"test");
if(!$conn) die('Could not connect:'.mysqli_error($conn));
>
echo 'Connected successfully
';
$sql="CREATE TABLE student(".
"USN INT NOT NULL,".
"Name VARCHAR(100) NOT NULL,".
"Marks VARCHAR(40) NOT NULL);";
mysqli_select_db($conn,'test');
$retval=mysqli_query($conn,$sql);
if(! $retval) die('Could not create table:'.mysqli_error($conn));
>
echo "Table created successfully\n";
mysqli_close($conn);
?>

В строках 7, 8 и 9 объявляются переменные, в которых сохраняются имя пользователя, пароль и localhost. Дальше они задействуются в строке 10 и передаются в качестве параметров в команду mysqli_connect , которой инициируется соединение с сервером MySQL. Если соединение установить не удалось, для отображения ошибки используется оператор if и mysqli_error() . Затем пишется запрос на создание таблицы, который присваивается переменной sql . И запускается запрос для выбора базы данных test . После чего запускается mysqli_query для создания таблицы посредством передачи в качестве параметров переменных sql и connection .

Теперь сохраняем файл и выходим из него, открываем браузер и заходим на этот сайт:

Если все работает правильно, получаем сообщение об успешном создании таблицы.

Если при открытии сайта сообщения не видно, переходим в каталог, в котором создан файл:

cd /var/www/html

И выполняем в терминале следующую команду:

php -S localhost:8000

Открываем браузер и заходим на такой сайт:

Теперь сообщение об успешном создании таблицы будет видно.

Проверим, выполнив в терминале команду:

sudo mysql
use test;
desc student;

Примечания:
1) Имя пользователя MySQL — «newuser», а пароль — «password».
2) Поменяйте все команды с MySQL на MySQLi, если у вас версия PHP 7+ , например mysql_connect станет mysqli_connect , а mysql_error() станет mysqli_error() .

Появление возможных ошибок, и как с ними справиться:

  1. При выполнении команды создания проверяйте, те ли кавычки используете. Ведь ` и ‘ — это разные знаки.
  2. Если при выполнении программы есть какая-либо ошибка в SQL-запросе, связанная с форматом, то при присваивании $sql
$sql=”CREATE TABLE student(“.“USN INT NOT NULL,”.“Name VARCHAR(100) NOT NULL,”.“Marks VARCHAR(40) NOT NULL);”;

поставьте в конце запроса вместо точки точку с запятой.

3. Если возникли проблемы с командами MySQLi, выполните следующие команды:

php -v

Затем запишите свою версию PHP. Для этого в первой из следующих четырех команд замените x.x на свою версию PHP:

sudo apt-get install phpx.x-mysqli
sudo service apache2 restart
sudo phpenmod mysqli
sudo service apache2 restart

Так, если у вас версия PHP 7.4, то команда будет sudo apt-get install php7.4-mysqli.

4. Каждый раз, когда заходите на свой сайт на PHP, запускайте в каталоге, где находится программа на PHP, следующую команду:

php -S localhost:8000

И при получении какой-либо ошибки, например такой:

Запускайте эту команду:

fuser -k 8000/tcp

И после выполнения php -S localhost:8000 он заработает. Так как процесс, задействующий этот порт, будет уничтожен и его можно будет использовать.

Еще одна программа на PHP

И вот еще одна программа на PHP для добавления новых записей в таблицу, попробуйте.

Прежде чем выполнять программу, запускаем запрос в MySQL для создания таблицы:

create table book(Acc_no INTEGER(20),Title varchar(50),Author varchar(50),Publisher varchar(50),Edition INTEGER(3));

HTML-код


Deatails


ENTER DETAILS


ACCNO



TITLE



AUTHOR



EDITION



PUBLICATION







PHP-код:

header('content-type:text/plain');
$db=mysqli_connect('localhost','newuser','password','test');
if(!$db) die('Could not connect:');
>
$sql="insert into book (Acc_no,Title,Author,Publisher,Edition)".
"values('$_REQUEST[Acc_no]',".
"'$_REQUEST[Title]','$_REQUEST[Author]',".
"'$_REQUEST[Publisher]','$_REQUEST[Edition]');";
mysqli_select_db($db,'test');
$retval=mysqli_query($db,$sql);
if(! $retval) die('Could not insert values');
>
echo "Record Insertion Successful";
?>
  • Ключевое слово static в PHP
  • Хочешь стать веб-разработчиком? Учи Node.js, а не PHP
  • Java убьет ваш стартап. PHP спасёт его

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://czena.narkolog-na-dom-voronezh-11.ru/