mysql文件

MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQL(server)所建数据库文件和MySQL(server)所用存储引擎创建的数据库文件。  

    .frm文件:存储数据表的框架结构,文件名与表名相同,每个表对应一个同名frm文件,与操作系统和存储引擎无关,即不管MySQL运行在何种操作系统上,使用何种存储引擎,都有这个文件。     \MySQL Server 5.1\data

   InnoDB数据库文件(即InnoDB文件集,ib-file set):

              ibdata1、ibdata2等:系统表空间文件,存储InnoDB系统信息和用户数据库表数据和索引,所有表共用

             .ibd文件:单表表空间文件,每个表使用一个表空间文件(file per table),存放用户数据库表数据和索引

             日志文件: ib_logfile1、ib_logfile2

 

查看数据库本地存储位置: show variables like '%datadir%';

 

.myini配置文件

mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。-----------------show variables like '%datadir%';

  ANSI模式:

mysql> set @@sql_mode=ANSI;   
Query OK, 0 rows affected (0.00 sec)   
  
mysql> create table test(name varchar(4), pass varchar(4));   
Query OK, 0 rows affected (0.03 sec)   
  
mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb');   
Query OK, 2 rows affected, 2 warnings (0.02 sec)   
Records: 2  Duplicates: 0  Warnings: 2  
  
mysql> show warnings;   
+---------+------+-------------------------------------------+   
| Level   | Code | Message                                   |   
+---------+------+-------------------------------------------+   
| Warning | 1265 | Data truncated for column 'name' at row 1 |   
| Warning | 1265 | Data truncated for column 'pass' at row 1 |   
+---------+------+-------------------------------------------+   
2 rows in set (0.00 sec)   
  
mysql> select * from test;   
+------+------+   
| name | pass |   
+------+------+   
| aaaa | aaaa |   
| bbbb | bbbb |   
+------+------+   
2 rows in set (0.00 sec)  

 

  STRICT_TRANS_TABLES模式:

mysql> set @@sql_mode=STRICT_TRANS_TABLES;   
Query OK, 0 rows affected (0.00 sec)   
  
mysql> create table test(name varchar(4), pass varchar(4));   
Query OK, 0 rows affected (0.02 sec)   
  
mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb');   
ERROR 1406 (22001): Data too long for column 'name' at row 1  
  
mysql> show errors;   
+-------+------+------------------------------------------+   
| Level | Code | Message                                  |   
+-------+------+------------------------------------------+   
| Error | 1406 | Data too long for column 'name' at row 1 |   
+-------+------+------------------------------------------+   
1 row in set (0.00 sec)   
  
mysql> select * from test;   
Empty set (0.00 sec)  

 

  TRADITIONAL模式:

mysql> set @@sql_mode=TRADITIONAL;   
Query OK, 0 rows affected (0.00 sec)   
  
mysql> create table test(name varchar(4), pass varchar(4));   
Query OK, 0 rows affected (0.02 sec)   
  
mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb');   
ERROR 1406 (22001): Data too long for column 'name' at row 1  
  
mysql> show errors;   
+-------+------+------------------------------------------+   
| Level | Code | Message                                  |   
+-------+------+------------------------------------------+   
| Error | 1406 | Data too long for column 'name' at row 1 |   
+-------+------+------------------------------------------+   
1 row in set (0.00 sec)   
  
mysql> select * from test;   
Empty set (0.00 sec)  
 



 

posted @ 2018-12-29 13:56  scmath  阅读(139)  评论(0编辑  收藏  举报