MySQL - 將預設資料庫編碼 `latin1` 改為 `UTF 8`
Published in:2022-09-27 | category: MySQL


***** 新版 MySQL 請參考官方文件



Step.1 先修改 MySQL Config 讓之後建立的資料庫都使用編碼 UTF8

vim /etc/my.cnf
[mysqld]
default-character-set=utf8
default-collation=utf8_unicode_ci
character-set-server=utf8
collation-server=utf8_unicode_ci 
    
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
    
[client]
default-character-set=utf8
    
[mysql]
default-character-set=utf8
    
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

重新啟動 MySQL 讓設定生效

service mysqld restart


Step.2 若要直接修改,不通過設定檔的方式


ALTER DATABASE dbdata CHARACTER SET utf8 COLLATE utf8_general_ci;
```    

***
    
**再進入 Mysql 介面查詢編碼**
 
```sql
mysql> status;


Step.3 若要修改已存在的 Tables


mysqldump -uroot -prootpw --default-character-set=latin1 --skip-set-charset dbdata > dbdata.sql

latin1 取代成 utf8

sed -i 's/latin1/utf8/g' dbdata.sql > dbdata_utf8.sql

匯入 MYSQL

mysql -uroot -prootpw --default-character-set=utf8 dbdata < dbdata_utf8.sql



Prev:
MySQL - 剛載完的密碼存放位置
Next:
Windows - win10 無法建立VPN連線