MySql資料庫中查詢修改表中字元編碼(charset)的方法
阿新 • • 發佈:2018-12-19
MySQL字符集多種多樣,下面為您列舉了其中三種最常見的MySQL字符集檢視方法,該方法供您參考,希望對您學習MySQL資料庫能有所啟迪。
一、檢視MySQL資料庫伺服器和資料庫MySQL字符集。
- mysql> show variables like '%char%';
- +--------------------------+-------------------------------------+------
- | Variable_name | Value |......
- +--------------------------+-------------------------------------+------
- | character_set_client | utf8 |...... -- 客戶端字符集
- | character_set_connection | utf8 |......
- | character_set_database | utf8 |...... -- 資料庫字符集
- | character_set_filesystem | binary |......
- | character_set_results | utf8 |......
- | character_set_server | utf8 |...... -- 伺服器字符集
- | character_set_system | utf8 |......
- | character_sets_dir | D:\MySQL Server 5.0\share\charsets\ |......
- +--------------------------+-------------------------------------+------
二、檢視MySQL資料表(table)的MySQL字符集。
- mysql> show table status from sqlstudy_db like '%countries%';
- +-----------+--------+---------+------------+------+-----------------+------
- | Name | Engine | Version | Row_format | Rows | Collation |......
- +-----------+--------+---------+------------+------+-----------------+------
- | countries | InnoDB | 10 | Compact | 11 | utf8_general_ci |......
- +-----------+--------+---------+------------+------+-----------------+------
三、檢視MySQL資料列(column)的MySQL字符集。
- mysql> show full columns from countries;
- +----------------------+-------------+-----------------+--------
- | Field | Type | Collation | .......
- +----------------------+-------------+-----------------+--------
- | countries_id | int(11) | NULL | .......
- | countries_name | varchar(64) | utf8_general_ci | .......
- | countries_iso_code_2 | char(2) | utf8_general_ci | .......
- | countries_iso_code_3 | char(3) | utf8_general_ci | .......
- | address_format_id | int(11) | NULL | .......
- +----------------------+-------------+-----------------+--------
修改單個表的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
修改資料庫中所有表的字符集:
SELECT concat('alter table ', table_name, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM information_schema.tables WHERE table_schema='替換你的資料庫名稱' and table_collation != 'utf8_general_ci' GROUP BY table_name;
修改完畢後重啟資料庫:
sudo systemctl restart mariadb