Post view

insoler社群網站正式回到最好用的版本MySQL 5.6.41,並為了搭配表情文字放大網站字體🤗

事實上在不久之前,經過測試之後,我才終於決定將網站的資料庫伺服器從MySQL 5.6.41直接跳過MySQL 5.7(請注意:沒有MySQL 5.8、MySQL 6.0、MySQL 7.0這些版本)升級到目前的最新版本MySQL 8.0.16。

insoler社群網站正式升級到MySQL 8.0.16,資料搜尋速度更快將近2倍?1.5倍?

雖然MySQL 8.0.16可以在先前的macOS Mojave 10.14.4正常安裝使用,但是穩定性並不十分優異,大約uptime連續運作不到一個星期,就會開始出問題!當Apple發表macOS Mojave 10.14.5以後,情況就更糟,幾乎連可以維持「1日穩定運作」都有問題!

甚至會在mysqld.local.err錯誤記錄檔案裡面看到這樣的錯誤訊息:

2019-05-24T23:15:18.036997Z 984 [ERROR] [MY-013183] [InnoDB] Assertion failure: dict0dict.cc:1230:table2 == NULL thread 123145457614848
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.
23:15:18 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7f9e6c3d6a00
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 = 70000941beb0 thread_stack 0x46000
0   mysqld                              0x00000001104c1fdc my_print_stacktrace(unsigned char*, unsigned long) + 60
1   mysqld                              0x000000010f8c9bbc handle_fatal_signal + 428
2   libsystem_platform.dylib            0x00007fff6b836b5d _sigtramp + 29
3   ???                                 0x000000011f1dce68 0x0 + 4817014376
4   libsystem_c.dylib                   0x00007fff6b6f06a6 abort + 127
5   mysqld                              0x000000011087f12e ut_dbg_assertion_failed(char const*, char const*, unsigned long) + 334
6   mysqld                              0x000000011061643a dict_table_add_to_cache(dict_table_t*, unsigned long, mem_block_info_t*) + 490
7   mysqld                              0x000000011063b37e dict_table_t* dd_open_table_one(dd::cache::Dictionary_client*, TABLE const*, char const*, dd::Table const*, THD*, std::__1::deque >&) + 7262
8   mysqld                              0x000000011062c138 dict_table_t* dd_open_table(dd::cache::Dictionary_client*, TABLE const*, char const*, dd::Table const*, THD*) + 72
9   mysqld                              0x00000001106ded58 ha_innobase::open(char const*, int, unsigned int, dd::Table const*) + 2776
10  mysqld                              0x000000010f47c9c7 handler::ha_open(TABLE*, char const*, int, int, dd::Table const*) + 87
11  mysqld                              0x000000010f863cff open_table_from_share(THD*, TABLE_SHARE*, char const*, unsigned int, unsigned int, unsigned int, TABLE*, bool, dd::Table const*) + 3583
12  mysqld                              0x000000010f6db343 open_table(THD*, TABLE_LIST*, Open_table_context*) + 6291
13  mysqld                              0x000000010f6dfe7a open_tables(THD*, TABLE_LIST**, unsigned int*, unsigned int, Prelocking_strategy*) + 2106
14  mysqld                              0x000000010f6e274d open_tables_for_query(THD*, TABLE_LIST*, unsigned int) + 109
15  mysqld                              0x000000010f7b8471 Sql_cmd_dml::prepare(THD*) + 209
16  mysqld                              0x000000010f7b8cae Sql_cmd_dml::execute(THD*) + 350
17  mysqld                              0x000000010f76def0 mysql_execute_command(THD*, bool) + 4368
18  mysqld                              0x000000010f76b773 mysql_parse(THD*, Parser_state*) + 995
19  mysqld                              0x000000010f7692f9 dispatch_command(THD*, COM_DATA const*, enum_server_command) + 4889
20  mysqld                              0x000000010f76b033 do_command(THD*) + 467
21  mysqld                              0x000000010f8afbe4 handle_connection(void*) + 372
22  mysqld                              0x00000001108e364c pfs_spawn_thread(void*) + 316
23  libsystem_pthread.dylib             0x00007fff6b83f2eb _pthread_body + 126
24  libsystem_pthread.dylib             0x00007fff6b842249 _pthread_start + 66
25  libsystem_pthread.dylib             0x00007fff6b83e40d thread_start + 13

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f9e60aed628): SELECT COUNT(*) FROM `insoler`.`RayBoardBoards`
Connection ID (thread ID): 984
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.

這是在5月24日晚上23:20:29產生的類似錯誤訊息。在錯誤訊息前面還說Submit a detailed bug report to bugs.mysql.com要我回報Bug問題!

