Navicat SQLファイルエラーの実行

4037 ワード

文書ディレクトリ
  • エラー1031
  • 解決方法
  • エラー1265
  • 理由
  • 解決方法
  • エラー報告2013
  • 理由
  • 解決策
  • 参考
  • 説明:
    MySQL 5.7.26
    Navicat 12.1.20
    エラー1031
    NavicatはSQLファイルを実行し、エラーを報告します1031
    [ERR] 1031 - Table storage engine for '  ' doesn't have this option
    [ERR] CREATE TABLE eload_order_to_erp_records (
      id int(11) NOT NULL AUTO_INCREMENT,
      order_id int(11) DEFAULT '0',
      addtime int(11) DEFAULT '0',
      PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=11429 DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED
    

    解決策
    削除ROW_FORMAT=FIXEDLinuxシステムでは、sedを使用してテキストを置換できます.
    [root@sy-pc ~]$ cat old.sql | sed 's/ROW_FORMAT=FIXED//g' > new.sql
    

    エラー1265
    [SQL] Query SQL     start
    [ERR] 1265 - Data truncated for column 'from' at row 1
    [ERR] INSERT INTO `feedback` VALUES ('14', '1', '[email protected]', 'God

    Df
    Lloyd
    Kl
    Lloyd
    Lloyd

    Loll
    Loll
    LoJack
    Junk
    Kim
    ]jkj
    Jkj
    Jkj
    Kill
    Like
    Khalil
    Loll
    \\lll
    I\'ll', '', '1465951204') [SQL] Finished unsuccessfully

    テーブル構造の表示
    DROP TABLE IF EXISTS `feedback`;
    CREATE TABLE feedback (
      f_id int(11) NOT NULL AUTO_INCREMENT COMMENT '  ',
      `type` tinyint(1) DEFAULT NULL COMMENT '  ',
      email varchar(50) DEFAULT NULL COMMENT '  ',
      content text COMMENT '  ',
      `from` enum('android','ios') DEFAULT NULL COMMENT '  ',
      created_time int(10) DEFAULT NULL COMMENT '    ',
      PRIMARY KEY (f_id)
    ) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8 COMMENT='APP  ';
    

    の原因となる
    元のテーブルのfromフィールドのタイプは列挙であり、android iosの2つのオプションしかありません.SQLファイルに書き込まれたデータは空の文字列''で、タイプが一致しないことによるエラーです.
    解決策
    このテーブルに対するInsert文が多すぎるので、テーブルを作成する文を変更しました.
      `from` enum('android','ios') DEFAULT NULL COMMENT '  ', 
    

    置換
      `from` enum('android','ios','') DEFAULT NULL COMMENT '  ',
    

    Linuxシステムではsedコマンドを使用します.テスト
    $ cat old.sql | sed  "s/\`from\` enum('android','ios') DEFAULT NULL COMMENT '  '/\`from\` enum('android','ios','') DEFAULT NULL COMMENT '  '/" | grep "DEFAULT NULL COMMENT '  '"
      `from` enum('android','ios','') DEFAULT NULL COMMENT '  ',
    

    実行
    $ cat old.sql | sed  "s/\`from\` enum('android','ios') DEFAULT NULL COMMENT '  '/\`from\` enum('android','ios','') DEFAULT NULL COMMENT '  '/" > new.sql
    

    エラーメッセージ2013
    [SQL] Query yzc_test_2 start
    [ERR] 2013 - Lost connection to MySQL server during query
    

    の原因となる
    解決策
    変数net_read_timeoutとnet_write_timeoutは、それぞれ30秒と60秒に設定されています.いいよcnfプロファイルでは、必要に応じて設定して変更します.そうだcnfがこれらの変更を行った後、MySQLを再起動する必要があります!!!
    net_read_timeout = 120
    net_write_timeout = 900
    

    変更するとmy.cnf後、再起動したくない場合は、以下のSQLを実行します.
    set global net_read_timeout = 120;
    set global net_write_timeout = 900;
    

    リファレンス
    [1] Mysql Row_Formatパラメータ説明[DB|OL]https://www.cnblogs.com/bing-yu12/p/7735652.html[2]awk&sed入門(プログラマブルフィルタawkとストリームエディタsed)[DB|OL]https://blog.csdn.net/zhou16333/article/details/84234978#_226 [3] [DB|OL] https://blog.csdn.net/weixin_39561473/article/details/90213914