MySQL5.7 MySQL 8レコードへのアップグレード

3639 ワード

1、インストール時にパスワード認証方式を選択する場合は5.xバージョン対応のmysql_native_passwordを選択してください8.0でサポートされているcaching_sha2_passwordNavicatおよびphpでテストして接続できないことを発見しました
2、ユーザーカスタム関数エラー
    This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

解決策
    mysql>set global log_bin_trust_function_creators=1;

3.5.xバージョンの文字セットを8.0バージョンのデフォルトのutf8mb4_0900_ai_ciに変更する5.7で使用されるデフォルトはutf8mb4_unicode_ciです.
  • 変換を作成する記憶プロセス
  •     CREATE DEFINER=`root`@`localhost` PROCEDURE `alter_table_character`()
        begin
            declare f_name varchar(100); 
            declare b int default 0;    /*             */
        		--              populac
            declare table_name cursor for SELECT TABLE_NAME FROM information_schema.TABLES where TABLE_SCHEMA = 'populac' and TABLE_NAME like '%' AND TABLE_COLLATION = 'utf8mb4_unicode_ci';    
            DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
           
            OPEN table_name;
            REPEAT
            FETCH table_name INTO f_name; /*       */
        				SET @STMT :=CONCAT("ALTER TABLE ",f_name," CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;");   
        			PREPARE STMT FROM @STMT;   
            EXECUTE STMT;  
        -- INSERT into TestTable(name) VALUES (f_name);
               -- ALTER TABLE f_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 
            UNTIL b = 1
        		END REPEAT;
            close table_name;        
        end
    
  • は、ストレージ・プロシージャ
  • を呼び出す.
        call alter_table_character();