MySQL数据文件表明

2019-12-31 06:17 来源:未知

1、mysql几个关键的文书

MySQL数据文件表明

  • 各种数据库新建后,会发出数据库文件夹,在该文件夹下每张表均对应以下七个公文:

 

xx.frm    存放表构造

后生可畏.MySQL数据文件表达

xx.MYD    贮存表数据

先看MySQL DataDirectory下的文件:

xx.MYI   存放表索引

 

  • mysq非常首要的安排文件     

金沙澳门唯一官网 1

my.ini   全局配置文件

 

2、mysql的逻辑结构

那中间dave,mysql 皆以我们的数据库名称,大家在步向mysql 数据库查看:

  • 连接层
  • 服务层
  • 引擎层:存款和储蓄引擎层,引擎肩负mysql数据的存取,mysql服务器通过API与仓库储存引擎通讯。分化的囤积引擎具有不一样的风味效益
  • 仓库储存层:数据存款和储蓄层,将数据存款和储蓄到器具的文件系统上,并做到与仓库储存引擎的交互作用

 

3、InnoDB引擎特点

金沙澳门唯一官网 2

Supports transactions, row-level locking, and foreign keys

 

在MySQL 中每三个数据库都会在概念好(恐怕暗中同意)的数额目录下存在叁个以数据库名字命名的文书夹,用来贮存在该数据库中种种表数据文件。分裂的MySQL 存款和储蓄引擎有各自差异的数据文件,寄存地点也许有分别。

大多数囤积引擎的数据文件都存放在和MyISAM 数据文件地方肖似的目录下,可是各种数据文件的恢宏名却各不均等。如MyISAM 用“.MYD”作为扩张名,Innodb 用“.ibd”,Archive 用“.arc”,CSV 用“.csv”,等等。

 

1.1 “.ibd”文件和ibdata 文件

那三种文件都以寄放在Innodb 数据的文件,之所以有三种文件来寄放在Innodb 的数额(包括索引),是因为Innodb 的多少存款和储蓄方式能够由此安插来支配是行使分享表空间寄存存款和储蓄数据,依然独享表空间存放存款和储蓄数据。独享表空间存款和储蓄格局利用“.ibd”文件来贮存数据,且每个表一个“.ibd”文件,文件存放在和MyISAM数据后生可畏致的职分。

假如选择分享存款和储蓄表空间来贮存数据,则会选择ibdata 文件来存放在,全体表协同采纳八个(恐怕多少个,可活动布置)ibdata 文件。ibdata 文件能够由此innodb_data_home_dir 和innodb_data_file_path三个参数合作铺排结合, innodb_data_home_dir 配置数据寄存的总目录, 而innodb_data_file_path 配置每二个文件的名称。当然,也得以不配innodb_data_home_dir而直接在innodb_data_file_path参数配置的时候使用相对路线来完毕构造。

 

mysql> showvariables like 'innodb_data%';
+-----------------------+------------------------+
|Variable_name         | Value                  |
+-----------------------+------------------------+
|innodb_data_file_path | ibdata1:10M:autoextend |
| innodb_data_home_dir  |                        |
+-----------------------+------------------------+
2 rows in set(0.01 sec)

 

 

innodb_data_file_path中能够叁回配置五个ibdata文件。文件能够是点名大小,也能够是半自动扩充的,可是Innodb 约束了只有独有最终一个ibdata 文件能够配置成都电子通信工程高校动增加项目。当大家要求增添新的ibdata 文件的时候,只好增加在innodb_data_file_path配置的最后,何况必得重启MySQL 本领一气呵成ibdata 的丰硕专门的学问。

 

1.2 “.frm”文件

与表相关的元数据(meta)新闻都存放在“.frm”文件中,满含表构造的定义音讯等。无论是怎样存款和储蓄引擎,每三个表都会有二个以表名命名的“.frm”文件。全数的“.frm”文件都寄放在所属数据库的公文夹上边。

 

1.3 “.MYD”文件

“.MYD”文件是MyISAM 存款和储蓄引擎专项使用,贮存MyISAM 表的数量。每多少个MyISAM 表都会有七个“.MYD”文件与之相应,相通寄存于所属数据库的公文夹下,和“.frm”文件在一块。

 

1.4 “.MYI”文件

“.MYI”文件也是专项于MyISAM存款和储蓄引擎的,主要寄存MyISAM表的目录相关音讯。对于MyISAM存款和储蓄来讲,可以被cache 的开始和结果首要就是来自“.MYI”文件中。每一个MyISAM表对应三个“.MYI”文件,贮存于地点和“.frm”以致“.MYD”同样。

 

