Давайте швидко створимо docker-образ для MySQL!
Вам знадобляться наступні інструкції для налаштування робочого додатку MySQL, як описано в цій статті.
увійти (локально)
mysql -u root -pстворити користувачів та хости (SQL сервер буде приймати з'єднання від цих хостів, що означає IP-адреси, і прийматиме ці імена користувачів)
mysql> CREATE USER ‘root’@’%’ IDENTIFIED BY ‘PASSWORD’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;перевірити, чи відображається користувач у MySQL
SELECT user,host FROM mysql.user;
перевірити порти для SQL
netstat -tlnp
Перш за все, отримайте VM/Ec2-образ. У екземплярі встановіть Docker. Для цього використовуйте наступні команди:
sudo apt-get install docker.io
(якщо у вас система Debian)
sudo yum install docker.io
(якщо у вас система RHEL)
Після цього виконайте наступне:
docker pull mysql
Вищезазначена команда завантажить вашу локальну систему-незалежну версію MySQL.
Увесь світ використовує Docker, тому що він здатний запускати додатки, незалежно від середовища вашого локального комп'ютера.
Наприклад, ви не можете запустити гру для Linux на Windows OS. Але, якщо ви встановите Docker на Windows, ви зможете запустити ігри для Linux.
Ви можете запускати все що завгодно. Docker подбає про бібліотеки та всі залежності для гри-додатка на Linux, і надасть їй середовище Linux OS, щоб ви могли запускати такі додатки на Windows OS.
Перевірте, чи зображення успішно завантажене:
docker images
Перевірте, чи було встановлено зображення
Тепер давайте запустимо додаток MySQL.
docker run mysql
Вищезазначена команда не працюватиме. Я навмисно хочу, щоб ви виконали цю команду і побачили помилку.
Натомість спробуйте виконати таку команду.
Попередня/вища команда не працюватиме, оскільки ми не вказали обов'язкові аргументи для SQL, а саме — пароль.
Кожна нова інсталяція MySQL вимагає пароля за замовчуванням. Це універсальний процес. Без вказівки пароля MySQL не буде встановлено на жодному комп'ютері, чи то Windows, Linux чи Unix.
Отже, наступна команда працюватиме:
docker run — name mysql1 -e MYSQLROOTPASSWORD=password -d mysql
Ця команда встановить MySQL в систему Docker. Команда поверне номер контейнера, що означає, що вона успішно виконалася.
Далі... Далі...
docker ps
Тепер давайте зайдемо в систему MySQL.
Виконайте наступну команду:
docker exec -it mysql1 /bin/bash
-
-it означає режим підключення.
Це означає, що ваш термінал продовжить працювати і увійде в середовище MySQL. -
Якби ви вказали -dt замість -it, ваш термінал продовжив би з того місця, де ви зупинили останню команду.
-
-it дозволить вам підключитися до середовища MySQL, подібно до того, як ви підключаєтесь до віддаленого комп'ютера через ssh в будь-якому куточку світу.
Ми всередині...
Ми всередині...
Тепер ми запустимо MySQL і створимо користувача, хост та базу даних всередині.
Отже, давайте виконаємо:
mysql
Виконання цієї команди призведе до помилки, тому що MySQL вимагає користувача, хоста (хост означає IP комп'ютера) та пароля.
Отже, давайте вкажемо користувача, хост (IP) та пароль.
root@localhost за замовчуванням не має доступу до MySQL додатку.
Тут root — це ім'я користувача, а localhost — це хост, тобто локальний комп'ютер.
Хост може бути IP-адресою комп'ютера.
Це може бути також IP вашого iPhone (якщо ви хочете отримати доступ до MySQL з вашого iPhone).
Ми всередині… ми всередині…
Ми всередині...
Тепер ми створимо:
- базу даних
- користувача
- хост (IP)
Давайте створимо базу даних та таблицю. Для цього в середовищі MySQL виконайте наступні команди:
CREATE DATABASE xyz;
USE xyz;
Виконання цієї команди створить базу даних та переключить вас на неї в поточній сесії.
Швидко... дуже швидко...
CREATE TABLE table1 (age, int, city varchar(255));
INSERT INTO table1 (age, city) VALUES (10, ‘jammu’);
SELECT * FROM table1;
Створення таблиці та вставка випадкових значень.
Тепер,
створимо користувача та хост, щоб ми могли отримати доступ до цієї бази даних з іншого комп'ютера або iPhone.
(На iPhone має бути встановлений додаток MySQL Workbench)
Тепер вам потрібно:
- IP-адреса пристрою, з якого ви будете отримувати доступ до бази даних
- IP-адреса сервера, на якому працює Docker
IP-адресу сервера можна знайти в AWS/GCP/Azure. Я запускав Docker на віртуальній машині в GCP.
Отже, IP-адреса відображається тут.
Щоб дізнатися IP-адресу пристрою, з якого ви будете підключатися до MySQL, на вашому локальному комп'ютері відкрийте cmd або термінал
і перевірте IP (локальний комп'ютер) — комп'ютер/телефон, з якого ви будете підключатися до MySQL сервера.
Я використовую Windows, тому я зробив ось так, щоб перевірити публічну IP-адресу:
curl ip.dnslab.link
(це працює в командному рядку Windows)
Моя публічна IP-адреса локального комп'ютера… НЕ локальна IP-адреса (локальні IP-адреси показуються в ifconfig і ipconfig)
Отже, я отримав IP-адресу свого локального комп'ютера…
Тепер я повертаюся до віртуальної машини, відкриваю MySQL і створюю користувача та хост.
Виконайте ці команди:
mysql> CREATE USER ‘root’@’%’ IDENTIFIED BY ‘PASSWORD’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
Виконайте це… це запустить MySQL сервер в Docker.
mysqld start
Готово… Готово! Все налаштовано.
Ми створили користувача та хост (IP).
Тепер цей MySQL додаток розпізнає цей ім'я користувача та хост (IP). Ми можемо підключитися з будь-якої точки світу, з цього хоста з цим ім'ям користувача.
Тепер, повернувшись до моєї Windows машини, швидко встановимо додаток MySQL Workbench.
Щоб перевірити підключення… зробіть наступне:
запустіть MySQL Workbench > натисніть на Database > Migration > Start Migration > Source Selection
Введіть ім'я користувача та хост.
Натисніть "Test Connection"
Ось і все!
Ви успішно встановили MySQL додаток на Docker (на сервері) і змогли підключитися до нього з іншого комп'ютера, з іншого куточка світу.
Перекладено з: create mysql docker image