2019-05-24T23:20:29.073667Z 43 [ERROR] [MY-013183] [InnoDB] Assertion failure: dict0dict.cc:1230:table2 == NULL thread 123145404219392
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.
23:20:29 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7fc26d474400
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 = 70000612feb0 thread_stack 0x46000
0   mysqld                              0x00000001075d9fdc my_print_stacktrace(unsigned char*, unsigned long) + 60
1   mysqld                              0x00000001069e1bbc handle_fatal_signal + 428
2   libsystem_platform.dylib            0x00007fff6b836b5d _sigtramp + 29
3   ???                                 0x0000000115018e68 0x0 + 4647390824
4   libsystem_c.dylib                   0x00007fff6b6f06a6 abort + 127
5   mysqld                              0x000000010799712e ut_dbg_assertion_failed(char const*, char const*, unsigned long) + 334
6   mysqld                              0x000000010772e43a dict_table_add_to_cache(dict_table_t*, unsigned long, mem_block_info_t*) + 490
7   mysqld                              0x000000010775337e dict_table_t* dd_open_table_one(dd::cache::Dictionary_client*, TABLE const*, char const*, dd::Table const*, THD*, std::__1::deque >&) + 7262
8   mysqld                              0x0000000107744138 dict_table_t* dd_open_table(dd::cache::Dictionary_client*, TABLE const*, char const*, dd::Table const*, THD*) + 72
9   mysqld                              0x00000001077f6d58 ha_innobase::open(char const*, int, unsigned int, dd::Table const*) + 2776
10  mysqld                              0x00000001065949c7 handler::ha_open(TABLE*, char const*, int, int, dd::Table const*) + 87
11  mysqld                              0x000000010697bcff open_table_from_share(THD*, TABLE_SHARE*, char const*, unsigned int, unsigned int, unsigned int, TABLE*, bool, dd::Table const*) + 3583
12  mysqld                              0x00000001067f3343 open_table(THD*, TABLE_LIST*, Open_table_context*) + 6291
13  mysqld                              0x00000001067f7e7a open_tables(THD*, TABLE_LIST**, unsigned int*, unsigned int, Prelocking_strategy*) + 2106
14  mysqld                              0x00000001067fa74d open_tables_for_query(THD*, TABLE_LIST*, unsigned int) + 109
15  mysqld                              0x00000001068d0471 Sql_cmd_dml::prepare(THD*) + 209
16  mysqld                              0x00000001068d0cae Sql_cmd_dml::execute(THD*) + 350
17  mysqld                              0x0000000106885ef0 mysql_execute_command(THD*, bool) + 4368
18  mysqld                              0x0000000106883773 mysql_parse(THD*, Parser_state*) + 995
19  mysqld                              0x00000001068812f9 dispatch_command(THD*, COM_DATA const*, enum_server_command) + 4889
20  mysqld                              0x0000000106883033 do_command(THD*) + 467
21  mysqld                              0x00000001069c7be4 handle_connection(void*) + 372
22  mysqld                              0x00000001079fb64c pfs_spawn_thread(void*) + 316
23  libsystem_pthread.dylib             0x00007fff6b83f2eb _pthread_body + 126
24  libsystem_pthread.dylib             0x00007fff6b842249 _pthread_start + 66
25  libsystem_pthread.dylib             0x00007fff6b83e40d thread_start + 13

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7fc2620d5028): SELECT COUNT(*) FROM `insoler56`.`Profiles`
Connection ID (thread ID): 43
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.

這是在5月27日晚上18:03:47再次產生的類似錯誤訊息。在這裡面你可以看到有「about forcing recovery」強制復原資料的錯誤訊息,如果資料庫一但嚴重毀損,導致無法復原的話,就會損失更多資料!只能從系統「定時自動備份」的資料庫檔案來還原所有的資料。這樣的話,雖然不至於全毀,但也會損失從系統「定時自動備份」之後,沒有備份的全部資料!

