[MySQL] 数据目录的组织架构 归根到底,MySQL是运行在操作系统上的一个软件,它需要借助于文件系统存储数据,本文主要介绍MySQL数据目录的组织架构。 数据目录的位置 可以通过以下几个方法查看MySQL数据目录的位置:1)对于一个正在运行的MySQL服务器来说,可
[MySQL] 数据目录的组织架构[root@lx202 /data/mysql/data ]# ps -ef|grep mysqld root 5841 7337 0 15:09 pts/1 00:00:00 grep --color=auto mysqld root 27034 1 0 2012 ? 00:00:00 /bin/sh /opt/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/lx202.pid mysql 27889 27034 30 2012 ? 111-03:03:55 /opt/mysql/bin/mysqld --basedir=/opt/mysql --datadir=/data/mysql/data --plugin-dir=/opt/mysql/lib/mysql/plugin --user=mysql --log-error=/data/mysql/log/alert.log --open-files-limit=65535 --pid-file=/data/mysql/data/lx202.pid --socket=/opt/mysql/run/mysql.sock --port=3306其中的--datadir指定的就是数据目录的位置。 2)查看my.cnf的配置信息:
[mysqld] datadir = /data/mysql/data3)登陆数据库,运行show variables命令查看:
mysql> show variables like 'datadir'; +---------------+-------------------+ | Variable_name | Value | +---------------+-------------------+ | datadir | /data/mysql/data/ | +---------------+-------------------+ 1 row in set (0.00 sec)
[root@lx202 /data/mysql/data/portal ]# cat db.opt default-character-set=utf8 default-collation=utf8_general_ci
innodb_data_file_path = ibdata1:10G;ibdata2:5G:autoextend根据上面的配置,将在数据目录下创建两个文件ibdata1和ibdata2来存放innodb的数据。 2)独占表空间:当设置innodb_file_per_table = 1后,每个表对对应一个单独使用的表空间文件.ibd(在其对应的数据库目录下) 这里需要注意的是:即使你配置了独占表空间,共享表空间也是需要的,因为InnoDB的数据字典必须存放在共享表空间里。
[root@lx202 /data/mysql/data/mysql ]# ls proc* proc.frm proc.MYD proc.MYI procs_priv.frm procs_priv.MYD procs_priv.MYI [root@lx202 /data/mysql/data/mysql ]# ls func* func.frm func.MYD func.MYI