ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ืคึผืจืึธื’ืจืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืฉื˜ื™ื™ืŸ ื ืึธืš, ืึทื–ื•ื™ ื“ื™ ืกื™ื‘ื•ืช ืฆื• ืึทืคึผื’ืจื™ื™ื“ ืฆื• ื“ื™ ืœืขืฆื˜ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ MySQL ื•ื•ืขืจืŸ ื™ื ืงืจื™ืกื™ื ื’ืœื™ ืงืึทืžืคึผืขืœื™ื ื’. ื ื™ื˜ ืœืึทื ื’ ืฆื•ืจื™ืง, ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืคึผืจืึทื“ื–ืฉืขืงืก, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื™ื™ื˜ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ื”ื™ื™ืžื™ืฉ ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ื™ืจืขืจ 5.7 ืงืœืึทืกื˜ืขืจื– ืฆื• ื•ื•ืขืจืกื™ืข 8. ืึทืœืข ื“ืขื ื’ืขื˜ืจืืคืŸ ืื•ื™ืฃ ื“ื™ Ubuntu Linux 16.04 ืคึผืœืึทื˜ืคืึธืจืžืข. ื•ื•ื™ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืึทื–ืึท ืึท ืึธืคึผืขืจืึทืฆื™ืข ืžื™ื˜ ืžื™ื ื™ืžืึทืœ ื“ืึทื•ื ื˜ื™ื™ื ืื•ืŸ ื•ื•ืึธืก ืคึผืจืึธื‘ืœืขืžืก ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืคึผืœืึธื ื˜ืขืจื˜ ื‘ืขืฉืึทืก ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ - ืœื™ื™ืขื ืขืŸ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ.

ื˜ืจืึทื™ื ื™ื ื’

ืงื™ื™ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกืขืจื•ื•ืขืจ ืื™ื– ืจื•ื‘ึฟ ืžืกืชึผืžื ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก ืจื™ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ: ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืคึฟืึทืจ ืœื™ืžืึทืฅ ืื•ื™ืฃ ืกื™ืกื˜ืขื ืจืขืกื•ืจืกืŸ ืื•ืŸ ืงืขืจืขืงืฉืึทืŸ ืคื•ืŸ ื“ื™ื™ื˜ืึทื‘ื™ื™ืก ืงืึทื ืคื™ื’ื™ืขืจื™ื– ื•ื•ืึธืก ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ืงืœื™ืจื“ ืคื•ืŸ ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื–.

ืื™ื™ื“ืขืจ ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืืฉื˜ื™ืžื˜ ืึธืคึผืฉื™ืงืŸ ืฆื• ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ:

ืื•ืŸ ืœืึธืžื™ืจ ืžืึทื›ืŸ ืึทืŸ ืึทืงืฆื™ืข ืคึผืœืึทืŸ:

  1. ืจื™ื›ื˜ื™ืง ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก ื“ื•ืจืš ืจื™ืžื•ื•ื•ื™ื ื’ ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื–.
  2. ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืžื™ื˜ ื™ื•ื˜ื™ืœืึทื˜ื™ื–.
  3. ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืฉืงืœืึทืฃ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื“ื•ืจืš ื™ื ืกื˜ืึธืœื™ื ื’ ื“ืขื ืคึผืขืงืœ percona-server-server.
  4. ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ื‘ืขืœ ืžื™ื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืคึผืขืงืœ.

ื–ืืœ ืก ืงื•ืง ื‘ื™ื™ึท ื™ืขื“ืขืจ ืคื•ื ื˜ ืคื•ืŸ ื“ื™ ืคึผืœืึทืŸ ืื•ืŸ ื–ืขืŸ ื•ื•ืึธืก ืงืขืŸ ื’ื™ื™ืŸ ืคืึทืœืฉ.

ื•ื•ื™ื›ื˜ื™ืง! ื“ืขืจ ืคึผืจืึธืฆืขื“ื•ืจ ืคึฟืึทืจ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืึท MySQL ืงื ื•ื™ืœ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ Galera ื”ืื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืกืึทื˜ืึทืœื˜ื™ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ. ืื™ืจ ื–ืึธืœ ื ื™ืฉื˜ ื ื•ืฆืŸ ื“ืขื ืœื™ืžืขื“ ืื™ืŸ ื“ืขื ืคืึทืœ.

ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–

MySQL ืื™ื– ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืื™ืŸ ื•ื•ืขืจืกื™ืข 8 query_cache. ืœืžืขืฉื” ืื™ื– ืขืจ ื’ืขื•ื•ืขืŸ ื“ืขืจืงืœืขืจื˜ ืคืึทืจืขืœื˜ืขืจื˜ ืฆื•ืจื™ืง ืื™ืŸ ื•ื•ืขืจืกื™ืข 5.7, ืึธื‘ืขืจ ืื™ืฆื˜ ื’ืึธืจ ืื•ื™ืกื’ืขืžืขืงื˜. ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื“ื™ ืคืืจื‘ื•ื ื“ืŸ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื–. ืื•ืŸ ืฆื• ืงืึทืฉ ืจื™ืงื•ื•ืขืก ืื™ืจ ืงืขื ืขืŸ ืื™ืฆื˜ ื ื•ืฆืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืžื›ืฉื™ืจื™ื - ืœืžืฉืœ, ProxySQL.

