- 论坛徽章:
- 0
|
一、 数据目录的位置 这是默认的mysql目录结构 bin info libexec share var include lib man sql-bench
一个缺省数据目录被编译进了服务器,如果你从一个源代码分发安装MySQL,典型的缺省目录为 /usr/local/var,如果从RPM文件安装则为/var/lib/mysql,如果从一个二进制分发安装则是 /usr/local/mysql/data。 作为一名MySQL管理员,你应该知道你的数据目录在哪里。如果你运行多个服务器,你应该是到所有数据目录 在哪里,但是如果你不知道确切的位置,由多种方法找到它:
1、使用mysqladmin variables从你的服务器直接获得数据目录路径名。查找datadir变量的值,在Unix上,其输出类似于: %mysqladmin -u username -p'*****' variables
+----------------------+----------------------+ | variable_name | Value | +----------------------+----------------------+ | back_log | 5 | | connect_timeout | 5 | | basedir | /var/local/ | | datadir | /usr/local/var/ | .... 2、查找mysql运行的路径 %ps -ef | grep mysqld
二、数据目录结构 每个数据库对应于数据目录下的一个目录。 在一个数据库中的表对应于数据目录下的文件。 数据目录也包含由服务器产生的几个状态文件,如日志文件。这些文件提供了关于服务器操作的重要信息。 对管理特别在出了问题而试图确定问题原因时很有价值。
1、数据库表的表示 数据库目录中有3种文件:一个样式(描述文件)、一个数据文件和一个索引文件。每个文件的基本名是表 名,文件名扩展名代表文件类型。扩展名如下表。数据和索引文件的扩展名指出表使用老式IASM索引或新式 MyISAM索引。
MySQL文件类型 文件类型 文件名扩展名 文件内容 样式文件 .frm 描述表的结构(它的列、列类型、索引等) 数据文件 .ISD(ISAM)或.MYD(MyISAM) 包含表里所有的数据 索引文件 .ISM(ISAM)或.MYI(MyISAM) 包含数据文件上的所有索引的索引树
当你发出一条CREATE TABLE tbl_name时语句定义表的结构时,服务器创建一个名为tbl_name.frm的文件,它 包括该结构的内部编码,同时也创建一个空数据和索引文件,初始化为包含指出无记录和无索引的信息(如 果CREATE TABLE语句包括索引指定,索引文件反映出这些索引)。对应于表的文件的属主和模式被设置为只 允许MySQL服务器用户访问。
下面介绍一下常用的mysql命令 进入mysql数据库 #./mysql -u 用户名 -p'密码' 查看所有的数据库 mysql> show databases; 进入一个特定的数据库 mysql> use 数据库名; 查看数据库里所有的表 mysql> show tables; 把表改名 mysql> alter table 表名1 rename 表名2; 例子:mysql>alter table dept rename dept2;
2、 建索引的注意事项: 先要把要加索引的字段设为非空 mysql> alter table 表名 change 字段名 字段名 字段描述 not null; 例子: 我们创建这样一个表 mysql> create table employee ( id int(5) not null, depno int(5), name varchar(20) not null, cardnumber bigint(15) not null);
mysql> alter table employee change depno depno int(5) not null; 加索引 mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]); 例子: mysql> alter table employee add index emp_name (name);
加主关键字的索引 mysql> alter table 表名 add primary key (字段名); 例子: mysql> alter table employee add primary key(id);
加唯一限制条件的索引 mysql> alter table 表名 add unique 索引名 (字段名); 例子: mysql> alter table employee add unique emp_name2(cardnumber);
查看某个表的索引 mysql> show index from 表名; 例子: mysql> show index from employee;
删除某个索引 mysql> alter table 表名 drop index 索引名; 例子: mysql>alter table employee drop index emp_name; |
|