189 8069 5689

mysql怎么从表空间 mysql有没有表空间

mysql表空间如何导出?

你使用共享表空间。需要把原来的数据导出。后重新创建数据库才能使用。

固原网站建设公司创新互联建站,固原网站设计制作,有大型网站制作公司丰富经验。已为固原成百上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的固原做网站的公司定做!

[mysqld4]

#skip-grant-tables

#default-storage-engine=innodb

innodb_file_per_table=0

user=mysql

pid-file=/var/lib/mysql3310/mysql4db.pid

port=3310

socket=/var/lib/mysql3310/mysql3310.sock

datadir=/var/lib/mysql3310/

log-error=/var/log/mysql4.log

server_id=4

log-bin

expire_logs_days=7

#innodb_data_home_dir=/var/lib/mysql3310/

#innodb_log_group_home_dir=/var/lib/mysql3310/

#innodb_data_file_path=ibdata_1:50M:autoextend

#innodb_file_per_table=0

#innodb_data_file_path=ibdata_1:50M:autoextend

只要添加上面的

innodb_file_per_table=0

这一条语句。

那么启动的时候会自动创建数据文件。

创建表的时候就会

,目录下面只会创建frm

格式文件,不会创建*.idb

文件。数据会存储在系统表空间中。

linux系统中mysql数据库怎么查看表空间

linux系统进入mysql数据库的方法:

连接MYSQL:

格式: mysql -h主机地址 -u用户名 -p用户密码

1、连接到本机上的MYSQL。

首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql

2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -uroot -pabcd123(注:u与root可以不用加空格,其它也一样)

3、退出MYSQL命令: exit (回车)

一个建库和建表以及插入数据的实例:

create database school; //建立库SCHOOL

use school; //打开库SCHOOL

create table teacher //建立表TEACHER

(

id int(3) auto_increment not null primary key, //id设置为主关键字,并自动设值,也就是添加的时候,你不必向ID字段写内容

name char(10) not null,

address varchar(50) default '深圳', //设置默值为深圳

year date

); //建表结束

//以下为插入字段

insert into teacher values('','glchengang','建平一中','1976-10-10'); //ID不用写内容

insert into teacher values('','jack','建平一中','1975-12-23');

mysql如何建表空间

在mysql中,也出现了类似oracle中的表空间概念。

不过二者好像不同?具体不太清楚oracle是怎么回事。

mysql表空间是什么概念呢?

开启了Innodb的innodb_file_per_table这个参数之后【innodb_file_per_table = 1】,也就是启用InnoDB的独立表空间模式,便于管理。此时,在新建的innodb表的数据库目录下会多出来一个.ibd这个文件。这个就是此时的数据文件了。mysql会把这个innodb表的数据存放在这个文件中。并且每个innodb表此时都会对应这么一个ibd文件。

看官方文档:

If innodb_file_per_table is disabled (the default), InnoDB creates tables in the system tablespace. Ifinnodb_file_per_table is enabled, InnoDB creates each new table using its own .ibd file for storing data and indexes, rather than in the system tablespace.

那么这样做有什么好处呢?

可以实现单表在不同的数据库之间移动。具体怎么移动呢?假设有两个数据库,一个test,一个tt。

InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,这样就感觉不爽,增删数据库的时候,ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整一 下innodb_open_files 的值。

-------------------------------------------------------------------------------

需要说明的是:

1、设置了独立表空间之后,如果改成了共享表空间,那么,此时如果执行表的插入操作,数据会存放在哪里呢?

对于之前已经存在了的表,还是存放在独立表空间。对于新建的表,就会存放在共享表空间了。

2、如果一开始用了独立表空间,后来改了innodb_file_per_table变量的值,改成独立表空间了,那么数据如何存储?

对于已经存在了的innodb引擎的表来说,数据还是存放在共享表空间的,而此时如果创建了新的表,那么就会在数据库的目录中多出一个.ibd的文件用于存储这个新表的数据。

总结上面的1、2,就是:原来的还是按照原来的方式存储。新的表按照新的规则来存储。


本文名称:mysql怎么从表空间 mysql有没有表空间
文章位置:http://jkwzsj.com/article/hhsiei.html

其他资讯