windows系統(tǒng)由于本人下載了一個安裝完全綠色版本的MySQL,在MySQL目錄下并沒有my.ini或default.int,每次啟動MySQL服務(wù)的時候一直返回默認初始值。
接下來就是解決辦法
1、首先查看數(shù)據(jù)庫的默認編碼show variables like 'char%';。

mysql編碼.png
這是我修改好的編碼,一般默認的是拉丁文
2、在自己的目錄下新建一個my.ini的文件,我的目錄是D:\MySQL\mysql-5.7.20-winx64。
3、在ini文件中復(fù)制以下內(nèi)容(路徑根據(jù)自己電腦安裝位置修改)。
[mysql]
# 設(shè)置mysql客戶端默認字符集
default-character-set=utf8
[mysqld]
#設(shè)置3306端口
port = 3306
# 設(shè)置mysql的安裝目錄
basedir=D:\MySQL\mysql-5.7.20-winx64
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
4、修改完成以后重啟MySQL,然后查詢show variables like 'char%';就如上圖顯示的一樣了,這樣就不要每次開啟MySQL服務(wù)設(shè)置編碼格式了。
5、我在修改過程中發(fā)現(xiàn)使用視圖工具MySQL的時候修改完中文還是顯示?號,我碰到的解決方法就是斷開連接,重新連接數(shù)據(jù)庫,?號就顯示成中文了。
mac上修改
因為使用docker的時候我沒有安裝vim,所以在進入容器的時候無法修改配置。
血的教訓(xùn)......
執(zhí)行命令
apt-get update
同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引。但是下載很慢,真的很慢.... sources中的地址可以改成阿里云的。
等更新完成以后再執(zhí)行:
apt-get install vim
安裝完成后進入容器,然后進入mysql執(zhí)行查看編碼格式
show variables like'character%';
執(zhí)行exit退出數(shù)據(jù)庫到容器中,執(zhí)行
vim /etc/my.cnf
修改配置
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
保存退出后重啟容器。
然后在docker中導(dǎo)入sql數(shù)據(jù)
docker exec -i xxx mysql -uroot -p密碼 projectName< /*(*代表你的路徑)/mysql.sql