登錄到mysql數據庫中,輸入
show variables like "%character_set%";
查看默認字符集
我們正常創建的數據庫就是下面這樣子的
(默認的字符集為 latin1)
這就會導致在Windows中使用的時候經常會因為字符集的編碼問題出現不能導入其他的備份庫的情況下,下面就給出兩種解決方案
1.創建數據庫的時候直接設置
create database myDatabase default char set utf8;
2.配置my.ini文件
在mysql安裝的目錄下面
如果沒有文件,就新建一個文件名為my.ini的文件,編輯該文件,內容為以下:
[client] port=3306 [mysql] no-beep default-character-set=utf8 [mysqld] port=3306 # mysql根目錄 basedir=D:\DateBase\mysql-5.7.27 # 放所有數據庫的data目錄 datadir=D:\DateBase\mysql-5.7.27\data # character-set-server= # 服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8 # 默認存儲引擎innoDB default-storage-engine=INNODB # Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" #日志輸出為文件 log-output=FILE # 是否開啟sql執行結果記錄,必須要設置general_log_file參數,日志的路徑地址 # 即日志跟蹤,1為開啟,0為關閉 general-log=0 general_log_file="execute_sql_result.log" # 配置慢查詢,5.7版本默認為1 slow-query-log=1 slow_query_log_file="user-slow.log" long_query_time=10 #默認不開啟二進制日志 #log-bin=mysql-log #錯誤信息文件設置,會將錯誤信息放在data/mysql.err文件下 log-error=mysql.err # Server Id.數據庫服務器id,這個id用來在主從服務器中標記唯一mysql服務器 server-id=1 #lower_case_table_names: 此參數不可以動態修改,必須重啟數據庫 #lower_case_table_names = 1 表名存儲在磁盤是小寫的,但是比較的時候是不區分大小寫 #lower_case_table_names=0 表名存儲為給定的大小和比較是區分大小寫的 #lower_case_table_names=2, 表名存儲為給定的大小寫但是比較的時候是小寫的 lower_case_table_names=1 #限制數據的導入導出都只能在Uploads文件中操作,這個是在sql語句上的限制。 #secure-file-priv="D:\AppServ\mysql-5.7.23/Uploads" #值為null ,也就是注釋掉這個參數或者secure-file-priv=null。表示限制mysqld 不允許導入|導出 #值為/tmp/ ,即secure-file-priv="/tmp/" 表示限制mysqld 的導入|導出只能發生在/tmp/目錄下 #沒有具體值時,即secure-file-priv= 表示不對mysqld 的導入|導出做限制 # 最大連接數 max_connections=151 # 打開表的最大緩存數 table_open_cache=2000 # tmp_table_size 控制內存臨時表的最大值,超過限值后就往硬盤寫,寫的位置由變量 tmpdir 決定 tmp_table_size=16M # 每建立一個連接,都需要一個線程來與之匹配,此參數用來緩存空閑的線程,以至不被銷毀, # 如果線程緩存中有空閑線程,這時候如果建立新連接,MYSQL就會很快的響應連接請求。 # 最大緩存線程數量 thread_cache_size=10
再次查詢一下默認編碼集:
再次創建數據庫測試:
字符編碼已經沒有問題了!