Known Issues in MySQL This problem may also affect database restoration using  mysqlbinlog|mysql . The easiest way to avoid this problem is to add an  ORDER BY  clause to the aforementioned nondeterministic queries to ensure that the rows are always stored or modified in the same order. Using row-based or mixed logging format also avoids the problem. •The source and replica run different MySQL versions, and the optimizer code differs between these versions. •Log file names are based on the server host name if you do not specify a file name with the startup option. To retain the same log file names if you change your host name to something else, you must explicitly use options such as  --log-bin= old_host_name -bin . See Section 5.1.7, “Server Command Options” . Alternatively, rename the old files to reflect your host name change. If these are binary logs, you must edit the binary log index file and fix the binary log file names there as well. (The same is true for the relay logs on a replica.) • mysqlbinlog  does not delete temporary files left after a  LOAD DATA  statement. See Section 4.6.9, “mysqlbinlog — Utility for Processing Binary Log Files” . • RENAME  does not work with  TEMPORARY  tables or tables used in a  MERGE  table. •When using  SET CHARACTER SET , you cannot use translated characters in database, table, and column names. •Prior to MySQL 8.0.17, you cannot use  _  or  %  with  ESCAPE  in  LIKE ... ESCAPE . •The server uses only the first  max_sort_length  bytes when comparing data values. This means that values cannot reliably be used in  GROUP BY ,  ORDER BY , or  DISTINCT  if they differ only after the first  max_sort_length  bytes. To work around this, increase the variable value. The default value of max_sort_length  is 1024 and can be changed at server startup time or at runtime. •Numeric calculations are done with  BIGINT  or  DOUBLE  (both are normally 64 bits long). Which precision you get depends on the function. The general rule is that bit functions are performed with  BIGINT precision,  IF()  and  ELT()  with  BIGINT  or  DOUBLE  precision, and the rest with  DOUBLE  precision. You should try to avoid using unsigned long long values if they resolve to be larger than 63 bits (9223372036854775807) for anything other than bit fields. •You can have up to 255  ENUM  and  SET  columns in one table. •In  MIN() ,  MAX() , and other aggregate functions, MySQL currently compares  ENUM  and  SET  columns by their string value rather than by the string’s relative position in the set. •In an  UPDATE  statement, columns are updated from left to right. If you refer to an updated column, you get the updated value instead of the original value. For example, the following statement increments  KEY by  2 ,  not 1 : •You can refer to multiple temporary tables in the same query, but you cannot refer to any given temporary table more than once. For example, the following does not work: •The optimizer may handle  DISTINCT  differently when you are using “hidden”  columns in a join than when you are not. In a join, hidden columns are counted as part of the result (even if they are not shown), whereas in normal queries, hidden columns do not participate in the  DISTINCT  comparison. mysql>  UPDATE  tbl_name  SET KEY=KEY+1,KEY=KEY+1; mysql>  SELECT * FROM temp_table, temp_table AS t2; ERROR 1137: Can’t reopen table: ’temp_table’ 5316