1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lengchuan-Linux-Tutorial

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Mysql-Install-And-Settings.md 14 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 23:55 959b30e

Установка и настройка MySQL

Установка MySQL

  • Установка MySQL
    • Официальный сайт: http://www.mysql.com/
    • Загрузка с официального сайта: http://dev.mysql.com/downloads/mysql/
    • Ссылка для скачивания MySQL 5.5: http://dev.mysql.com/downloads/mysql/5.5.html#downloads
    • Ссылка для скачивания MySQL 5.6: http://dev.mysql.com/downloads/mysql/5.6.html#downloads
    • Ссылка для скачивания MySQL 5.7: http://dev.mysql.com/downloads/mysql/5.7.html#downloads
    • Справочный центр: http://dev.mysql.com/doc/refman/5.6/en/source-installation.html
    • На данный момент (20160210) последняя версия MySQL 5.5 — 5.5.48
    • На данный момент (20160210) последняя версия MySQL 5.6 — 5.6.29
    • На данный момент (20160210) последняя версия MySQL 5.7 — 5.7.11
    • Я обычно создаю каталог setups в каталоге /opt для хранения пакетов программного обеспечения, а каталог program в каталоге /usr — для хранения распакованных пакетов программного обеспечения.
    • Если у вас возникли проблемы с установкой с помощью команды yum install XXXXX, возможно, вам не хватает источников. Пожалуйста, ознакомьтесь с моей статьей о настройке источников.
    • Скачивание MySQL 5.6: wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz (размер: 31 M)
    • Скачивание MySQL 5.7: wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz (размер: 47 M)
    • В качестве примера мы будем использовать установку MySQL версии 5.6
      • Перейдите в каталог загрузки: cd /opt/setups
      • Распакуйте архив: tar zxvf mysql-5.6.29.tar.gz
      • Переместите распакованный архив: mv /opt/setups/mysql-5.6.29 /usr/program/
      • Установите необходимые пакеты и соберите их: yum install -y make gcc-c++ cmake bison-devel ncurses-devel
      • Войдите в распакованный каталог: cd /usr/program/mysql-5.6.29/
      • Создайте каталог установки: mkdir -p /usr/program/mysql/data
      • Сгенерируйте конфигурацию (используя InnoDB): sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/program/mysql -DMYSQL_DATADIR=/usr/program/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1
      • Соберите пакет: sudo make (этот процесс может занять около 30 минут, в зависимости от конфигурации компьютера). Если в конце процесса сборки вы получите ошибку, рекомендуется удалить весь каталог MySQL и повторить попытку.
      • Установите пакет: sudo make install
      • Настройте автозапуск при загрузке системы:
        • sudo cp /usr/program/mysql-5.6.29/support-files/mysql.server /etc/init.d/mysql
        • sudo chmod 755 /etc/init.d/mysql
        • sudo chkconfig mysql on
      • Скопируйте конфигурационный файл: sudo cp /usr/program/mysql-5.6.29/support-files/my-default.cnf /etc/my.cnf
      • Удалите установленный каталог: rm -rf /usr/program/mysql-5.6.29/
      • Добавьте группу и пользователя и установите права доступа к каталогу установки:
        • sudo groupadd mysql # Добавить группу
        • sudo useradd -g mysql mysql -s /bin/false # Создать пользователя mysql и добавить его в группу mysql, запретить пользователю mysql прямой вход в систему
        • sudo chown -R mysql:mysql /usr/program/mysql/data # Установить права доступа к базе данных MySQL
      • Инициализируйте базу данных: sudo /usr/program/mysql/scripts/mysql_install_db --basedir=/usr/program/mysql --datadir=/usr/program/mysql/data --skip-name-resolve --user=mysql
      • Откройте порт брандмауэра:
        • sudo iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
        • sudo service iptables save
        • sudo service iptables restart
      • Отключите selinux:
        • Измените конфигурацию: vim /etc/selinux/config
        • Замените SELINUX=enforcing на SELINUX=disabled
      • Чтобы иметь возможность использовать команды mysql и mysqladmin в терминале, создайте символические ссылки:
        • sudo ln -s /usr/program/mysql/bin/mysql /usr/bin
        • sudo ln -s /usr/program/mysql/bin/mysqladmin /usr/bin

Настройка MySQL

/etc/my.cnf
/usr/program/mysql/my.cnf
/usr/program/mysql/mysql-test/suite/ndb/my.cnf
/usr/program/mysql/mysql-test/suite/ndb_big/my.cnf
.............
/usr/program/mysql/mysql-test/suite/ndb_rpl/my.cnf
  • Сохраните файлы /etc/my.cnf и /usr/program/mysql/mysql-test/, остальные удалите.
  • Вот пример конфигурации для односерверной установки MySQL 5.6, подходящей для сервера с 1 ГБ памяти:

