mysql關於db.opt檔案的總結
總結
1、create database時會自動生成一個檔案db.opt,存放的資料庫的預設字符集,show create database時顯示資料庫預設字符集即db.opt中字符集
2、這個檔案丟失不影響資料庫執行,該檔案丟失之後新建表時,找不到資料庫的預設字符集,就把character_set_server當成資料庫的預設字符集,show create database時顯示character_set_server字符集
mysql> show variables like 'character_set_server';
+----------------------+--------+
| Variable_name | Value |
+----------------------+--------+
| character_set_server | latin1 |
+----------------------+--------+
test1庫沒有指定字符集,使用character_set_server值
mysql> create database test1;
[root@mydb test1]# cat /var/lib/mysql/test1/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci
test2庫指定了字符集utf16
mysql> create database test2 character set=utf16;
[root@mydb test1]# cat /var/lib/mysql/test2/db.opt
default-character-set=utf16
default-collation=utf16_general_ci
test1庫的預設字符集latin1,show create database顯示預設字符集latin1
tab1表使用資料庫預設字符集latin1
mysql> show create database test1;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
mysql> create table test1.tab1 (hid int);
test1庫的沒有了預設字符集,因為db.opt檔案不存在了,show create database顯示character_set_server字符集latin1
tab2表沒有辦法使用資料庫預設字符集,使用character_set_server字符集latin1
[root@mydb test1]# mv db.opt db.opt20181015
[root@mydb test1]# service mysqld restart
mysql> show create database test1;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
mysql> create table test1.tab2 (hid int);
test1庫的沒有了預設字符集,因為db.opt檔案不存在了,show create database顯示character_set_server字符集latin7
tab2表沒有辦法使用資料庫預設字符集,使用character_set_server字符集latin7
[root@mydb test1]# vi /etc/my.cnf
[mysqld]
character_set_server=latin7
[root@mydb test1]# service mysqld restart
mysql> show create database test1;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET latin7 */ |
+----------+------------------------------------------------------------------+
mysql> create table test1.tab3 (hid int);
test1庫的預設字符集latin1,show create database顯示預設字符集latin1
tab4表使用資料庫預設字符集latin1
[root@mydb test1]# mv db.opt20181015 db.opt
[root@mydb test1]# service mysqld restart
mysql> show create database test1;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
mysql> create table test1.tab4(hid int);
tab1表使用資料庫預設字符集latin1
mysql> show create table test1.tab1;
+-------+-------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------+
| tab1 | CREATE TABLE `tab1` (
`hid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------+
tab2表使用character_set_server字符集latin1
mysql> show create table test1.tab2;
+-------+-------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------+
| tab2 | CREATE TABLE `tab2` (
`hid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------+
tab3表使用character_set_server字符集latin7
mysql> show create table test1.tab3;
+-------+-------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------+
| tab3 | CREATE TABLE `tab3` (
`hid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin7 |
+-------+-------------------------------------------------------------------------------------------+
tab4表使用資料庫預設字符集latin1
mysql> show create table test1.tab4;
+-------+-------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------+
| tab4 | CREATE TABLE `tab4` (
`hid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------------------------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2216435/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於控制檔案的總結
- Android 關於 so 檔案的總結Android
- 關於spring的配置檔案總結Spring
- sqlserver關於filestream檔案流、filetable檔案表的總結SQLServer
- mysql關於variable的總結MySql
- mysql關於mysql.server的總結MySqlServer
- my.cnf檔案關於組選項的總結
- mysql關於臨時表的總結MySql
- mysql關於mysqld_safe的總結MySql
- mysql關於表空間的總結MySql
- mysql關於memory引擎的表的總結MySql
- ASM的優點總結--關於日誌檔案調整ASM
- mysql關於ibdata檔案的理解MySql
- 關於Mysql使用的一些總結MySql
- MySql關於鎖的一些總結MySql
- mysql關於聚集索引、非聚集索引的總結MySql索引
- mysql關於字符集character set的總結MySql
- 12C關於CDB、PDB 日誌檔案redo log的總結
- 關於MySQL 查詢表資料大小的總結MySql
- 關於近期的總結
- 關於UIWebView的總結UIWebView
- 關於BeautifulSoup的總結
- 關於HTML的總結HTML
- 關於oracle閃回資料歸檔的總結Oracle
- 關於開發Python專案的心得總結!Python
- sqlserver關於always on的總結SQLServer
- ORACLE關於NULL的總結OracleNull
- 關於ORACLE鎖的總結Oracle
- 關於jboss配置的總結
- 關於資料表結構sql檔案匯入mysql資料庫的問題?MySql資料庫
- 關於oracle的控制檔案Oracle
- 關於檔案的open方法
- sqlserver關於mirror映象的總結SQLServer
- sqlserver 關於DBCC CHECKDB的總結SQLServer
- 關於golang的time包總結Golang
- 關於 iOS 批量打包的總結iOS
- 關於Teradata PI的總結
- 關於SCN的總結測試