если upgrade, то остановить mysql, сохранить базы данных и my.cfg (не забыть потом удалить!), прочитать главу в руководстве про upgrade
make (188 MB)
make install (как root)(44 MB, из них 10 МБ - тест)
/usr/local/mysql/include/mysql
/usr/local/mysql/info
/usr/local/mysql/man
/usr/local/mysql/lib/mysql (libdbug, libheap, libmerge, libmyisam, libmyisammrg, libmysqlclient (.a и .so.14.0.0), libmysqld, libmystrings, libmysys, libnisam, libvio); эту директорию указывать для libtool, либо занести в /etc/ld.so.conf
bin/mysql_install_db --user=mysql (при первой установке обязательно,
создание таблиц с правами, пользователя root
(все права!) и анонимного пользователя без паролей, таблицы help;
не портит существующие таблицы прав доступа)
скопировать share/mysql/my-medium.cnf в data/my.cnf и слегка отредактировать [mysqld]
socket=имя-файла под Unix-socket (и в раздел [client] тоже)
skip-locking (не блокировать доступ к данным от ДРУГИХ процессов)
параметры оптимизации
skip-networking #если не нужен доступ по TCP/IP (а еще лучше использовать ssh + port forward)
если 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/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)
переписана библиотека работы с фиксированной точкой
механизмы хранения ARCHIVE и FEDERATED
режим соответствия стандарту SQL Strict
VARCHAR увеличена до 64KB, концевые пробелы не удаляются
4.1.22 относительно 4.1.19
mysqlbinlog --set-charset
переменная lc_time_names позволяет определить язык вывода имён дней и месяцев
ключ запуска сервера --skip-merge
4.1.19 относительно 4.1.16
функция sha1_result переименована в mysql_sha1_result
исправлена ошибка с заполнением таблицы help при установке
исправлена ошибка безопасности в протоколе
глобальная переменная max_prepared_stmt_count и переменная prepared_stmt_count
добавлена команда charset для клиента, позволяющая сменить кодировку без повторного соединения
4.1.17 относительно 4.1.13
CHAR() USING charset
переменная myisam_stats_method
mysqld --skip-character-set-client-handshake
4.1.13 относительно 4.1.11
таблицы типа MEMORY могут иметь индекс до 500 байт
очередные изменения правил сортировки выражений
ключ --log-slow-admin-statements для mysqld
4.1.11 относительно 4.1.8
глобальная переменная slave_transaction_retries
переменная сессии SQL_NOTES
ключ --set-character-set для myisamchk переименован в --set-collation
ключ --defaut-character-set для mysqladmin
ключ --with-big-tables для configure
директивы !include и !includedir в конфигурационных файлах
изменены правила сортировки выражений, состоящих из элементов с различными
правилами сортировки
4.1.8 относительно 4.0.23 (14 декабря 2004)
ключ --sigint-ignore
запрещены выражения типа SELECT a AS b FROM t1
ORDER BY t1.b
ключи --start-datetime, --stop-datetime, --start-position, --stop-position,
--disable-log-bin для mysqlbinlog
добавлены типы таблиц (storage-engine) CSV, ARCHIVE и EXAMPLE
timezone переименована в system_time_zone,
появилась поддержка часового пояса клиента (@@time_zone, CURRENT_TIMESTAMP,
UNIX_TIMESTAMP, тип TIMESTAMP и др. как в
Oracle TIMESTAMP WITH LOCAL TIME ZONE)
переменная sync_binlog задаёт интервал между сохранением binlog на диск
ключ --innodb-safe-binlog обеспечивает синхронизцию между InnoDB и
binlog
сравнение строк приведено в соответствии со
стандартами SQL (вместо усечения завершающих пробелов перед сравнением,
короткая строка дополняется необходимым числом пробелов: 'a' = 'a ',
'a' > 'a\t'); таблицы, имеющие значения
в колонках CHAR и VARCHAR менее ASCII(32), требуют восстановления
DEFAULT CURRENT_TIMESTAMP и ON UPDATE CURRENT_TIMESTAMP;
явное указание значения умолчания теперь
отменяет автоматическое занесение текущего времени
функция UNHEX()
функция UUID()
до 64 индексов на таблицу
длина ключа MyISAM - до 1000 байт
ENGINE вместо TYPE в CREATE TABLE,
--default-storage-engine вместо --default-table-type, переменная
storage_engine вместо table_type и заголовок
колонки Engine вместо Type в SHOW TABLE STATUS
переменные init_connect и init_slave могут хранить операции,
выполняемые при каждом подключении клиента или репликатора
определение кодировки символов для БД, таблиц и столбцов
кеширование ключей для MyISAM (CACHE INDEX, LOAD INDEX INTO CACHE)
индекс BTREE для таблиц типа HEAP
поддержка OpenGIS
SHOW WARNINGS
улучшения в C API (предразбор параметров, несколько операция за раз),
mysql_get_server_version(), mysql_sqlstate(), mysql_set_server_option(),
mysql_hex_string(),
mysql_prepare_result() переименована в
mysql_get_metadata(), mysql_execute() в mysql_stmt_execute() и др.
CREATE [TEMPORARY] TABLE ... LIKE ...
HELP на стороне сервера
ключи --reconnect и --skip-reconnect для клиента mysql
функция VARIANCE()
функция ROLLUP()
expr SOUNDS LIKE expr
ALTER DATABASE
комментарии для столбцов и SHOW FULL COLUMNS
преобразование кодировок CONVERT(... USING ...)
несколько каталогов для временных файлов
TRUE и FALSE как синонимы для 0 и 1
операторы DIV и MOD
несколько операций за раз
новый более быстрый протокол клиент/сервер
TIMESTAMP выводится только как YYYY-MM-DD HH:MM:SS
функция CRC32(), BIT_XOR()
пароль увеличен до 41 символов (45 в 4.1.0)
функция IS_USED_LOCK() для определения идентификатора соединения
функции CHARSET() и COLLATION(), COERCIBILITY()
ключи --compatible, --order-by-primary, --lock-all-tables, --hex-blob
для mysqldump
DEFAULT(col_name)
4.0.23 относительно 4.0.22
переменная innodb_status_file
mysql_hex_string() C API
ключ --hex-blob для mysqldump
4.0.22 относительно 4.0.14
ключ --innodb-table-locks (и переменная), по умолчанию включён;
необходимо отключить, если возникает deadlock
переменная innodb_max_purge_lag
./configure --comment --without-man
TIMESTAMP(19) выводится как YYYY-MM-DD HH:MM:SS
ключ --skip-log-warnings позволяет выключить установленный теперь
по умолчанию ключ --log-warnings
ключ --local-load утилиты mysqlbinlog требует наличия параметра
утилита myisam_ftdump
вместо ключевого слова TYPE в CREATE TABLE можно использовать ENGINE
переменная lower_case_table_names может принимать значение 2
(хранение имен таблиц со смешанным регистром в файловой системе,
не различающей прописные и строчные символы в именах файлов)
убран ключ --old-rpl-compat для mysqld
ключ --disable-sync-frm для mysqld позволяет отменить синхронизацию
при создании каждого файла .frm
переменные range_alloc_block_size, query_alloc_block_size,
query_prealloc_size, transaction_alloc_block_size и
transaction_prealloc_size для управления памятью
значения в конфигурационных файлах могут быть обрамлены кавычками
библиотека libmysqld для встраивания MySQL сервера в другие программы
GRANT: новые привилегии (CREATE TEMPORARY TABLES, EXECUTE, LOCK TABLES,
REPLICATION CLIENT, REPLICATION SLAVE, SHOW DATABASES, SUPER; требуется
выполнить скрипт mysql_fix_privilege_tables) и управление ресурсами
(MAX_QUERIES_PER_HOUR, MAX_UPDATES_PER_HOUR, MAX_CONNECTIONS_PER_HOUR)
динамическое изменение значений переменных сервера
ключ --xml для mysql
добавлены переменные ft_min_word_len, ft_max_word_len и ft_max_word_len_for_sort для управления полнотекстовым поиском
SSL
обмен пакетами более 16 МБ по сети (до 1 GB, max_allowed_packet)
сравнение строк учитывает текущую кодировку и нечуствительна к регистру
операция UNION
операция DELETE работает с несколькми таблицами сразу
операция INSERT для таблиц типа MERGE
переменная myisam_bulk_insert_tree_size управляет размером кеша
обрамляющий скрипт safe_mysqld переименован в mysqld_safe
функции SQL_CALC_FOUND_ROWS и FOUND_ROWS()
шестнадцатеричные константы вида X'ff'
команда system в mysql
функции DES_ENCRYPT() и DES_DECRYPT()
ключ --des-key-file для mysqld
оператор FLUSH DES_KEY_FILE
функция HEX(string)
запрещено использовать обратную косую (\) в именах БД
оператор "^" (XOR)
функция IS_FREE_LOCK("lock_name")
экспоненциальная часть в DECIMAL и NUMERIC
функция SHA1() (160 bit, SHA1 более устойчива, чем MD5)
функции AES_ENCRYPT() и AES_DECRYPT()
ключ --single-transaction для mysqldump
автоматическое увеличение размера файла данных InnoDB
ключ --ignore-lines=число для mysqlimport
результат всех битовых функций теперь имеет тип unsigned integer
функции CAST() и CONVERT()
скрипт mysql_secure_installation
функция QUOTE()
переменные myisam_max_sort_file_size, myisam_max_extra_sort_file_size
теперь задаются в байтах, а не в мегабайтах
переменые поделены на общесистемные (SET GLOBAL) и относящиеся к
данной сессии (SET SESSION)
переменая slave_compressed_protocol
переименованы:
query_cache_startup_type в query_cache_type
myisam_bulk_insert_tree_size в bulk_insert_buffer_size
record_buffer в read_buffer_size
record_rnd_buffer в record_rnd_buffer_size
множество других переменных, но их старые имена будут действовать до 5.0
переменная query_buffer_size удалена
переменная safe_show_database удалена
ключ --skip-locking переименован в --skip-external-locking
расширена функция LOG()
добавлена функция LOG2()
добавлена функция LN()
ключ --use-frm для mysqlcheck (REPAIR)
изменилось поведение оператора BETWEEN
не требуется привилегия UPDATE для REPLACE
функция CURRENT_USER() возвращает строку вида user@host в том виде
как ее поняла система безопасности (GRANT)
зарезервированы слова CHECK, SIGNED, LOCALTIME, LOCALTIME
CAST(... as CHAR)
SELECT ... LIMIT ... OFFSET ...
HANDLER (курсор) применим к InnoDB
размер ключа в InnoDB увеличен с 500 до 1024 байт
READ COMMITTED/READ UNCOMMITTED для InnoDB
FOREIGN KEY (...) REFERENCES ...(...) для InnoDB теперь понимает
ON UPDATE [ CASCADE | SET NULL | RESTRICT | NO ACTION]
оператор FORCE INDEX в JOIN (слово FORCE стало резервированным)
ключ --log-error=имя-файла для mysqld_safe и mysqld
переменная ft_stopword_file позволяет указывать файл неиндексируемых
(stop) слов для полнотекстового поиска; при изменении требуется пересобрать
все полнотекстовые индексы
PRIMARY KEY подразумевает NOT NULL
переменная myisam_repair_threads задает число параллельных процессов
при восстановлении БД
переменная innodb_max_dirty_pages_pct
ANALYZE TABLE для InnoDB
ключ --new меняет интерпретацию двоичных объектов как двоичных строк,
а не целых чисел; данный подход будет по умолчанию в версии 4.1
переменная delayed_insert_timeout
переменная max_insert_delayed_threads
BIT_AND() и BIT_OR() теперь возвращают 64-битовые значения без знака
ключ --symbolic-links вместо --skip-symlink и --use-symbolic-links
ключ --delete-master-logs для mysqldump
ALTER TABLE DROP FOREIGN KEY для InnoDB
переменная max_seeks_for_key управляет степенью предпочтения использования
ключей над полным просмотром таблицы
ключ --nice для установки приоритета mysqld_safe
ключ --read-only для mysqld (права SUPER все же позволяют изменения данных)
переменная max_relay_log_size
SAVEPOINT и ROLLBACK TO SAVEPOINT для InnoDB
3.23.57 относительно 3.23.37 (включая InnoDB)
ключ --skip-stack-trace для mysqld
новая программа mysqlcheck
ключ --warnings для mysqld (сообщения типа "Aborted connection")
ключ --sql-mode для mysqld (управление совместимостью)
InnoDB: максимальный размер строки увеличен до 4 ГБ;
поддержка "сырых" разделов диска в качестве файлоа данных;
поддержка файлов и разделов более 4 ГБ; параметры: innodb_thread_concurrency,
innodb_fast_shutdown, innodb_force_recovery; программы innodb_monitor,
innodb_lock_monitor, innodb_tablespace_monitor, innodb_table_monitor;
внешние ключи;
длина ключа увеличена до 7000 (потом уменьшена до 500 ;);
SHOW INNODB STATUS
переменная record_buffer разделилась на record_buffer и record_rnd_buffer
ключ --safe-user-create для mysqld
добавлена команда "DO выражение"
опция slave-skip-errors
ключ --xml для mysqldump
переменная Com_show_master_stat переименована в Com_show_master_status,
Com_show_slave_stat - Com_show_slave_status
BACKUP TABLE запрещено затирать существующий файл
ключ --delete-master-logs для mysqldump
3.23.37 относительно 3.23.36
ключ --mysql-version для safe_mysqld
ключ --skip-safemalloc для mysqld
INNOBASE переименована в InnoDB
запрещено делать INSERT DELAYED для таблиц с транзакциями
добавлены переменные myisam_max_sort_file_size и myisam_max_extra_sort_file_size
3.23.36 относительно 3.23.35
запрещена "." в именах баз
SET TRANSACTION ISOLATION LEVEL ...
SELECT ... FOR UPDATE
3.23.35 относительно 3.23.33
INNOBASE и DBD включены непосредственно в поставку (транзакции)
опция max_user_connections в mysqld
3.23.33 относительно 3.23.32
колонки типа CHAR в таблицах привилегий теперь имеют атрибут BINARY (при создании)
"TRUNCATE имя-таблицы" теперь надо писать как "TRUNCATE TABLE имя-таблицы"
введена переменная max_binlog_size; бинарный журнал будет автоматически
свернут при достижении этого размера
опция --temp-pool для mysqld (позволяет избежать memory leak в linux
при генерации имен временных файлов)