Изменение пароля root

  • Запустите сервер MySQL: service mysql start

  • Проверьте, запущен ли он: ps aux | grep mysql

  • По умолчанию пароль для root пуст, поэтому для удобства можно установить новый пароль, например, 123456:

  • В терминале выполните: mysql -uroot

    • Теперь вы находитесь в командной строке управления MySQL, введите: SET PASSWORD = PASSWORD('123456');
  • После изменения пароля выполните в терминале: mysql -uroot -p

    • Введите пароль и войдите в командную строку MySQL. Решение:
  • В терминале выполните: service mysql stop.

  • В терминале выполните: /usr/program/mysql/bin/mysqld --skip-grant-tables. В этот момент MySQL-сервис будет находиться в состоянии прослушивания. Необходимо открыть ещё одно окно терминала для выполнения следующих действий.

  • В терминале выполните: mysql -u root mysql.

  • После входа в MySQL-команду выполните: UPDATE user SET Password=PASSWORD('введите новый пароль') where USER='root';FLUSH PRIVILEGES;.

  • Перезапустите MySQL-сервис: service mysql restart.

MySQL мастер-реплика

Описание среды и примечания

Предположим, что есть два сервера: один выполняет роль мастера, другой — реплики.

Информация о мастере:

— IP: 12.168.1.113;

— порт: 3306.

Информация о реплике:

— IP: 12.168.1.115;

— порт: 3306.

Примечание:

— версии базы данных на главном и подчинённом серверах должны совпадать;

— данные в базах данных главного и подчинённого серверов должны быть одинаковыми;

— на главном сервере должен быть включён двоичный журнал, а server-id на главном и подчиненном серверах должен быть уникальным.

Приоритет операций:

скопировать базу данных с главного сервера на подчинённый и импортировать.

Действия на главном сервере

Действия на главном сервере:

— создайте каталог: mkdir -p /usr/program/mysql/data/mysql-bin;

— включите двоичный журнал на главном сервере: vim /etc/my.cnf, добавьте строку: log-bin = /usr/program/mysql/data/mysql-bin, укажите синхронизируемую базу данных (если не указано, то синхронизируются все базы данных).

— закройте медленный журнал запросов на главном сервере с помощью SQL-запроса: SHOW VARIABLES LIKE '%slow_query_log%'. Если отображается OFF, это означает, что он закрыт, ON — открыт.

— перезапустите главный сервер MySQL.

— войдите в состояние командной строки MySQL и выполните SQL-запрос для проверки состояния: SHOW MASTER STATUS. Запишите значения File и Position в результатах. Они понадобятся позже для настройки реплики.

— настройте разрешения для пользователя slave01 с паролем 123456 для подключения к главному серверу. Здесь @ после IP-адреса представляет IP-адрес реплики, если у реплики несколько машин, необходимо выполнить несколько таких SQL-запросов.

grant replication slave on *.* to 'slave01'@'192.168.1.135' identified by '123456';
flush privileges;

Действия на реплике

Действия на реплике:

— откройте медленный журнал запросов на реплике с помощью SQL-запроса: SHOW VARIABLES LIKE '%slow_query_log%'; если отображается OFF, значит, он закрыт, ON — открыт.

— проверьте, может ли реплика подключиться к главному серверу: sudo mysql -h 192.168.1.105 -u slave01 -p. Это действие имеет смысл только в том случае, если подключение успешно.

Чтобы исключить проблемы с брандмауэром, рекомендуется временно отключить его:service iptables stop.

Или добавить правило брандмауэра: — добавить правило: sudo iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT; — сохранить правило: sudo service iptables save; — перезапустить iptables: sudo service iptables restart.

— измените конфигурацию файла: vim /etc/my.cnf и установите значение server-id, отличное от главного сервера.

— в командной строке MySQL введите следующий SQL:

CHANGE MASTER TO
master_host='192.168.1.113',
master_user='slave01',
master_password='123456',
master_port=3306,
master_log_file='mysql3306-bin.000006',>>>это значение вы записали ранее
master_log_pos=1120;>>>это значение вы также записали ранее

— выполните этот SQL-запрос, чтобы запустить синхронизацию реплик: START SLAVE;

— выполните этот SQL-запрос, чтобы проверить статус реплики: SHOW SLAVE STATUS;

— убедитесь, что значения Slave_IO_Running и Slave_SQL_Running в результатах равны Yes. Это означает успешную настройку репликации.

Если Slave_IO_Running равно No, обычно это происходит при тестировании на виртуальной машине. Реплика была скопирована с главной виртуальной машины. Обычно это происходит из-за того, что UUID MySQL на обеих машинах одинаковы. Вы можете проверить журнал ошибок реплики: cat /usr/program/mysql/data/mysql-error.log.

Если в журнале ошибок указано сообщение об ошибке uuid, вы можете отредактировать файл конфигурации реплики: vim /usr/program/mysql/data/auto.cnf. Измените значение server-uuid в файле конфигурации так, чтобы оно отличалось от главного сервера.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lengchuan-Linux-Tutorial.git
git@api.gitlife.ru:oschina-mirror/lengchuan-Linux-Tutorial.git
oschina-mirror
lengchuan-Linux-Tutorial
lengchuan-Linux-Tutorial
master