日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

查看修改MySQL字符集

發布時間:2023/12/2 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查看修改MySQL字符集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

查看修改MySQL字符集

http://blog.sina.com.cn/s/blog_70ac6bec01016fts.html

?

查看修改MySQL字符集

?(2012-08-22 09:53:21) 轉載▼
標簽:?

字符集

?

mysql數據庫

?

mysql字符集查看

?

mysql啟動命令

?

修改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的字符集分為幾類 A.客戶端字符集:通過系統變量”character_set_client“表示,通知server端,客戶端提交的sql語句編碼格式 B.連接字符集:通過系統變量”character_set_connectiont“表示,server端翻譯sql語句時,使用的編碼格式 C.結果集字符集:通過系統變量”character_set_results“表示,server端返回結果集之前把結果集轉換成的編碼格式 D.存儲字符集:通過系統變量”character_set_results“和“character_set_server”表示,是數據在存儲引擎里編碼格式

    為了不出現亂碼,我們需要統一修改這些參數,比如我要把數據庫的默認字符集改為utf8,如下所示

    在[client]下添加如下參數 default-character-set=utf8

    在[mysqld]下添加如下參數 default-character-set=utf8

    然后重啟mysql服務,再查看字符集(要重新登錄客戶端)

    mysql>

    mysql> show variables like 'collation%'; +----------------------+-----------------+ | Variable_name????????| Value???????????| +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database???| utf8_general_ci | | collation_server?????| utf8_general_ci | +----------------------+-----------------+ 3 rows in set (0.00 sec)

    mysql>

    mysql的字符集分的比較細,可以采用默認值,也可以指定值

    A.數據庫字符集

    使用默認字符集的庫 mysql> create database db1; Query OK, 1 row affected (0.01 sec)

    mysql> show create database db1; +----------+--------------------------------------------------------------+ | Database | Create Database??????????????????????????????????????????????| +----------+--------------------------------------------------------------+ | db1??????| CREATE DATABASE `db1` | +----------+--------------------------------------------------------------+ 1 row in set (0.00 sec)

    指定字符集的庫 mysql> create database db2 default character set latin1; Query OK, 1 row affected (0.01 sec)

    mysql> show create database db2; +----------+----------------------------------------------------------------+ | Database | Create Database????????????????????????????????????????????????| +----------+----------------------------------------------------------------+ | db2??????| CREATE DATABASE `db2` | +----------+----------------------------------------------------------------+ 1 row in set (0.00 sec)

    ?

    修改庫的字符集 mysql> alter database db2 default character set utf8; Query OK, 1 row affected (0.00 sec)

    mysql> show create database db2; +----------+--------------------------------------------------------------+ | Database | Create Database??????????????????????????????????????????????| +----------+--------------------------------------------------------------+ | db2??????| CREATE DATABASE `db2` | +----------+--------------------------------------------------------------+ 1 row in set (0.00 sec)

    ?

    B.表字符集

    mysql> use db2; Database changed

    ?

    使用默認庫字符集的表 mysql> create table t1(a varchar(10)); Query OK, 0 rows affected (0.01 sec)

    mysql> show create table t1; +-------+-----------------------------------------------------------------------------------------+ | Table | Create Table???????????????????????????????????????????????????????????????????????????| +-------+-----------------------------------------------------------------------------------------+ | t1????| CREATE TABLE `t1` ( ??`a` varchar(10) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+-----------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

    創建指定字符集的表 mysql> create table t2(a varchar(10)) default character set latin1;; Query OK, 0 rows affected (0.01 sec)

    ERROR: No query specified

    mysql> show create table t2; +-------+-------------------------------------------------------------------------------------------+ | Table | Create Table??????????????????????????????????????????????????????????????????????????????| +-------+-------------------------------------------------------------------------------------------+ | t2????| CREATE TABLE `t2` ( ??`a` varchar(10) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+-------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

    ?

    更改表的字符集 mysql> alter table t2 default character set utf8; Query OK, 0 rows affected (0.01 sec) Records: 0??Duplicates: 0??Warnings: 0

    mysql> show create table t2; +-------+--------------------------------------------------------------------------------------------------------------+ | Table | Create Table?????????????????????????????????????????????????????????????????????????????????????????????????| +-------+--------------------------------------------------------------------------------------------------------------+ | t2????| CREATE TABLE `t2` ( ??`a` varchar(10) character set latin1 default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

    mysql>

    從上面可以看到,修改表的字符集時,不會影響已經存在列的字符集,但新增列將繼承表的字符集,如下

    mysql> alter table t2 add a2 varchar(10); Query OK, 0 rows affected (0.01 sec) Records: 0??Duplicates: 0??Warnings: 0

    mysql> show create table t2; +-------+-----------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????| +-------+-----------------------------------------------------------------------------------------------------------------------------------------------+ | t2????| CREATE TABLE `t2` ( ??`a` varchar(10) character set latin1 default NULL, ??`a2` varchar(10) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)

    mysql>

    ?

    如果想更改已經存在表和字符列的字符集,要用如下

    mysql> alter table t2 convert to character set latin1; Query OK, 0 rows affected (0.01 sec) Records: 0??Duplicates: 0??Warnings: 0

    mysql> show create table t2; +-------+----------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table???????????????????????????????????????????????????????????????????????????????????????????????????????????????| +-------+----------------------------------------------------------------------------------------------------------------------------+ | t2????| CREATE TABLE `t2` ( ??`a` varchar(10) default NULL, ??`a2` varchar(10) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)

    ?

    C.字段字符集

    ?

    使用默認和指定字符集創建的列 mysql> create table t3 (a1 varchar(10),a2 varchar(10) character set latin1); Query OK, 0 rows affected (0.04 sec)

    mysql> show create table t3; +-------+------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????| +-------+------------------------------------------------------------------------------------------------------------------------------------------------+ | t3????| CREATE TABLE `t3` ( ??`a1` varchar(10) default NULL, ??`a2` varchar(10) character set latin1 default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

    mysql>

    ?

    查看列的字符集 mysql> show full columns from t3; +-------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+ | Field | Type????????| Collation?????????| Null | Key | Default | Extra | Privileges??????????????????????| Comment | +-------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+ | a1????| varchar(10) | utf8_general_ci???| YES??|?????| NULL????|???????| select,insert,update,references |?????????| | a2????| varchar(10) | latin1_swedish_ci | YES??|?????| NULL????|???????| select,insert,update,references |?????????| +-------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+ 2 rows in set (0.01 sec)

    修改列的字符集 mysql> alter table t3 change a2 a2 varchar(10) character set utf8; Query OK, 0 rows affected (0.03 sec) Records: 0??Duplicates: 0??Warnings: 0

    mysql> show full columns from t3; +-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ | Field | Type????????| Collation???????| Null | Key | Default | Extra | Privileges??????????????????????| Comment | +-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ | a1????| varchar(10) | utf8_general_ci | YES??|?????| NULL????|???????| select,insert,update,references |?????????| | a2????| varchar(10) | utf8_general_ci | YES??|?????| NULL????|???????| select,insert,update,references |?????????| +-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ 2 rows in set (0.00 sec)

    mysql>

    ?

    結論:字符集從數據庫、表、列的字符集是逐級繼承的關系

    ?

    查看字符集命令 mysql> show create table t4; //顯示表字符集 mysql> show create database db2; //顯示庫字符集 mysql> show full columns from t4; //顯示列字符集

    alter database db2 default character set utf8; //更改庫的字符集 alter table t2 convert to character set latin1;//更改表的現存列字符集 alter table t2 default character set utf8;??//更能改表的默認字符集 alter table t3 change a2 a2 varchar(10) character set utf8; //更能改字段的字符集

    ?

    2.修改mysql的默認存儲引擎

    mysql> show variables like 'storage%'; +----------------+--------+ | Variable_name??| Value??| +----------------+--------+ | storage_engine | MyISAM | +----------------+--------+ 1 row in set (0.01 sec)

    mysql>

    ?

    在[mysqld]下添加如下參數 default-storage-engine=innodb

    ?

    重啟mysql服務,查看

    mysql> show variables like 'storage%'; +----------------+--------+ | Variable_name??| Value??| +----------------+--------+ | storage_engine | InnoDB | +----------------+--------+ 1 row in set (0.01 sec)

    mysql>

    ?

    創建默認字符集的表 mysql> create table t4 (a1 int); Query OK, 0 rows affected (0.01 sec)

    mysql> show create table t4; +-------+--------------------------------------------------------------------------------------+ | Table | Create Table?????????????????????????????????????????????????????????????????????????| +-------+--------------------------------------------------------------------------------------+ | t4????| CREATE TABLE `t4` ( ??`a1` int(11) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

    ?

    更改表的默認字符集 mysql> alter table t4 engine myisam; Query OK, 0 rows affected (0.06 sec) Records: 0??Duplicates: 0??Warnings: 0

    mysql> show create table t4; +-------+--------------------------------------------------------------------------------------+ | Table | Create Table?????????????????????????????????????????????????????????????????????????| +-------+--------------------------------------------------------------------------------------+ | t4????| CREATE TABLE `t4` ( ??`a1` int(11) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

    mysql>

    二、查看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????????????|?....... ?
  • +----------------------+-------------+-----------------+--------?
  • MySQL修改默認字符集

    修改mysql的默認字符集是通過修改它的配置文件來實現的。一般分兩種情況:

    方法一:

    Windows平臺

    ?????windows下的mysql配置文件是my.ini

    ????一般在C:\Program Files\MySQL\MySQL Server 5.0

    ????default-character-set=gbk #或gb2312,big5,utf8 ????然后重新啟動mysql:運行->services.msc->停止MySql->啟動???OK

    ????或 ?????/etc/init.d/mysql restart ?????或用其他方法重新啟動,就生效了。

    Unix平臺 ????linux下的mysql配置文件是my.cnf

    ????一般是/etc/my.cnf,如果找不到可以用find命令找一下: ?????find / -iname my.cnf ????在這個文件里面加上 ????default-character-set=gbk #或gb2312,big5,utf8 ????然后重新啟動mysql ????net stop mysql ????net start mysql

    ?

    ?

    方法二:

    通過MySQL命令行修改:
    mysql> set character_set_client=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_connection=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_database=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_results=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_server=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_system=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_connection=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_database=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_server=utf8;
    Query OK, 0 rows affected (0.01 sec)
    查看:
    mysql> show variables like 'character_set_%';

    utf8 改為 gb2312

    重啟mysql :
    如何啟動/停止/重啟MySQL

    啟動、停止、重啟 MySQL 是每個擁有獨立主機的站長必須要撐握的操作,下面為大家簡單介紹一下操作方法:

    一、啟動方式?

    1、使用 service 啟動:service mysqld start
    2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld start
    3、使用 safe_mysqld 啟動:safe_mysqld&

    二、停止

    1、使用 service 啟動:service mysqld stop
    2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld stop
    3、mysqladmin shutdown

    三、重啟

    1、使用 service 啟動:service mysqld restart
    2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld restart

    終極方法

    mysql> set names gbk;

    ?

    ?

    部分原文:http://blog.csdn.net/wyzxg/article/details/7581415

    轉載于:https://www.cnblogs.com/MYSQLZOUQI/p/3780967.html

    總結

    以上是生活随笔為你收集整理的查看修改MySQL字符集的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。