MySQL 8.0 cannot insert NULL values to date field
It's because MySQL is actually trying to insert the literal string 'NULL' into a DATE column, not the actual value NULL.

Your choices are:


Global search for |NULL| in your file and replace with ||
Change your LOAD DATA statement to deal with it:



  LOAD DATA INFILE '/var/lib/mysql-files/item_new_1_4.dat' INTO TABLE
  Item FIELDS TERMINATED BY '|'
      (i_item_sk integer ,
                                      i_item_id,
                                      i_rec_start_date,
                                      @i_rec_end_date,
                                      i_item_desc,
                                      i_current_price,
                                      i_wholesale_cost,
                                      i_brand_id,
                                      i_brand,
                                      i_class_id,
                                      i_class,
                                      i_category_id,
                                      i_category,
                                      i_manufact_id,
                                      i_manufact,
                                      i_size,
                                      i_formulation,
                                      i_color,
                                      i_units,
                                      i_container,
                                      i_manager_id,
                                      i_product_name )  SET
      i_rec_end_date = nullif(@i_rec_end_date,'NULL');