Клиент-сервер — это архитектура, в которой два или более компьютеров соединены по сети для отправки и получения запросов друг от друга.
В процессе взаимодействия каждая машина играет свою роль: машина, посылающая запросы, обычно называется «Клиент», а машина, отвечающая (обслуживающая), называется «Сервер».
В данном случае наш веб-сервер играет роль «клиента», который подключается и читает/пишет к/от сервера базы данных (БД) (MySQL, MongoDB, Oracle, SQL Server или любого другого), а связь между ними происходит через локальную сеть (это может быть и подключение к Интернету, но общепринятой практикой является размещение веб-сервера и сервера БД рядом друг с другом в локальной сети).
Реализация архитектуры клиент-сервер с использованием системы управления базами данных (СУБД) MySQL.
В этом учебнике я продемонстрирую базовый клиент-сервер с использованием системы управления реляционными базами данных (СУБД) MySQL, следуйте следующим инструкциям
-
Создайте и настройте два виртуальных сервера на базе Linux (экземпляры EC2 в AWS) с именами.
Server A name - `mysql server` Server B name - `mysql client`
-
На Linux-сервере mysql server установите программное обеспечение MySQL Server.
sudo apt install mysql-server
Результаты:
-
На клиентском Linux-сервере mysql установите программное обеспечение MySQL Client.
sudo apt install mysql-client
Результаты:
-
По умолчанию оба ваших виртуальных сервера EC2 расположены в одной локальной виртуальной сети, поэтому они могут общаться друг с другом, используя локальные IP-адреса. Используйте локальный IP-адрес сервера mysql для подключения с клиента mysql. MySQL сервер использует TCP порт 3306 по умолчанию, поэтому вам придется открыть его, создав новую запись в ‘Inbound rules’ в ‘mysql server’ Security Groups. Для дополнительной безопасности не разрешайте всем IP-адресам обращаться к вашему ‘mysql серверу’ — разрешите доступ только к определенному локальному IP-адресу вашего ‘mysql клиента’.
Результаты:
-
Возможно, вам потребуется настроить сервер MySQL на разрешение соединений с удаленных хостов.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
и замените следующую строку:
bind-address = 127.0.0.1
на следующую строку:
bind-address = 0.0.0.0
Результаты:
-
В экземпляре mysql-server ec2 разрешите ip-адресу экземпляра mysql-client ec2 с портом 3306 получить доступ к экземпляру mysql-server ec2.
curl http://checkip.amazonaws.com
Результаты:
-
На вашем mysql-сервере создайте нового пользователя, используя следующий код
CREATE USER 'newuser2'@'44.203.195.178' IDENTIFIED BY 'password2'; GRANT ALL PRIVILEGES ON * . * TO 'newuser2'@'44.203.195.178';
Примечание: ‘44.203.195.178’ — это ip-адрес вашего mysql-клиента.
Результаты: -
Чтобы подключиться к серверу mysql, в клиенте mysql введите следующий код.
mysql -u newuser2 -h 18.234.44.89 -p
Примечание: Формат следующий
mysql -u <user> -h <ipaddress-of-the-server> -p
и выполните следующее
show databases;
Результаты: