Налаштування MySQL PPA
Команда MySQL надає офіційний MySQL PPA для Debian Linux. Ви можете завантажити та встановити пакет у своїй системі Debian, який додасть файл PPA до вашої системи. Запустіть команду нижче, щоб увімкнути PPA.
wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Під час встановлення пакета конфігурації MySQL apt, він запропонує вибрати версію MySQL для встановлення. Виберіть варіант MySQL 8.0 або 5.7, який потрібно встановити у вашій системі.
Для цього підручника ми обрали MySQL 5.7 для встановлення в моїй системі Debian. Після того, як ви вибрали конкретну версію і вам потрібно змінити конфігурацію, скористайтеся наступною командою.
$ sudo dpkg-reconfigure mysql-apt-config
Встановлення
sudo apt update
sudo apt install mysql-server
У наступному вікні буде запропоновано повторно ввести той самий пароль.
MySQL 8 забезпечує розширений варіант захисту паролем. Це необов’язково, але ми рекомендуємо використовувати цей варіант.
Безпечне встановлення MySQL
sudo systemctl перезапустіть mysql.service
sudo mysql_secure_installation
Securing the MySQL server deployment. Enter password for user root: VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 [...]
mysql -u root -p
Як дозволити віддалений доступ до MySQL
Однією з найпоширеніших проблем, з якою стикаються користувачі при спробі налаштування віддаленої бази даних MySQL, є те, що їх екземпляр MySQL налаштований лише на прослуховування локальних з'єднань. Це налаштування за замовчуванням MySQL, але воно не буде працювати для віддаленого налаштування бази даних, оскільки MySQL повинен мати можливість прослуховувати зовнішню IP-адресу, де можна отримати доступ до сервера. Щоб увімкнути це, відкрийте mysqld.cnfфайл:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Перейдіть до рядка, який починається з bind-addressдирективи. Це буде виглядати так /etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql log-error = /var/log/mysql/error.log innodb_buffer_pool_size = 4g bind-address=127.0.0.1 #локальна ІР адреса сервера
bind-address=10.10.0.3
Звичайно можнадосволити всім конектитись до даного серера, але я не раджу
Потім перезапустіть службу MySQL, щоб застосувати внесені вами зміни mysqld.cnf:
sudo systemctl restart mysql mysql -u root -p
Щоб змінити хост користувача, ви можете використовувати RENAME USERкоманду MySQL . Виконайте наступну команду, переконайтесь, що ви змінили diuser ім'я вашого облікового запису користувача MySQL та remote_server_ip IP-адресу віддаленого сервера:
CREATE USER 'diuser'@'remote_server_ip' IDENTIFIED BY 'mypassword';
5 пунктів для створення БД, користувача, надання йому прав доступу до ДБ (IP 10.10.0.2 - це адреса мережевого сервера який буде конектитись)
1. CREATE DATABASE databasesname character set utf8 collate utf8_bin; 2. CREATE USER 'remoteuser'@'10.10.0.2' IDENTIFIED WITH mysql_native_password BY 'mypassword'; 3. GRANT ALL PRIVILEGES ON databasesname.* TO 'remoteuser'@'10.10.0.2' WITH GRANT OPTION; 4. GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'remoteuser'@'10.10.0.2' WITH GRANT OPTION; 5. FLUSH PRIVILEGES;
Пробуєм конектитись з хоста на сервер
10.2host$ mysql -u user -h 10.10.0.3 -p