MySQL: установка, настройка, описание - Установка и настройка (MySQL 3.23.37 на Linux RedHat 6.2) из исходных текстов

ОГЛАВЛЕНИЕ


Установка и настройка (MySQL 3.23.37 на Linux RedHat 6.2) из исходных текстов

  • иметь gcc лучше, чем 2.8.1 (egcc 1.0.2), рекомендуется 2.95.2
  • создать директорию для сборки, распаковать в нее mysql-3.23.37.tar.gz
  • для версии ранее 3.23.34 распаковать туда db-3.2.3h.tar.gz (это специальная версия bdb для MySQL)
  • создать группу mysql
  • создать пользователя mysql (в группе mysql) (зачем ему bash?)
  • ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-unix-socket-path=путь --with-mysqld-user=mysql --disable-large-files --with-libwrap --without-debug --with-charset=cp1251 --with-extra-charsets=all --with-berkeley-db
  • make (70MB/91MB)
  • если upgrade, то остановить mysql, сохранить базы данных и my.cfg (не забыть потом удалить!)
  • make install (как root)(16 MB, из них 5МБ - тест)
    • /usr/local/mysql/include/mysql
    • /usr/local/mysql/info
    • /usr/local/mysql/man
    • /usr/local/mysql/lib/mysql (libdbug, libheap, libmerge, libmyisam, libmyisammrg, libmysqlclient, libmystrings, libmysys, libnisam); эту директорию указывать для libtool, либо занести в /etc/ld.so.conf
    • /usr/local/mysql/bin (comp_err, isamchk, isamlog, my_print_defaults, myisamchk, myisamlog, myisampack, mysql, mysqladmin, mysqlbinlog, mysqlshow, mysqldump, mysqlimport, mysqltest, pack_isam, perror, replace, resolve_stack_dump, resolveip, скрипты )
    • /usr/local/mysql/share/mysql (сообщения об ошибках - koi8-r, таблицы кодировок - cp1251, koi8-r; mi_test_all; mi_test_all.res)
    • /usr/local/mysql/libexec (mysqld)
    • /usr/local/mysql/sql-bench
    • /usr/local/mysql/mysql-test
    • /usr/local/mysql/data (базы данных, конфигурация, журналы, pid-файл)
  • при первой установке: scripts/mysql_install_db (как root - создание таблиц с правами доступа, дает все права пользователю root без пароля и позволяет делать все с базами test и test_*, кроме раздачи привилегий)
  • chown -R root:mysql /usr/local/mysql (как root)
  • chown -R mysql /usr/local/mysql/data (и отдельную директорию для mysql.sockets с правами чтения для всех; mysql не нужны права на запись для my.cnf)
  • support-files/mysql.server в /etc/rc.d/init.d для автоматического запуска и дать ему права на исполнение и сделать линк K00mysql из rc0.d и rc6.d на него, S99mysql из rc2.d, rc3.d и rc5.d на него
  • скопировать my-medium.cnf в /usr/local/mysql/data/my.cnf и слегка отредактировать [mysqld]
    • socket=имя-файла под Unix-socket (и в раздел [client] тоже)
    • skip-locking (не блокировать доступ к данным от ДРУГИХ процессов)
    • log-bin #журнал изменений для репликации
    • log-slow-queries
    • log-update #журнал изменений
    • #secure - говорит, что нет такой опции
    • skip-networking #если не нужен доступ по TCP/IP (а еще лучше использовать ssh + port forward)
    • safe-show-database
    • skip-show-database
    • server-id=1 # что это?
    • куча set-variable из исходного файла
    • set-variable = max_connections=500
  • тестовый запуск: /usr/local/mysql/bin/safe_mysqld --user=mysql (как root)(или сразу /etc/rc.d/rc3.d/S99mysql start)
  • /usr/local/mysql/bin/mysqladmin -u root -p password 'пароль' (при запросе пароля нажать Enter)
  • /usr/local/mysql/bin/mysqladmin -u root -h localhost.localdomain -p password 'пароль' (надо ли?)
  • установка интерфейса с Perl
    • взять модули Data-Dumper, DBI и Msql-Mysql-modules
    • каждый распаковать в отдельную директорию (Msql-Mysql-modules последним)
    • зайти в нее
    • perl Makefile.PL (опционально хочет RPC::PlServer, RPC::PlClient, Storable, Net::Daemon).
    • make
    • make test (mysqld должен работать)
    • make install (как root)
  • тестирование
    • зайти в sql-bench
    • ./run-all-tests --user=test (нужны права для записи в директорию output, час времени и 200 МБ на диске)(connect/disconnect временами грохает mysqld!)
    • можно удалить sql-bench и mysql-test
  • настроить права доступа (как минимум, убрать анонимный доступ)