2019-05-27T18:03:47.110023Z 4235 [ERROR] [MY-013183] [InnoDB] Assertion failure: dict0dict.cc:1230:table2 == NULL thread 123145523851264
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.
18:03:47 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7f8b7c462400
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 = 70000d346eb0 thread_stack 0x46000
0   mysqld                              0x00000001075b6fdc my_print_stacktrace(unsigned char*, unsigned long) + 60
1   mysqld                              0x00000001069bebbc handle_fatal_signal + 428
2   libsystem_platform.dylib            0x00007fff765ccb5d _sigtramp + 29
3   ???                                 0x000000010c2d3e68 0x0 + 4499258984
4   libsystem_c.dylib                   0x00007fff764866a6 abort + 127
5   mysqld                              0x000000010797412e ut_dbg_assertion_failed(char const*, char const*, unsigned long) + 334
6   mysqld                              0x000000010770b43a dict_table_add_to_cache(dict_table_t*, unsigned long, mem_block_info_t*) + 490
7   mysqld                              0x000000010773037e dict_table_t* dd_open_table_one(dd::cache::Dictionary_client*, TABLE const*, char const*, dd::Table const*, THD*, std::__1::deque >&) + 7262
8   mysqld                              0x0000000107721138 dict_table_t* dd_open_table(dd::cache::Dictionary_client*, TABLE const*, char const*, dd::Table const*, THD*) + 72
9   mysqld                              0x00000001077d3d58 ha_innobase::open(char const*, int, unsigned int, dd::Table const*) + 2776
10  mysqld                              0x00000001065719c7 handler::ha_open(TABLE*, char const*, int, int, dd::Table const*) + 87
11  mysqld                              0x0000000106958cff open_table_from_share(THD*, TABLE_SHARE*, char const*, unsigned int, unsigned int, unsigned int, TABLE*, bool, dd::Table const*) + 3583
12  mysqld                              0x00000001067d0343 open_table(THD*, TABLE_LIST*, Open_table_context*) + 6291
13  mysqld                              0x00000001067d4e7a open_tables(THD*, TABLE_LIST**, unsigned int*, unsigned int, Prelocking_strategy*) + 2106
14  mysqld                              0x00000001067d774d open_tables_for_query(THD*, TABLE_LIST*, unsigned int) + 109
15  mysqld                              0x00000001068ad471 Sql_cmd_dml::prepare(THD*) + 209
16  mysqld                              0x00000001068adcae Sql_cmd_dml::execute(THD*) + 350
17  mysqld                              0x0000000106862ef0 mysql_execute_command(THD*, bool) + 4368
18  mysqld                              0x0000000106860773 mysql_parse(THD*, Parser_state*) + 995
19  mysqld                              0x000000010685e2f9 dispatch_command(THD*, COM_DATA const*, enum_server_command) + 4889
20  mysqld                              0x0000000106860033 do_command(THD*) + 467
21  mysqld                              0x00000001069a4be4 handle_connection(void*) + 372
22  mysqld                              0x00000001079d864c pfs_spawn_thread(void*) + 316
23  libsystem_pthread.dylib             0x00007fff765d52eb _pthread_body + 126
24  libsystem_pthread.dylib             0x00007fff765d8249 _pthread_start + 66
25  libsystem_pthread.dylib             0x00007fff765d440d thread_start + 13

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f8b6c8c4028): SELECT COUNT(*) FROM `insoler56`.`RayBoardBoards`
Connection ID (thread ID): 4235
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.

底下的這個問題雖然與MySQL 8.0.16版本資料毀損、自動復原並沒有直接的關係,但我認為也有間接的關係!你可以看到照片只剩下副檔名,並沒有主檔名。

而且點選任何一個照片檔案,都只會看到無法正常顯示的灰色縮圖。而且照片的發表時間竟然全部都是1970年1月1日!

我不是MySQL的研發、除錯人員,我更不願意當甲骨文MySQL的白老鼠!因此我絕對不會回報這個錯誤!而是直接決定移除MySQL 8.0.16,回到升級以前的版本MySQL 5.6.41 (2018-07-27, General Availability)。

你可以看到畫面上,macOS系統的連續開機時間是21日20時。在21日以前,其實是升級系統版本到macOS Mojave 10.14.5,所以需要重新開機。

在升級到macOS Mojave 10.14.5之後的幾天後就開始察覺MySQL 8.0.16似乎變得非常的不穩定!只能猜想MySQL 8.0.16與macOS Mojave 10.14.5系統的相容性不良!

也許其他人會選擇那就不要升級到macOS Mojave 10.14.5,把整個系統還原到舊的macOS Mojave 10.14.4不要升級,不就可以解決這個問題?

但其實MySQL 8.0.16雖然在macOS Mojave 10.14.4不會產生資料庫毀損,需要強制復原的重大問題,但也不是極為穩定。因此我寧可繼續使用目前的最新版本macOS Mojave 10.14.5,而選擇移除MySQL 8.0.16重新安裝舊的MySQL 5.6.41。

雖然MySQL 5.6.41目前的uptime連續運作時間只有2日21時,但是看起來似乎相當穩定,應該可以比MySQL 8.0.16更穩定,而且更高速的運作資料庫系統。

為了搭配表情文字放大網站字體

另外一件事是為了搭配Unicdoe最新的EMOJI表情文字,只好放大整個網站的部落格、討論區的字體大小。這樣比較可以看到EMOJI不同的表情。😀

蘇言霖 2019/06/09 0 760
Comments
Order by: 
Per page:
 
  • There are no comments yet
Rate
0 votes
Post info
蘇言霖
「超級懶貓級」社群網站站長
2019/06/09 (1775 days ago)
Actions