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
- sqlserver關於filestream檔案流、filetable檔案表的總結SQLServer
- mysql關於variable的總結MySql
- mysql關於mysql.server的總結MySqlServer
- mysql關於ibdata檔案的理解MySql
- my.cnf檔案關於組選項的總結
- mysql關於mysqld_safe的總結MySql
- mysql關於表空間的總結MySql
- mysql關於臨時表的總結MySql
- mysql關於memory引擎的表的總結MySql
- 關於Mysql使用的一些總結MySql
- MySql關於鎖的一些總結MySql
- mysql關於聚集索引、非聚集索引的總結MySql索引
- mysql關於字符集character set的總結MySql
- 12C關於CDB、PDB 日誌檔案redo log的總結
- 關於開發Python專案的心得總結!Python
- 關於近期的總結
- sqlserver關於always on的總結SQLServer
- mysql關於二進位制日誌binary log的總結MySql
- 關於檔案的open方法
- 關於MySQL InnoDB表的二級索引是否加入主鍵的總結MySql索引
- sqlserver 關於DBCC CHECKDB的總結SQLServer
- sqlserver關於mirror映象的總結SQLServer
- 關於golang的time包總結Golang
- MyBatis配置檔案總結MyBatis
- mysql相關問題總結MySql
- 關於Servlet小總結Servlet
- [轉]關於Linux安裝mysql預設配置檔案位置LinuxMySql
- 檔案包含漏洞相關知識總結-千鋒教育
- MySQL專案實戰總結MySql
- 關於Mysql索引的資料結構MySql索引資料結構
- python 檔案操作的基礎總結Python
- Linux---檔案、軟連結於硬連結檔案Linux
- 關於PaaS的純乾貨總結
- 關於Android Studio使用Git的總結AndroidGit
- 關於STL容器的簡單總結
- SqlServer關於分割槽表的總結SQLServer
- postgresql關於許可權的總結SQL