小结一下:

MyISAM 存款和储蓄引擎的表在数据库中,每二个表都被存放在为四个以表名命名的大意文件(frm,myd,myi)。 每一个表都有且只有与此相类似多个文本做为MyISAM 存款和储蓄类型的表的囤积,也正是说不管那些表有多少个目录,都以贮存在在同贰个.MYI 文件中。

以此在开头的截图里看的比较清楚。

 

 

二.修正MySQL 数据文件目录

MySQL暗中同意的数据文件存款和储蓄目录为/var/lib/mysql。上面演示一下改换MySQL私下认可的data directory。

 

2.1 创立新的目录

[[email protected] /]# mkdir -p /u01/mysql
[[email protected] lib]# chown mysql.mysql/u01/mysql
[[email protected] lib]# chmod  -R 777 /u01/mysql

 

 

2.2 停mysql

[[email protected] lib]# service mysql stop
Shutting down MySQL...                                     [  OK  ]
[[email protected] lib]# ps -ef|grep mysql
root     3955  3799  0 20:00 pts/2    00:00:00 grep mysql

 

 

2.3 移动目录

[[email protected] lib]# mv /var/lib/mysql  /u01/

 

 

2.4 修改my.cnf配置文件

风姿洒脱经/etc/目录下未有my.cnf配置文件,到/usr/share/mysql/下找到*.cnf文件,拷贝此中一个到/etc/并更名字为my.cnf。命令如下:

[[email protected] mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

 

 

vi纠正my.cnf的sock 文件地点:

# The MySQL server

[mysqld]
port            = 3306
#socket         = /var/lib/mysql/mysql.sock
socket         = /u01/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16M
#max_allowed_packet = 1M
max_allowed_packet=100M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

 

 

2.5 改过运行脚本:

/etc/init.d/myql
[[email protected] mysql]# vi /etc/init.d/mysql
datadir=/u01/mysql

 

 

2.6 启动mysql

[[email protected] mysql]# service mysql start
Starting MySQL.....                                        [  OK  ]

 

起步成功,查看进程:

[[email protected] mysql]# ps -ef|grep mysql
root    11512     1  2 21:02 pts/2    00:00:00 /bin/sh /usr/bin/mysqld_safe--datadir=/u01/mysql --pid-file=/u01/mysql/rac2.pid
mysql   11769 11512  5 21:02 pts/2    00:00:00 /usr/sbin/mysqld --basedir=/usr--datadir=/u01/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql--log-error=/u01/mysql/rac2.err --pid-file=/u01/mysql/rac2.pid--socket=/u01/mysql/mysql.sock --port=3306
root    11796  3799  0 21:02 pts/2    00:00:00 grep mysql

 

2.7 当中的小片头曲:

 

事前给/u01/mysql 目录赋的755 权限,不过运转报错:

[[email protected] mysql]# service mysql start
Starting MySQL....The server quit withoutupdating PID file[FAILED]ysql/rac2.pid).

 

 

查看log:

/u01/mysql/rac2.err
111130 20:59:34 [Note] /usr/sbin/mysqld:Shutdown complete

111130 20:59:34 mysqld_safe mysqld from pidfile /u01/mysql/rac2.pid ended
111130 21:02:25 mysqld_safe Starting mysqlddaemon with databases from /u01/mysql
/usr/sbin/mysqld: File './mysql-bin.~rec~'not found (Errcode: 13)
111130 21:02:25 [ERROR]MYSQL_BIN_LOG::open_purge_index_file failed to open register  file.
111130 21:02:25 [ERROR]MYSQL_BIN_LOG::open_index_file failed to sync the index file.
111130 21:02:25 [ERROR] Aborting

 

金沙澳门唯一官网, 

应当是权力缺乏,不能够创设pid 文件,赋给777 权限后,正常:

chmod  -R 777 /u01/mysql

[[email protected] mysql]# ll /u01/mysql/rac2.pid
-rw-rw---- 1 mysql mysql 6 Nov 30 21:02/u01/mysql/rac2.pid

 

大器晚成.MySQL数据文件表明 先看MySQL DataDirectory下的文本: 这当中dave,mysql 都以大家的数据库名称,大家在踏入mysql 数据库查看...

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于数据库管理,转载请注明出处:MySQL数据文件表明