#mysql #migration #mysqlupgrade
#mysql #миграция #mysqlupgrade
Вопрос:
Миграция с нашего старого сервера MySQL на наш новый происходит неправильно.
Цитата из руководства по обновлению MySQL:
Как только серия выпусков достигает статуса общедоступности (GA), поддерживается обновление в рамках серии выпусков (с одной версии GA на другую версию GA). Например, поддерживается обновление с MySQL 8.0.x до 8.0.y. (Обновление, включающее выпуски со статусом разработки, отличные от GA, не поддерживается.) Также поддерживается пропуск выпуска. Например, поддерживается обновление с MySQL 8.0.x до 8.0.z. MySQL 8.0.11 является первым выпуском статуса GA в серии выпусков MySQL 8.0.
Старый сервер (версия 8.0.11):
mysqldump -u root -p --all-databases --verbose -r 2020_09_16_alldb.sql
Новый сервер (версия 8.0.21, свежая установка):
mysql -u root -p < 2020_09_16_alldb.sql
Первый вход в систему прошел успешно. Затем я попытался перезапустить службу, но она больше не появляется.
2020-09-16T20:09:36.718949Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.21) starting as process 1819
2020-09-16T20:09:36.725816Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-09-16T20:09:38.178086Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-09-16T20:09:38.306305Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2020-09-16T20:09:38.408186Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-09-16T20:09:38.408316Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2020-09-16T20:09:38.415771Z 0 [Warning] [MY-013143] [Server] Column count of mysql.user is wrong. Expected 51, found 49. The table is probably corrupted
2020-09-16T20:09:38.415930Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.db. The table is probably corrupted!
2020-09-16T20:09:38.416058Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.tables_priv. The table is probably corrupted!
2020-09-16T20:09:38.416176Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.tables_priv. The table is probably corrupted!
2020-09-16T20:09:38.416298Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.columns_priv. The table is probably corrupted!
2020-09-16T20:09:38.416422Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.procs_priv. The table is probably corrupted!
2020-09-16T20:09:38.416544Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.procs_priv. The table is probably corrupted!
2020-09-16T20:09:38.416670Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2020-09-16T20:09:38.416797Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2020-09-16T20:09:38.416921Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2020-09-16T20:09:38.417082Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.role_edges. The table is probably corrupted!
2020-09-16T20:09:38.417212Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.role_edges. The table is probably corrupted!
2020-09-16T20:09:38.417344Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.default_roles. The table is probably corrupted!
2020-09-16T20:09:38.417475Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.default_roles. The table is probably corrupted!
2020-09-16T20:09:38.417617Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.global_grants. The table is probably corrupted!
2020-09-16T20:09:38.417756Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.password_history. The table is probably corrupted!
2020-09-16T20:09:38.418298Z 0 [ERROR] [MY-013139] [Server] Cannot load from mysql.global_grants. The table is probably corrupted!
2020-09-16T20:09:38.418502Z 0 [ERROR] [MY-010952] [Server] The privilege system failed to initialize correctly. For complete instructions on how to upgrade MySQL to a new version please see the 'Upgrading MySQL' section from the MySQL manual.
2020-09-16T20:09:38.418833Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-09-16T20:09:39.884396Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.21) MySQL Community Server - GPL
Попробовал это, как рекомендовали другие:
mysql_upgrade -u root -p
Результат:
Клиент mysql_upgrade теперь устарел. Действия, выполняемые клиентом обновления, теперь выполняются сервером.
Пожалуйста, дайте совет.
Комментарии:
1. запустите mysqlcheck и посмотрите, что он может сделать, после этого вы можете попробовать восстановление innodb
2. Как уже упоминалось, служба не запускается, поэтому mysqlcheck не может быть выполнена: mysqlcheck: ошибка: 2002: Не удается подключиться к локальному серверу MySQL через сокет ‘/ var/ run/mysqld/mysqld.sock’ (2) при попытке подключения.
3. Обновление: используется skip-grant-tables, он запустился. mysqlcheck сообщает, что база данных ‘mysql’ в порядке (все таблицы), попробовал с параметром —repair, говорит: «Механизм хранения для таблицы не поддерживает восстановление». Удалены таблицы пропусков и перезапущены, проблема все еще существует.
4. Удалите mysql 8,0,21 и установите его новым, подключитесь к нему с помощью workbench и используйте инструмент миграции для извлечения данных непосредственно из 8.0.11
5. Пытался удалить,
apt-get purge mysql-server
,apt-get autoremove
,apt-get install mysql-server
, но оказалось, что это не все очистило (мастер установки не появился, служба не запустится снова, журналы ошибок показывают, что те же таблицы повреждены). Затем я снова запустил все команды удаления иrm -rf /etc/mysql /var/lib/mysql /var/log/mysql
, затем переустановил снова, и в результате получилось следующее: при обработке были обнаружены ошибки: mysql-common mysql-community-server mysql-server mysql-community-client mysql-client E: подпроцесс /usr/bin / dpkg вернул код ошибки (1)