コンテナを解決するための正式なスタートはRedmineの漢字の問題を挿入することはできません

  採用する前に、問題を正常にビルドRedmineのをドッキングウィンドウを-構成するが、それは不可能、使用中の中国語の文字を挿入するために、常に内部サーバーエラーエラーを報告しました、ログの世話、挿入異常を表示し、多くの人々は、ミラーの公式のインストールを適用しない理由を、今ようやく理解彼はそれを解決する必要があります、があった、さらなる分析は、最終的に問題をlatin1の理解されているデータベース・キャラクタ・セットによるもので、その後、公式のスクリプトに行き、デフォルトが使用UTF8エンコーディング、作成されたすべてのデータベーステーブルが指定されていないです手動で文字セットので、データテーブルのすべてを置くために、データベースを変更するスクリプトが文字セットUTF-8に変更され、誤用データベースの可能性は望ましくないので、ストアドプロシージャを使用することは、実装するために、以下に与えられます。ストアドプロシージャスクリプト。

区切り文字は$$ 
 
`redmine`.`update_char_set`()CREATE PROCEDUREを
 
    BEGIN 
     DECLAREが行わINT DEFAULT 0 ; 
     t_sql VARCHAR(DECLARE 256 )。
     tableNameのVARCHARを宣言する(128 )。
     `information_schema`.`TABLES` TABLE_SCHEMA FROM SELECT TABLE_NAME FORリストのCURSORを宣言 = ' Redmineの' ; 
     SQLSTATEのハンドラを続けるDECLARE ' 02000 ' =行なわSET 1 
     OPENリスト; 
     tableNameのINTOリストをFETCH。
     REPEAT 
        SETの@t_sql = CONCAT("ALTER TABLEの'tableNameのは、' キャラクタ・セットUTF8のCOLLATE utf8_general_ciに変換します" ); 
        @t_sql FROM STMTを準備します。
        STMTをEXECUTE。
        DEALLOCATEはSTMTを準備します。
     tableNameのINTOリストをFETCH。
     行わENDのREPEAT UNTIL。
     CLOSEリスト; 
    END $$ 
 
DELIMITER。

ストアドプロシージャは、データベースをホストするサーバー上で再度実行します、

その後、データベースの文字セットと文字セットを変更し、各データテーブルを更新し、次のスクリプトを実行します。

ALTER DATABASEのRedmineのデフォルト・キャラクタ・セットUTF8のCOLLATE utf8_general_ciと、
CALLのredmine.update_char_set()。

 

おすすめ

転載: www.cnblogs.com/jiangzhaowei/p/11300044.html