2017-08-17 8 views
0

中国語の文字列を保存すると、mysqlはエラー "例外値:
(1366、"行1の列 'name'の列値が正しくない '\ xE5 \ xB0 \ x8F \ xE6 \ x98 \ x8E' 「)」、私は、MySQLの文字を確認し、それがこのことを示していますドッカーの作成時にmysqlの文字を変更するにはどうすればいいですか?

mysql> show variables like 'character%'; 
+--------------------------+----------------------------+ 
| Variable_name   | Value      | 
+--------------------------+----------------------------+ 
| character_set_client  | latin1      | 
| character_set_connection | latin1      | 
| character_set_database | latin1      | 
| character_set_filesystem | binary      | 
| character_set_results | latin1      | 
| character_set_server  | latin1      | 
| character_set_system  | utf8      | 
| character_sets_dir  | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.00 sec) 

そして、私のドッキングウィンドウ-compose.ymlは仲間のとおりです。

web: 
    image: yetongxue/docker_test:1.2 
    links: 
     - "db" 
    ports: 
     - "8100:8000" 
    volumes: 
     - "/Users/yetongxue/docker_v/docker_test/media:/root/media" 
    restart: always 

db: 
    image: mysql:5.7 
    environment: 
     MYSQL_ROOT_PASSWORD: qwerasdf 
     MYSQL_DATABASE: docker_db 
    restart: always 
    volumes: 
     - "/Users/yetongxue/docker_v/docker_test/db:/var/lib/mysql" 

私はでMySQLの文字を設定する方法を知っていますmy.cnf、しかし、これをdocker-compose.ymlでどうやって行うことができますか? 誰でも知っていますか?ありがとう!

答えて

0

作成ファイルは、コンテナの実行に使用されます(イメージの作成も可能です)。 docker-composeファイル内のイメージをカスタマイズすることはできません。 mysqlイメージを拡張したカスタムイメージを作成する必要があります。 Dockerfileを作成します。

FROM mysql:5.7 
RUN <command to update my.cnf> 

次に、このイメージを構築する:はい、これは有効な方法である

db: 
    image: <image-name-specified-above> 
+0

docker build -t <image-name> . 

更新ファイルを構成しています。私はちょうど今、望んでいた方法を見つけました。次のようにdocker-compose.ymlで設定することができます:command:['mysqld'、 '--character-set-server = utf8']。次にリンクの例を示します:https://coding.net/u/twang2218/p/docker-lnmp/git/blob/master/docker-compose.yml –

関連する問題