Skip to main content

Работа с MySQL

Эта инструкция охватывает подключение к MySQL, запущенному на сервере 192.168.0.103, и базовые операции.

текущие данные для входа:

  • ip 192.168.0.103
  • логин root(супер-пользователь), kollokpoi
  • пароль 12332155

Предварительные условия

На сервере уже должен быть установлен и запущен MySQL Server. Проверить это можно командой:

systemctl status mysql
# или
sudo systemctl status mysql

Подключение к MySQL

1. Подключение через терминал сервера

Самый прямой способ — использовать командную строку mysql на самом сервере.

# Подключение от имени root (потребует пароль)
mysql -u root -p

# Подключение от другого пользователя
mysql -u kollokpoi -p

После ввода команды нужно будет ввести пароль пользователя.

2. Удаленное подключение из терминала

Чтобы подключиться к MySQL с локальной машины, нужно знать IP сервера и убедиться, что MySQL разрешает удаленные подключения.

mysql -h 192.168.0.103 -u kollokpoi -p

3. Графические клиенты (рекомендуется для начала)

Для визуальной работы с базами данных удобно использовать GUI-клиенты:

MySQL Workbench (Официальный клиент от Oracle)

DBeaver (Бесплатный, кроссплатформенный)

  • Официальный сайт
  • Поддерживает MySQL, PostgreSQL, SQLite и многие другие СУБД
  • Понятный интерфейс, возможность редактирования данных в табличном виде

HeidiSQL (Для Windows, бесплатный)

  • Официальный сайт
  • Простой и легкий интерфейс
  • Хорошо подходит для ежедневных операций

Настройка удаленного доступа к MySQL

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

  1. Подключись к MySQL на сервере:

    mysql -u root -p
  2. Создай пользователя с правами на удаленное подключение (или измени существующего):

    -- Создание нового пользователя с доступом с любого IP
    CREATE USER 'kollokpoi'@'%' IDENTIFIED BY 'strong_password';

    -- Предоставление всех привилегий на все базы данных
    GRANT ALL PRIVILEGES ON *.* TO 'kollokpoi'@'%' WITH GRANT OPTION;

    -- Или более безопасный вариант — права только на конкретную базу
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'kollokpoi'@'%';

    -- Применение изменений прав
    FLUSH PRIVILEGES;
  3. Измени конфигурацию MySQL: Отредактируй файл конфигурации:

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

    Найди строку bind-address и измени её:

    # Было: bind-address = 127.0.0.1
    bind-address = 0.0.0.0 # Разрешает подключения с любых адресов
    # Или: bind-address = 192.168.0.103 # Только с этого конкретного IP
  4. Перезагрузи MySQL:

    sudo systemctl restart mysql
  5. Открой порт 3306 в фаерволе (если используется):

    sudo ufw allow 3306/tcp

Основные команды MySQL

Работа с базами данных

-- Показать все базы данных
SHOW DATABASES;

-- Создать новую базу данных
CREATE DATABASE mydatabase;

-- Удалить базу данных
DROP DATABASE mydatabase;

-- Выбрать базу данных для работы
USE mydatabase;

Работа с таблицами

-- Показать таблицы в текущей базе
SHOW TABLES;

-- Создать таблицу
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Показать структуру таблицы
DESCRIBE users;

-- Удалить таблицу
DROP TABLE users;

CRUD-операции (основные)

-- Добавление данных (Create)
INSERT INTO users (username, email)
VALUES ('kollokpoi', 'user@example.com');

-- Чтение данных (Read)
SELECT * FROM users;
SELECT username, email FROM users WHERE id = 1;

-- Обновление данных (Update)
UPDATE users SET email = 'new@example.com' WHERE id = 1;

-- Удаление данных (Delete)
DELETE FROM users WHERE id = 1;

Экспорт и импорт данных

Экспорт базы данных (дамп)

# Экспорт всей базы
mysqldump -u root -p mydatabase > mydatabase_backup.sql

# Экспорт только структуры (без данных)
mysqldump -u root -p --no-data mydatabase > mydatabase_structure.sql

# Экспорт только данных (без структуры)
mysqldump -u root -p --no-create-info mydatabase > mydatabase_data.sql

Импорт базы данных

mysql -u root -p mydatabase < mydatabase_backup.sql

Или из внутри MySQL:

USE mydatabase;
source /path/to/mydatabase_backup.sql;

Рекомендуемые официальные туториалы

Для более глубокого изучения:

  1. MySQL Official Documentation — полная официальная документация
  2. MySQL Tutorial — официальный учебник от MySQL
  3. MySQL 8.0 Reference Manual — справочное руководство
  4. MySQL Quick Start Guide — быстрое начало работы

Решение типичных проблем

Ошибка подключения "Access denied"

  1. Проверь правильность логина и пароля
  2. Убедись, что пользователь имеет права на подключение с твоего IP
  3. Проверь, не заблокирован ли доступ в конфигурации MySQL

Ошибка "Can't connect to MySQL server"

  1. Убедись, что служба MySQL запущена:
    sudo systemctl status mysql
  2. Проверь, прослушивается ли порт 3306:
    sudo netstat -tlnp | grep 3306
  3. Проверь настройки биндинга в mysqld.cnf

Сброс пароля root

Если забыл пароль root:

  1. Останови MySQL:

    sudo systemctl stop mysql
  2. Запусти MySQL в безопасном режиме:

    sudo mysqld_safe --skip-grant-tables &
  3. Подключись к MySQL без пароля:

    mysql -u root
  4. Внутри MySQL обнови пароль:

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  5. Перезагрузи MySQL:

    sudo systemctl restart mysql

Следующие шаги

После освоения основ MySQL можно перейти к:

  • Настройке репликации (master-slave)
  • Оптимизации производительности запросов
  • Резервному копированию и восстановлению
  • Интеграции MySQL с веб-приложениями