web-dev-qa-db-ja.com

19.04から19.10への問題のアップグレード

ZfsにUbuntu 19.04ルートがあります。 19.10にアップグレードしようとすると、 here で説明されている問題が発生します。

here による解決策は、

initrd_device=$(${grub_probe} --target=device "${boot_dir}")

/etc/grub.d/10_linux_zfsの415行目で

initrd_device=$(${grub_probe} --target=device "${boot_dir}" | head -1)

何らかの理由で、/ etc/grub.d /ディレクトリに10_linux_zfsという名前のファイルがなく、10_linuxという名前のファイルが1つだけあります。

変更された10_linux_zfsファイルが提供されています ここ

10_linuxファイルを変更された10_linux_zfsファイルで置き換えるのが正しい解決策かどうか知りたいのですが。

これで何か助けていただければ幸いです。

編集:

この質問に対する応答が得られなかった後、私は自分の10_linuxファイルを変更された10_linux_zfsサンプルファイルで置き換え、アップグレードを続行することになりました。 mysql以外はすべてうまくいったようです。

    mike@ubuntuzfs:~$ systemctl status mysql.service
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2020-05-01 20:56:41 NZST; 12s ago
  Process: 2457 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
  Process: 2468 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
 Main PID: 2468 (code=exited, status=1/FAILURE)
   Status: "Server startup in progress"
    Error: 13 (Permission denied)

May 01 20:56:41 ubuntuzfs systemd[1]: mysql.service: Service RestartSec=100ms expired, scheduling restart.
May 01 20:56:41 ubuntuzfs systemd[1]: mysql.service: Scheduled restart job, restart counter is at 5.
May 01 20:56:41 ubuntuzfs systemd[1]: Stopped MySQL Community Server.
May 01 20:56:41 ubuntuzfs systemd[1]: mysql.service: Start request repeated too quickly.
May 01 20:56:41 ubuntuzfs systemd[1]: mysql.service: Failed with result 'exit-code'.
May 01 20:56:41 ubuntuzfs systemd[1]: Failed to start MySQL Community Server.

Mysqlを再インストールすることもできますが、データベースを失う可能性があるため、可能であれば実行しません。誰かがこれを解決する方法について何か提案があればそれは素晴らしいでしょう。

/var/log/mysql/error.logからの出力の一部を次に示します