ืื•ื™ืš ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืขืก ื–ืขื ืขืŸ ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื– ื•ื•ืขื’ืŸ innodb_file_format. ืื•ื™ื‘ ืื™ืŸ MySQL 5.7 ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื InnoDB ืคึฟืึธืจืžืึทื˜, ื“ื™ 8 ื•ื•ืขืจืกื™ืข ืฉื•ื™ืŸ ืึทืจื‘ืขื˜ ื‘ืœื•ื™ื– ืžื™ื˜ Barracuda ืคึฟืึธืจืžืึทื˜.

ืื•ื ื“ื–ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ื“ื™ ื‘ืึทื–ื™ื™ึทื˜ื™ืงื•ื ื’ ืคื•ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื–:

  • query_cache_type, query_cache_limit ะธ query_cache_size;
  • innodb_file_format ะธ innodb_file_format_max.

ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื“ื™ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ ืคื•ืŸ ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ื™ืจืขืจ. ืžื™ืจ ืฉื˜ืขืœืŸ ื“ื™ ืกืขืจื•ื•ื™ืจืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ mysql_config_test, ืื•ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืฆื• ืื™ื, ืžื™ืจ ื•ื•ืขืœืŸ ืฉืึทืคึฟืŸ ื“ื™ืจืขืงื˜ืขืจื™ื– ืคึฟืึทืจ ื“ืึทื˜ืŸ ืื•ืŸ ืœืึธื’ืก. ืคึผืขืจืงืึธื ืึท-ืกืขืจื•ื•ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืกื˜ ื‘ื™ื™ึทืฉืคึผื™ืœ:

