91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解ERROR中的Unknown storage engine 'MyISAM'

發布時間:2021-09-13 16:35:57 來源:億速云 閱讀:112 作者:柒染 欄目:MySQL數據庫

如何理解ERROR中的Unknown storage engine 'MyISAM',相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、錯誤演示

如下:

root@localhost:test:09:49:03>create table ttt(id int) engine=myisam ;
ERROR 1286 (42000): Unknown storage engine 'MyISAM'

二、相關參數

  • enforce_storage_engine:建表進行引擎檢查,是否滿足設置的引擎值。

  • sql_mode(NO_ENGINE_SUBSTITUTION):根據前面的檢查值進行綜合判斷,如果設置了NO_ENGINE_SUBSTITUTION則進行報錯,如果沒有設置則進行,且將新建表的引擎轉為enforce_storage_engine設置的引擎。

我們環境中設置enforce_storage_engine為Innodb,sql_mode中設置了NO_ENGINE_SUBSTITUTION。

三、相關函數

  • check_engine

  • ->ha_enforce_handlerton

部分邏輯如下:

  1. 根據ha_enforce_handlerton函數進行引擎檢查,主要檢查enforce_storage_engine參數設置的值是否為已知的引擎。否則報錯 Unknown storage engine ,返回值為enforce_storage_engine指定的引擎(比如Innodb)。

  2. 根據上面的返回值進行判斷

  • 如果建表指定的引擎(比如這里的MyISAM)和enforce_storage_engine設置的引擎(比如這里的Innodb)不同,同時sql_mode設置了NO_ENGINE_SUBSTITUTION。則報錯ERROR 1286 (42000): Unknown storage engine ‘MyISAM’,這也是當前的報錯。

  • 如果沒有設置sql_mode NO_ENGINE_SUBSTITUTION,那么使用enforce_storage_engine指定的值代替建表語句的指定的引擎值(比如用Innodb代替MyISAM),同時報出警告,ER_WARN_USING_OTHER_HANDLER,輸出為新的引擎值。

四、修改

注銷掉enforce_storage_engine參數即可。

五、棧

#0  check_engine (thd=0x7fffe400a8a0, db_name=0x7fffe40108f0 "test", table_name=0x7fffe4010328 "ttt", create_info=0x7fffe8ecd890, alter_info=0x7fffe8ecd300)
    at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_table.cc:11318
#1  0x000000000155d81e in create_table_impl (thd=0x7fffe400a8a0, db=0x7fffe40108f0 "test", table_name=0x7fffe4010328 "ttt", error_table_name=0x7fffe4010328 "ttt", 
    path=0x7fffe8eccf60 "./test/ttt", create_info=0x7fffe8ecd890, alter_info=0x7fffe8ecd300, internal_tmp_table=false, select_field_count=0, no_ha_table=false, is_trans=0x7fffe8ecd1ee, 
    key_info=0x7fffe8ecd170, key_count=0x7fffe8ecd16c) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_table.cc:5138
#2  0x000000000155f352 in mysql_create_table_no_lock (thd=0x7fffe400a8a0, db=0x7fffe40108f0 "test", table_name=0x7fffe4010328 "ttt", create_info=0x7fffe8ecd890, alter_info=0x7fffe8ecd300, 
    select_field_count=0, is_trans=0x7fffe8ecd1ee) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_table.cc:5753
#3  0x000000000155f47a in mysql_create_table (thd=0x7fffe400a8a0, create_table=0x7fffe4010368, create_info=0x7fffe8ecd890, alter_info=0x7fffe8ecd300)
    at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_table.cc:5801
#4  0x00000000014cc36d in mysql_execute_command (thd=0x7fffe400a8a0, first_level=true) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_parse.cc:3510
#5  0x00000000014d2e1b in mysql_parse (thd=0x7fffe400a8a0, parser_state=0x7fffe8ece4a0, update_userstat=false) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_parse.cc:5927
#6  0x00000000014c7a55 in dispatch_command (thd=0x7fffe400a8a0, com_data=0x7fffe8ecec90, command=COM_QUERY) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_parse.cc:1539
#7  0x00000000014c688a in do_command (thd=0x7fffe400a8a0) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/sql_parse.cc:1060
#8  0x00000000015fab28 in handle_connection (arg=0x3c4f150) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/conn_handler/connection_handler_per_thread.cc:325
#9  0x00000000018cad34 in pfs_spawn_thread (arg=0x3c568b0) at /cdh/mysqldebug/percona-server-5.7.29-32/storage/perfschema/pfs.cc:2198
#10 0x00007ffff7bc6e65 in start_thread () from /lib64/libpthread.so.0
#11 0x00007ffff5fa088d in clone () from /lib64/libc.so.6

看完上述內容,你們掌握如何理解ERROR中的Unknown storage engine 'MyISAM'的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

准格尔旗| 洛川县| 大关县| 镇宁| 华阴市| 志丹县| 新邵县| 乐平市| 通州市| 元江| 上虞市| 田东县| 清河县| 墨竹工卡县| 江门市| 元朗区| 崇义县| 平度市| 灵台县| 秭归县| 大渡口区| 九龙城区| 西青区| 汾西县| 泊头市| 将乐县| 合肥市| 克山县| 页游| 景泰县| 呈贡县| 马山县| 扬中市| 襄垣县| 威信县| 东阳市| 澄城县| 商都县| 自治县| 靖州| 宿松县|