2020-05-01T08:33:28.900379Z 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-05-01T08:33:28.901172Z 0 [System] [MY-010116] [Server] /usr/sbin   /mysqld (mysqld 8.0.19-0ubuntu0.19.10.3) starting as process 7461
2020-05-01T08:33:35.575977Z 4 [System] [MY-013381] [Server] Server     upgrade from '80018' to '80019' started.
2020-05-01T08:34:37.114642Z 4 [ERROR] [MY-012097] [InnoDB] Table flags     are 0x4021 in the data dictionary but the flags in file    ./sys/sys_config.ibd  are 0x21!
2020-05-01T08:34:37.115249Z 4 [ERROR] [MY-013183] [InnoDB] Assertion  failure: fil0fil.cc:2465 thread 140266608400128
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb- recovery.html
InnoDB: about forcing recovery.
08:34:37 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by     malfunctioning hardware.
Thread pointer: 0x5602c47e22e0
Attempting backtrace. You can use the following information to find  out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f925d5e0ce0 thread_stack 0x30000
/usr/sbin/mysqld(my_print_stacktrace(unsigned char const*, unsigned     long)+0x41) [0x5602c236cb11]
/usr/sbin/mysqld(handle_fatal_signal+0x31b) [0x5602c1269bcb]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x15540) [0x7f927032e540]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb) [0x7f926f7ce3eb]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b) [0x7f926f7ad899]
/usr/sbin/mysqld(+0xdc766d) [0x5602c0fbe66d]
/usr/sbin/mysqld(Fil_shard::get_file_size(fil_node_t*, bool)+0xb1d)   [0x5602c278cecd]
/usr/sbin/mysqld(Fil_shard::open_file(fil_node_t*, bool)+0x4b3)  [0x5602c279d893]
/usr/sbin/mysqld(Fil_shard::prepare_file_for_io(fil_node_t*,  bool)+0x73) [0x5602c279daa3]
/usr/sbin/mysqld(Fil_shard::space_load(unsigned int)+0x129)     [0x5602c27ad829]
/usr/sbin/mysqld(fil_space_get_flags(unsigned int)+0xb8)  [0x5602c27adde8]
/usr/sbin/mysqld(dict_sdi_create_idx_in_mem(unsigned int, bool,    unsigned int, bool)+0x6f5) [0x5602c2725975]
/usr/sbin/mysqld(dd_table_open_on_id(unsigned long, THD*,   MDL_ticket**, bool, bool)+0x86f) [0x5602c27581ef]
/usr/sbin/mysqld(+0x2469f46) [0x5602c2660f46]
/usr/sbin/mysqld(ib_sdi_delete(unsigned int, ib_sdi_key const*,    trx_t*)+0x49) [0x5602c26651e9]
/usr/sbin/mysqld(dict_sdi_delete(dd::Tablespace const&, dd::Table    const*, sdi_key_t const*)+0x14a) [0x5602c276f6ca]
/usr/sbin/mysqld(dd::sdi_tablespace::drop_tbl_sdi(THD*, handlerton    const&, dd::Table const&, dd::Schema const&)+0x89) [0x5602c2344369]
/usr/sbin/mysqld(dd::sdi::drop(THD*, dd::Table const*)+0xb8)  [0x5602c2339428]
/usr/sbin/mysqld(bool dd::cache::Storage_adapter::drop<dd::Table> (THD*, dd::Table const*)+0x6a) [0x5602c217252a]
/usr/sbin/mysqld(bool dd::cache::Dictionary_client::drop<dd::Table>  (dd::Table const*)+0x22) [0x5602c211d762]
/usr/sbin/mysqld(+0xfc5d4a) [0x5602c11bcd4a]
/usr/sbin/mysqld(mysql_alter_table(THD*, char const*, char const*,   HA_CREATE_INFO*, TABLE_LIST*, Alter_info*)+0x8dc3) [0x5602c11d3ec3]
/usr/sbin/mysqld(Sql_cmd_alter_table::execute(THD*)+0x443)     [0x5602c1580443]
/usr/sbin/mysqld(mysql_execute_command(THD*, bool)+0x94c)   [0x5602c11370cc]
/usr/sbin/mysqld(+0xf6c167) [0x5602c1163167]
/usr/sbin     /mysqld(Prepared_statement::execute_server_runnable(Server_runnable*)+0x23   5) [0x5602c1164445]
/usr/sbin/mysqld(Ed_connection::execute_direct(Server_runnable*)+0x9e)   [0x5602c1165c7e]
/usr/sbin/mysqld(Ed_connection::execute_direct(MYSQL_Lex_STRING)+0x3f)  [0x5602c1165dff]
/usr/sbin/mysqld(+0x2119e2f) [0x5602c2310e2f]
/usr/sbin/mysqld(dd::upgrade::upgrade_system_schemas(THD*)+0x1318)   [0x5602c2314ab8]
/usr/sbin/mysqld(+0x1130998) [0x5602c1327998]
/usr/sbin/mysqld(+0x26d773a) [0x5602c28ce73a]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x9669) [0x7f9270322669]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7f926f8aa323]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f920439ae60): is an invalid pointer
Connection ID (thread ID): 4
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html     contains
information that should help you find out what is causing the crash.
3
Jedi

成功。

root@ubuntuzfs:/var/lib# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-05-01 22:06:36 NZST; 22s ago
  Process: 11551 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 11572 (mysqld)
   Status: "Server is operational"
    Tasks: 40 (limit: 4915)
   Memory: 460.1M
   CGroup: /system.slice/mysql.service
           └─11572 /usr/sbin/mysqld

May 01 22:06:23 ubuntuzfs systemd[1]: Starting MySQL Community Server...
May 01 22:06:36 ubuntuzfs systemd[1]: Started MySQL Community Server.

/ var/lib/mysqlの権限が間違っていました。

以下は私をそれに入れました。

root@ubuntuzfs:/var/run# Sudo /usr/sbin/mysqld
2020-05-01T09:54:16.973242Z 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-05-01T09:54:16.974110Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19-0ubuntu0.19.10.3) starting as process 31887
2020-05-01T09:54:16.976401Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to '/var/lib/mysql/' (OS errno: 13 - Permission denied)
2020-05-01T09:54:16.976476Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-05-01T09:54:16.976622Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19-0ubuntu0.19.10.3)  (Ubuntu).
1
Jedi