mkdir -p {mysql_config_test,mysql_data,mysql_logs}
cp -r /etc/mysql/conf.d/* mysql_config_test/
docker run  --name some-percona -v $(pwd)/mysql_config_test:/etc/my.cnf.d/  -v $(pwd)/mysql_data/:/var/lib/mysql/ -v $(pwd)/mysql_logs/:/var/log/mysql/ -e MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD} -d percona:8-centos

ื“ื ืึธ ืฉื•ืจื”: ืึธื“ืขืจ ืื™ืŸ ื“ื™ ื“ืึธืงืงืขืจ ืœืึธื’ืก ืึธื“ืขืจ ืื™ืŸ ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืžื™ื˜ ื“ื™ ืœืึธื’ืก - ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ื™ืŸ ืงืึธื ืคื™ื’ืก - ืึท ื˜ืขืงืข ื•ื•ืขื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืคึผืจืึธื‘ืœืขืžืึทื˜ื™ืง ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“.

ื“ืึธ ืก ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ:

2020-04-03T12:44:19.670831Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2020-04-03T12:44:19.671678Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2020-04-03T12:44:19.671682Z 0 [Warning] [MY-013244] [Server] --collation-server: 'utf8_general_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead.

ืื–ื•ื™, ืžื™ืจ ื ืึธืš ื“ืืจืฃ ืฆื• ืจืขื›ืขื ืขืŸ ื“ื™ ืงืึธื“ื™ืจื•ื ื’ ืื•ืŸ ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ื“ื™ืจืขืงื˜ื™ื•ื• expire-logs-days.

ื˜ื™ื™ืœ 2: ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืืจื‘ืขื˜ืŸ ื™ื ืกื˜ืึทืœื™ื™ืฉืึทื ื–

ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื›ึผื•ืœืœ 2 ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟืึทืจ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™. ื–ื™ื™ืขืจ ื ื•ืฆืŸ ื”ืขืœืคึผืก ื“ืขืจ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ.

ืœืึธืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ื“ื™ ืงืœืึทืกื™ืฉ mysqlcheck ื ื•ืฆืŸ. ืคืฉื•ื˜ ืœื•ื™ืคืŸ:

mysqlcheck -u root -p --all-databases --check-upgrade

ืื•ื™ื‘ ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ ื–ืขื ืขืŸ ื’ืขืคึฟื•ื ืขืŸ, ื“ื™ ื ื•ืฆืŸ ื•ื•ืขื˜ ืึทืจื•ื™ืกื’ืึทื ื’ ืžื™ื˜ ืงืึธื“ 0:

ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืึท ื ื•ืฆืŸ ืื™ื– ื‘ื ื™ืžืฆื ืื™ืŸ ืžืึธื“ืขืจืŸ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ MySQL mysql-shell (ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืคึผืขืจืงืึธื ืึท ื“ืึธืก ืื™ื– ื“ืขืจ ืคึผืขืงืœ percona-mysql-shell). ืขืก ืื™ื– ืึท ืคืึทืจื‘ื™ื™ึทื˜ ืคึฟืึทืจ ื“ืขืจ ืงืœืึทืกื™ืฉ ืžื™ืกืงืœ ืงืœื™ืขื ื˜ ืื•ืŸ ืงืึทืžื‘ื™ื™ื ื– ื“ื™ ืคืึทื ื’ืงืฉืึทื ื– ืคื•ืŸ ืึท ืงืœื™ืขื ื˜, ืึท ืกืงืœ ืงืึธื“ ืจืขื“ืึทืงื˜ืึธืจ ืื•ืŸ ืžื™ืกืงืœ ืึทื“ืžื™ื ื™ืกื˜ืจืึทืฆื™ืข ืžื›ืฉื™ืจื™ื. ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ืขื ืกืขืจื•ื•ื™ืจืขืจ ืื™ื™ื“ืขืจ ืึทืคึผื“ื™ื™ื˜ื™ื ื’, ืื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึทืžืึทื ื“ื– ื“ื•ืจืš ืื™ื:

mysqlsh -- util check-for-server-upgrade { --user=root --host=1.1.1.1 --port=3306 } --config-path=/etc/mysql/my.cnf

ื“ืึธ ื–ืขื ืขืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ื•ื•ืึธืก ืžื™ืจ ื‘ืืงื•ืžืขืŸ:

ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื’ืึธืจื ื™ืฉื˜ ืงืจื™ื˜ื™ืฉ - ื ืึธืจ ื•ื•ืึธืจื ื™ื ื’ื– ื•ื•ืขื’ืŸ ืงืึธื“ื™ืจื•ื ื’ (ื–ืข ืื•ื ื˜ืŸ). ืงื•ื™ืœืขืœื“ื™ืง ื“ื•ืจื›ืคื™ืจื•ื ื’ ืจืขื–ื•ืœื˜ืึทื˜:

ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืึทื– ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื–ืึธืœ ื’ื™ื™ืŸ ืึธืŸ ืคืจืื‘ืœืขืžืขืŸ.

ื ื‘ืึทืžืขืจืงื•ื ื’ ื•ื•ืขื’ืŸ ื“ื™ ื•ื•ืึธืจื ื™ื ื’ื– ืื•ื™ื‘ืŸ ื•ื•ืึธืก ื™ื ื“ื™ืงื™ื™ืฅ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ืงืึธื“ื™ืจื•ื ื’. ื“ืขืจ ืคืึทืงื˜ ืื™ื– ืึทื– UTF-8 ืื™ืŸ MySQL ื‘ื™ื– ืœืขืฆื˜ื ืก ืื™ื– ื ื™ืฉื˜ "ืืžืช" UTF-8, ื–ื™ื ื˜ ืขืก ืกื˜ืึธืจื“ ื‘ืœื•ื™ื– 3 ื‘ื™ื˜ืขืก ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ 4. ืื™ืŸ MySQL 8 ื“ืึธืก ืื™ื– ืœืขืกืึธืฃ ืžืขื’ืœืขืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ ืขืก: alias utf8 ื•ื•ืขื˜ ื‘ืึทืœื“ ืคื™ืจืŸ ืฆื• ืงืึธื“ื™ืจื•ื ื’ utf8mb4, ืื•ืŸ ื“ื™ ืึทืœื˜ืข ืฉืคืืœื˜ืŸ ืื™ืŸ ื“ื™ ื˜ื™ืฉืŸ ื•ื•ืขืœืŸ ื•ื•ืขืจืŸ utf8mb3. ื•ื•ื™ื™ึทื˜ืขืจ ืงืึธื“ื™ืจื•ื ื’ utf8mb3 ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ, ืึธื‘ืขืจ ื ื™ืฉื˜ ืื™ืŸ ื“ืขื ืžืขืœื“ื•ื ื’. ื“ืขืจื™ื‘ืขืจ, ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืจื™ื›ื˜ื™ืง ื“ื™ ืงืึธื“ื™ืจื•ื ื’ ืฉื•ื™ืŸ ืื•ื™ืฃ ื“ื™ ืคืœื™ืกื ื“ื™ืง DBMS ื™ื ืกื˜ืึทืœื™ืจื•ื ื’, ื ืึธืš ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืขืก.

ื˜ื™ื™ืœ 3: ืกืขืจื•ื•ื™ืจืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ

ื•ื•ืึธืก ืงืขืŸ ื’ื™ื™ืŸ ืคืึทืœืฉ ื•ื•ืขืŸ ืขืก ืื™ื– ืึทื–ืึท ืึท ืงืœื•ื’ ืคึผืœืึทืŸ? .. ืคืืจืฉื˜ืื ื“ ืคื•ืœืฉื˜ืขื ื“ื™ืง ืึทื– ื ื•ืึทื ืกื™ื– ืฉื˜ืขื ื“ื™ืง ืคึผืึทืกื™ืจืŸ, ืžื™ืจ ื’ืขืคื™ืจื˜ ื“ืขืจ ืขืจืฉื˜ืขืจ ืขืงืกืคึผืขืจื™ืžืขื ื˜ ืื•ื™ืฃ ืึท MySQL ื“ืขื•ื• ืงื ื•ื™ืœ.

ื•ื•ื™ ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜, ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืงืึธื•ื•ืขืจืก ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืคื•ืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL ืกืขืจื•ื•ืขืจืก ืžื™ื˜ ืจืขืคึผืœืึทืงืึทื–. ื“ื™ ื“ื ืึธ ืฉื•ืจื” ืื™ื– ืึทื– ืื™ืจ ื–ืึธืœ ืขืจืฉื˜ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืึทืœืข ืจืขืคึผืœืึทืงืึทื– (ืกืœืึทื•ื•ืขืก), ื–ื™ื ื˜ MySQL 8 ืงืขื ืขืŸ ืจืขืคึผืœืึทืงื™ื™ื˜ ืคึฟื•ืŸ ืึท ื‘ืขืœ ื•ื•ืขืจืกื™ืข 5.7. ืขื˜ืœืขื›ืข ืฉื•ื•ืขืจื™ืงื™ื™ื˜ ืœื™ื’ื˜ ืื™ืŸ ื“ืขื ืคืึทืงื˜ ืึทื– ืžื™ืจ ื ื•ืฆืŸ ื“ื™ ืžืึธื“ืข ื‘ืขืœ <-> ื‘ืขืœ, ื•ื•ืขืŸ ื“ื™ ื•ื•ื™ื™ึทื˜ ื‘ืขืœ ืื™ื– ืื™ืŸ ืžืึธื“ืข ื ืืจ ืฆื•ื ืœื™ื™ื ืขืŸ. ืึทื– ืื™ื–, ืื™ืŸ ืคืึทืงื˜, ืงืึทืžื‘ืึทื˜ ืคืึทืจืงืขืจ ื’ื™ื™ื˜ ืฆื• ืื™ื™ืŸ ื“ืึทื˜ืŸ ืฆืขื ื˜ืขืจ, ืื•ืŸ ื“ื™ ืจื’ืข ืื™ื– ืึท ื‘ืึทืงืึทืคึผ ืื™ื™ื ืขืจ.

ื“ื™ ื˜ืึธืคึผืึธืœืึธื’ื™ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืžื•ื–ืŸ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ืจืขืคึผืœืึทืงืึทื– mysql ืจืขืคึผืœื™ืงืข DC 2, mysql master DC 2 ะธ mysql replica dc 1, ืื•ืŸ ืกื•ืฃ ืžื™ื˜ ื“ื™ mysql master dc 1 ืกืขืจื•ื•ืขืจ. ืฆื• ื–ื™ื™ืŸ ืžืขืจ ืคืึทืจืœืึธื–ืœืขืš, ืžื™ืจ ืกื˜ืึทืคึผื˜ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืืฉื™ื ืขืŸ, ื’ืขื ื•ืžืขืŸ ืกื ืึทืคึผืฉืึทืฅ ืคื•ืŸ ื–ื™ื™, ืื•ืŸ ื’ืœื™ื™ืš ืื™ื™ื“ืขืจ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืกื˜ืึทืคึผื˜ ืจืขืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ STOP SLAVE. ื“ื™ ืจืขืฉื˜ ืคื•ืŸ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

  1. ืžื™ืจ ืจื™ืกื˜ืึทืจื˜ ื™ืขื“ืขืจ ืจืขืคึผืœื™ืงืข ื“ื•ืจืš ืึทื“ื™ื ื’ 3 ืึธืคึผืฆื™ืขืก ืฆื• ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–: skip-networking, skip-slave-start, skip-log-bin. ื“ืขืจ ืคืึทืงื˜ ืื™ื– ืึทื– ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ื–ืฉืขื ืขืจื™ื™ืฅ ื‘ื™ื™ื ืขืจื™ ืœืึธื’ืก ืžื™ื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืฆื• ืกื™ืกื˜ืขื ื˜ื™ืฉืŸ. ื“ื™ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื– ื’ืึทืจืึทื ื˜ื™ืจืŸ ืึทื– ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงื™ื™ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืื•ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ื˜ื™ืฉืŸ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ื‘ื™ื™ื ืขืจื™ ืœืึธื’ืก. ื“ืึธืก ื•ื•ืขื˜ ื•ื™ืกืžื™ื™ื“ืŸ ืคึผืจืึธื‘ืœืขืžืก ื•ื•ืขืŸ ืื™ืจ ืจืขืกื•ืžื™ื ื’ ืจืขืคึผืœืึทืงื™ื™ืฉืึทืŸ.
  2. ื™ื ืกื˜ืึธืœื™ื ื’ ื“ืขื ืคึผืขืงืœ percona-server-server. ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื˜ืึธืŸ ืึทื– ืื™ืŸ MySQL ื•ื•ืขืจืกื™ืข 8 ืงื™ื™ืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ mysqlupgrade ื ืึธืš ืกืขืจื•ื•ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ.
  3. ื ืึธืš ืึท ื’ืขืจืึธื˜ืŸ ืึธื ื”ื™ื™ื‘, ืžื™ืจ ืจื™ืกื˜ืึทืจื˜ ื“ื™ ืกืขืจื•ื•ืขืจ ื•ื•ื™ื“ืขืจ - ืึธืŸ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืคึผืึทืจืึทื’ืจืึทืฃ.
  4. ืžื™ืจ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืจืขืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทืจื‘ืขื˜ ื”ืฆืœื—ื”: ื˜ืฉืขืง SHOW SLAVE STATUS ืื•ืŸ ื–ืขืŸ ืึทื– ื“ื™ ื˜ื™ืฉืŸ ืžื™ื˜ ืงืึธื•ื ื˜ืขืจืก ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ื–ืขื ืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜.

ืขืก ืึทืœืข ืงื•ืงื˜ ื’ืึทื ืฅ ืคึผืฉื•ื˜: ื“ื™ ื“ืขื•ื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขืจืึธื˜ืŸ. ื’ื•ื˜, ืื™ืจ ืงืขื ืขืŸ ื‘ืขืฉืึธืœืขื ืคึผืœืึทืŸ ืึท ื ื™ื™ื˜ืœื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืคึฟืึทืจ ืคึผืจืึธื“ื•ืงืฆื™ืข.

ืขืก ืื™ื– ืงื™ื™ืŸ ื˜ืจื•ื™ืขืจื™ืง - ืžื™ืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื™ ืคึผืจืึธื“

ืึธื‘ืขืจ, ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืคื•ืŸ ืžืฆืœื™ื— ื“ืขื•ื• ื“ืขืจืคืึทืจื•ื ื’ ืฆื• ืคึผืจืึธื“ื•ืงืฆื™ืข ืื™ื– ื’ืขื•ื•ืขืŸ ื ื™ื˜ ืึธืŸ ืกืึทืคึผืจื™ื™ื–ื™ื–.

ืฆื•ืž ื’ืœื™ืง, ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืคึผืจืึธืฆืขืก ื–ื™ืš ื”ื™ื™ื‘ื˜ ืžื™ื˜ ืจืขืคึผืœืึทืงืึทื–, ืึทื–ื•ื™ ื•ื•ืขืŸ ืžื™ืจ ื’ืขืคึผืœืึธื ื˜ืขืจื˜ ืฉื•ื•ืขืจื™ืงื™ื™ื˜ืŸ, ืžื™ืจ ืคืืจืฉื˜ืืคื˜ ื“ื™ ืึทืจื‘ืขื˜ ืื•ืŸ ื’ืขื–ื•ื ื˜ ื“ื™ ืจืขืคึผืœื™ืงืข ืคึฟื•ืŸ ื“ื™ ืžืึธืžืขื ื˜ื‘ื™ืœื“. ื“ื™ ื•ื™ืกืคืึธืจืฉื•ื ื’ ืคื•ืŸ ื“ื™ ืคืจืื‘ืœืขืžืขืŸ ืื™ื– ืคึผืึธื•ืกื˜ืคึผืึธื•ื ื“ ื‘ื™ื– ื“ืขื ืื ื“ืขืจืŸ ืžืึธืจื’ืŸ. ื“ื™ ืœืึธื’ืก ืึทื ื˜ื”ืึทืœื˜ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืจื˜ื™ืงืœืขืŸ:

2020-01-14T21:43:21.500563Z 2 [ERROR] [MY-012069] [InnoDB] table: t1 has 19 columns but InnoDB dictionary has 20 columns
2020-01-14T21:43:21.500722Z 2 [ERROR] [MY-010767] [Server] Error in fixing SE data for db1.t1
2020-01-14T21:43:24.208365Z 0 [ERROR] [MY-010022] [Server] Failed to Populate DD tables.
2020-01-14T21:43:24.208658Z 0 [ERROR] [MY-010119] [Server] Aborting

ืคืึธืจืฉื•ื ื’ ืื™ืŸ ื“ื™ ืึทืจืงื™ื™ื•ื•ื– ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืžื™ื™ืœื™ื ื’ ืจืฉื™ืžื•ืช ืื•ื™ืฃ Google ื”ืื˜ ื’ืขืคึฟื™ืจื˜ ืฆื• ื“ื™ ืคืืจืฉื˜ืื ื“ ืึทื– ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืึทืงืขืจื– ืจืขื›ื˜ ืฆื• MySQL ื–ืฉื•ืง. ื›ืึธื˜ืฉ ื“ืึธืก ืื™ื– ืžืขืจ ืžืกืชึผืžื ืึท ื ื•ืฆืŸ ื–ืฉื•ืง mysqlcheck ะธ mysqlsh.

ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– MySQL ื˜ืฉื™ื™ื ื“ื–ืฉื“ ื“ื™ ื•ื•ืขื’ ื–ื™ื™ ืจืขืคึผืจืึทื–ืขื ืฅ ื“ืึทื˜ืŸ ืคึฟืึทืจ ื“ืขืฆื™ืžืึทืœ ืคืขืœื“ืขืจ (ื™ื ื˜, ื˜ื™ื ื™ื™ื ื˜, ืืื–"ื• ื•), ืึทื–ื•ื™ mysql-server ื ื™ืฆื˜ ืึท ืึทื ื“ืขืจืฉ ื•ื•ืขื’ ืฆื• ืงืจืึธื ื–ื™ื™. ืื•ื™ื‘ ื“ื™ื™ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ื˜ื›ื™ืœืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ ื•ื•ืขืจืกื™ืข 5.5 ืึธื“ืขืจ 5.1, ืื•ืŸ ืื™ืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืฆื• 5.7, ืื™ืจ ืงืขืŸ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืึธืŸ OPTIMIZE ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื˜ื™ืฉืŸ. ื“ืขืจื ืึธืš MySQL ื•ื•ืขื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ื“ืึทื˜ืŸ ื˜ืขืงืขืก ืื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื–ื™ื™ ืฆื• ื“ื™ ืงืจืึทื ื˜ ืกื˜ืึธืจื™ื“ื–ืฉ ืคึฟืึธืจืžืึทื˜.

ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ืขื ืžื™ื˜ ื“ื™ ื ื•ืฆืŸ mysqlfrm:

mysqlfrm --diagnostic -vv /var/lib/mysql/db/table.frm
...
 'field_length': 8,
  'field_type': 246, # ั„ะพั€ะผะฐั‚ ะฟะพะปั
  'field_type_name': 'decimal',
  'flags': 3,
  'flags_extra': 67,
  'interval_nr': 0,
 'name': 'you_deciaml_column',
...

ืฆื™ field_type ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ืขืก ื’ืœื™ื™ึทืš ืฆื• 0, ื“ื™ ืึทืœื˜ ื˜ื™ืคึผ ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ื˜ื™ืฉ - ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ OPTIMIZE. ืึธื‘ืขืจ, ืื•ื™ื‘ ื“ื™ ื•ื•ืขืจื˜ ืื™ื– 246, ืื™ืจ ืฉื•ื™ืŸ ื”ืึธื‘ืŸ ืึท ื ื™ื™ึทืข ื˜ื™ืคึผ. ืžืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ื˜ื™ื™ืคึผืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ืงืึธื“.

ื“ืขืจืฆื•, ืื™ืŸ ื“ืขื ื–ืฉื•ืง ืžื™ืจ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ืžืขื’ืœืขืš ืกื™ื‘ื” ื•ื•ืึธืก ืื™ื– ื‘ื™ื™ืคึผืึทืกื™ื“ ืื•ื ื“ื–: ื“ืขืจ ืึทื•ื•ืขืง ืคื•ืŸ InnoDB ื˜ื™ืฉืŸ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื ื˜ื™ืฉ. INNODB_SYS_TABLESPACES, ืื•ื™ื‘ ื–ื™ื™, ื˜ื™ืฉืŸ, ื–ืขื ืขืŸ ื‘ืืฉืืคืŸ ืื™ืŸ ื•ื•ืขืจืกื™ืข 5.1. ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืคึผืจืึธื‘ืœืขืžืก ื•ื•ืขืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืึทื˜ืึทื˜ืฉื˜ ืกืงืœ ืฉืจื™ืคื˜.

ืคืืจื•ื•ืืก ื”ืื‘ืŸ ืžื™ืจ ื ื™ืฉื˜ ื’ืขื”ืื˜ ืื–ืขืœื›ืข ืคืจืื‘ืœืขืžืขืŸ ืื•ื™ืฃ ื“ืขื•ื•? ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืงืึทืคึผื™ื“ ื“ืึธืจื˜ ืคึฟื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข - ืึทื–ื•ื™, ื˜ื™ืฉืŸ ื–ืขื ืขืŸ ืจื™ืงืจื™ื™ื™ื˜ื™ื“.

ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ืื•ื™ืฃ ืึท ื˜ืึทืงืข ืืจื‘ืขื˜ืŸ ื’ืจื•ื™ืก ื“ืึทื˜ืึทื‘ื™ื™ืก, ืื™ืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ื ืึธืจ ื ืขืžืขืŸ ืื•ืŸ ื•ื™ืกืคื™ืจืŸ ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ OPTIMIZE. ืคึผืขืจcona-toolkit ื•ื•ืขื˜ ื”ืขืœืคืŸ ื“ืึธ: ื“ื™ pt-online-schema-change ื ื•ืฆืŸ ืื™ื– ื•ื™ืกื’ืขืฆื™ื™ื›ื ื˜ ืคึฟืึทืจ ื“ื™ ืึธื ืœื™ื™ืŸ ืึธืคึผื˜ื™ืžื™ื–ืข ืึธืคึผืขืจืึทืฆื™ืข.

ื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืคึผืœืึทืŸ ื”ืื˜ ื•ื•ื™ ื“ืึธืก:

  1. ืึธืคึผื˜ื™ืžื™ื–ื™ืจืŸ ืึทืœืข ื˜ื™ืฉืŸ.
  2. ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–.

ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืขืก ืื•ืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜ ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืฆื™ื™ื˜, ืžื™ืจ ืคืึทืจืงืจื™ืคึผืœื˜ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืจืขืคึผืœืึทืงืึทื– ืื•ืŸ ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ ืคึฟืึทืจ ืึทืœืข ื˜ื™ืฉืŸ:

pt-online-schema-change --critical-load Threads_running=150 --alter "ENGINE=InnoDB" --execute --chunk-size 100 --quiet --alter-foreign-keys-method auto h=127.0.0.1,u=root,p=${MYSQL_PASSWORD},D=db1,t=t1

ื˜ืึทื‘ืœืขืก ื–ืขื ืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืึธืŸ ืœืึทื ื’ ืœืึทืงืก ืจืขื›ื˜ ืฆื• ื“ืขื ืคืึทืงื˜ ืึทื– ื“ื™ ื ื•ืฆืŸ ืงืจื™ื™ื™ืฅ ืึท ื ื™ื™ึท ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ื˜ื™ืฉ ืื™ืŸ ื•ื•ืึธืก ืขืก ืงืึทืคึผื™ื– ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ื™ืฉ. ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ื•ื•ืขืŸ ื‘ื™ื™ื“ืข ื˜ื™ืฉืŸ ื–ืขื ืขืŸ ื™ื™ื“ืขื ื™ืงืึทืœ, ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ื˜ื™ืฉ ืื™ื– ืคืืจืฉืคืืจื˜ ืื•ืŸ ืจื™ืคึผืœื™ื™ืกื˜ ืžื™ื˜ ื“ื™ ื ื™ื™ึทืข. ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ืึท ืคึผืจืึธื‘ืข ืœื•ื™ืคืŸ ื’ืขื•ื•ื™ื–ืŸ ืึทื– ืขืก ื•ื•ืึธืœื˜ ื ืขืžืขืŸ ื•ื•ืขื’ืŸ ืึท ื˜ืึธื’ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืึทืœืข ื˜ื™ืฉืŸ, ืึธื‘ืขืจ ืงืึทืคึผื™ื™ื ื’ ื“ืึทื˜ืŸ ื’ืขืคึฟื™ืจื˜ ืฆื• ืคื™ืœ ืžืึทืกืข ืื•ื™ืฃ ื“ื™ ื“ื™ืกืงืก.

ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ื“ืขื, ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ืžื™ืจ ืฆื•ื’ืขื’ืขื‘ืŸ ื“ืขื ืึทืจื’ื•ืžืขื ื˜ ืฆื• ื“ื™ ื‘ืึทืคึฟืขืœ --sleep ืžื™ื˜ ืึท ื•ื•ืขืจื˜ ืคื•ืŸ 10 - ื“ืขื ืคึผืึทืจืึทืžืขื˜ืขืจ ืึทื“ื–ืฉืึทืกื˜ื™ื“ ื“ื™ ื•ื•ืืจื˜ืŸ ืœืขื ื’ ื ืึธืš ื˜ืจืึทื ืกืคืขืจื™ื ื’ ืึท ืคึผืขืงืœ ืคื•ืŸ ื“ืึทื˜ืŸ ืฆื• ืึท ื ื™ื™ึท ื˜ื™ืฉ. ื“ืขื ื•ื•ืขื’ ืื™ืจ ืงืขื ืขืŸ ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ืžืึทืกืข ืื•ื™ื‘ ื“ื™ ืคืึทืงื˜ื™ืฉ ืคืœื™ืกื ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ืขื ื˜ืคืขืจ ืฆื™ื™ื˜.

ื ืึธืš ืคึผืขืจืคืึธืจืžื™ื ื’ ื“ื™ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ, ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขืจืึธื˜ืŸ.

... ืึธื‘ืขืจ ื ื™ืฉื˜ ื’ืึธืจ!

ื™ืŸ ื”ืึทืœื‘ ืึท ืฉืขื” ื ืึธืš ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ, ื“ืขืจ ืงืœื™ืขื ื˜ ื’ืขืงื•ืžืขืŸ ืžื™ื˜ ืึท ืคึผืจืึธื‘ืœืขื. ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื’ืขืืจื‘ืขื˜ ื–ื™ื™ืขืจ ืžืึธื“ื ืข: ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืื ื’ืขื”ื•ื™ื‘ืŸ ืงืฉืจ ืจื™ืกืขืฅ. ื“ืึธืก ืื™ื– ื•ื•ื™ ืขืก ื’ืขืงื•ืงื˜ ื•ื•ื™ ืื™ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’:

ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ื“ื™ ืกืงืจืขืขื ืฉืึธื˜ ื•ื•ื™ื™ื–ื˜ ืึท ื–ืขื’ื˜ืึธืึธื˜ ื’ืจืึทืคื™ืง ืจืขื›ื˜ ืฆื• ื“ืขื ืคืึทืงื˜ ืึทื– ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ MySQL ืกืขืจื•ื•ืขืจ ืคึฟืขื“ืขื ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืงืจืึทืฉื˜ ืžื™ื˜ ืึท ื˜ืขื•ืช. ืขืจืจืึธืจืก ืืจื•ื™ืก ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ:

[PDOException] SQLSTATE[HY000] [2002] Connection refused

ื ืฉื ืขืœ ื“ื•ืจื›ืงื•ืง ืคื•ืŸ ื“ื™ ืœืึธื’ืก ืื ื˜ืคืœืขืงื˜ ืึทื– ื“ื™ mysqld ื“ื™ื™ืžืึทืŸ ืงืขืŸ ื ื™ืฉื˜ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืจืขืกื•ืจืกืŸ ืคื•ืŸ ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื. ื‘ืฉืขืช ืกืึธืจื˜ื™ื ื’ ืื•ื™ืก ืขืจืจืึธืจืก, ืžื™ืจ ื“ื™ืกืงืึทื•ื•ืขืจื“ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื "ื™ืชื•ื" ืึทืคึผืึทืจืžืึธืจ ืคึผืึธืœื™ื˜ื™ืง ื˜ืขืงืขืก:

# dpkg -S /etc/apparmor.d/cache/usr.sbin.mysqld
dpkg-query: no path found matching pattern /etc/apparmor.d/cache/usr.sbin.mysqld
# dpkg -S /etc/apparmor.d/local/usr.sbin.mysqld
dpkg-query: no path found matching pattern /etc/apparmor.d/local/usr.sbin.mysqld
# dpkg -S /etc/apparmor.d/usr.sbin.mysqld
mysql-server-5.7: /etc/apparmor.d/usr.sbin.mysqld
# dpkg -l mysql-server-5.7
rc  mysql-server-5.7 5.7.23-0ubuntu0.16.04.1      amd64

ื“ื™ ื˜ืขืงืขืก ื–ืขื ืขืŸ ื‘ืืฉืืคืŸ ื•ื•ืขืŸ ืึทืคึผื’ืจื™ื™ื“ื™ื ื’ ืฆื• MySQL 5.7 ืึท ืคึผืึธืจ ืคื•ืŸ ื™ืึธืจืŸ ืฆื•ืจื™ืง ืื•ืŸ ื’ืขื”ืขืจืŸ ืฆื• ืึท ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืคึผืขืงืœ. ื“ื™ืœื™ื˜ื™ื ื’ ื“ื™ ื˜ืขืงืขืก ืื•ืŸ ืจื™ืกื˜ืึทืจื˜ื™ื ื’ ื“ื™ ืึทืคึผืึทืจืžืึธืจ ื“ื™ื ืกื˜ ืกืึทืœื•ื•ื“ ื“ื™ ืคึผืจืึธื‘ืœืขื:

systemctl stop apparmor
rm /etc/apparmor.d/cache/usr.sbin.mysqld
rm /etc/apparmor.d/local/usr.sbin.mysqld
rm /etc/apparmor.d/usr.sbin.mysqld
systemctl start apparmor

ืื™ืŸ ืžืกืงื ื

ืงื™ื™ืŸ, ืืคื™ืœื• ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืึธืคึผืขืจืึทืฆื™ืข, ืงืขื ืขืŸ ืคื™ืจืŸ ืฆื• ืื•ืžื’ืขืจื™ื›ื˜ ืคึผืจืึธื‘ืœืขืžืก. ืื•ืŸ ืืคื™ืœื• ืึท ื’ืขื–ื•ื ื˜-ื’ืขื˜ืจืึทื›ื˜ ืคึผืœืึทืŸ ืงืขืŸ ื ื™ืฉื˜ ืฉื˜ืขื ื“ื™ืง ื’ืึทืจืึทื ื˜ื™ืจืŸ ื“ื™ ื“ืขืจื•ื•ืึทืจื˜ ืจืขื–ื•ืœื˜ืึทื˜. ืื™ืฆื˜, ืงื™ื™ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืคึผืœืึทื ื– ื•ื•ืึธืก ืื•ื ื“ื–ืขืจ ืžืึทื ืฉืึทืคึฟื˜ ืื•ื™ืš ื™ื ืงืœื•ื“ื– ื“ื™ ืžืึทื ื“ืึทื˜ืึธืจื™ ืจื™ื™ื ื™ืงื•ื ื’ ืคื•ืŸ ื•ืžื ื™ื™ื˜ื™ืง ื˜ืขืงืขืก ื•ื•ืึธืก ืงืขืŸ ื”ืึธื‘ืŸ ืืจื•ื™ืก ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืœืขืฆื˜ืข ืึทืงืฉืึทื ื–.

ืื•ืŸ ืžื™ื˜ ื“ืขื ื ื™ื˜ ื–ื™ื™ืขืจ ืคืึทื›ืžืึทืŸ ื’ืจืึทืคื™ืง ืฉืืคืŸ, ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ื–ืึธื’ืŸ ืึท ืจื™ื–ื™ืง ื“ืึทื ืงืขืŸ ืคึผืขืจืงืึธื ืึท ืคึฟืึทืจ ื–ื™ื™ืขืจ ื•ื™ืกื’ืขืฆื™ื™ื›ื ื˜ ืคึผืจืึธื“ื•ืงื˜ืŸ!

ืึทืคึผื“ื™ื™ื˜ื™ื ื’ MySQL (Percona Server) ืคึฟื•ืŸ 5.7 ืฆื• 8.0

ืคึผืก

ืœื™ื™ืขื ืขืŸ ืื•ื™ืš ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’:

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’