lazzyfu / goInsight

集MySQL数据库工单和数据查询的Web平台

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

執行gh-ost 遇到錯誤

HaroldZhen opened this issue · comments

執行gh-ost遇到註解為中文的報錯問題
'ascii' codec can't encode characters in position 343-348: ordinal not in range(128)

解決辦法:

# 80端口為外部端口,可自行更改
# 8000為docker內部服務端口,8000端口不可改變
docker run -itd -p 80:8000  -e PYTHONIOENCODING=utf-8  -e LC_ALL='en_US.UTF-8' --name=sqlaudit 0a2b9265372d /bin/bash

或是 Dockfile 加上

ENV PYTHONIOENCODING=utf-8 LC_ALL en_US.UTF-8

出錯語法:

ALTER TABLE `hotel` ADD COLUMN `en_name` varchar(255) NOT NULL DEFAULT '' COMMENT '飯店英文名稱' AFTER `name`

您好,我这边测试是OK的,请问题你数据库的字符集是utf8?或者你输入的ALTER语句包含了ASCII字符,谢谢。
image

是的,資料庫字符集是utf8,語法就是只上面這樣

ALTER TABLE `hotel` ADD COLUMN `en_name` varchar(255) NOT NULL DEFAULT '' COMMENT '飯店英文名稱' AFTER `name`

好的。我复制过来的,执行没问题,我模拟下加入ASCII字符,进行测试,并修正下,谢谢。如果有使用上的问题,请反馈,谢谢。如果有好的思路或者方法,也请反馈给我,感谢。

你是加了:-e PYTHONIOENCODING=utf-8 这个解决的吗?