我使用以下命令将MySQL转储文件导入MySQL服务器。
mysql> create database database_name;
mysql> use database_name;
在Linux命令提示符下,
$ mysql -u user_name -p database_name < /tmp/test1.dmp
但是,在使用phyMyAdmin
查看数据库时,新创建的database_name不显示表关系。它只显示表格,但不显示关系。
在mysql数据库中导入数据库之前是否需要设置?
如何提取表之间的关系?
答案 0 :(得分:0)
我刚刚遇到了同样的问题。
在mysql数据库中导入数据库之前是否需要设置?
不完全是,但是在创建表时,默认情况下,在Ubuntu上安装LAMP Server或任何Linux发行版都默认使用MyISAM
存储引擎。在InnoDB上支持外键关系。 [more info]
之后更改存储引擎。 [Source answer]
您必须在mysql配置文件[
my.cnf
或my.ini
的[mysqld]部分下添加default-storage-engine = InnoDB,具体取决于您的操作系统)并重新启动mysqld服务。我不相信你可以通过phpMyAdmin
改变这一点。
在ubuntu上,my.cnf
位于/etc/mysql/
内。
或者,您可以使用mysql命令
的MySQL&GT; SET storage_engine = InnoDb;
在此之后,您在此之后创建的所有表和数据库将使用InnoDB作为其默认存储引擎,从而消除了此后的问题。
如何提取表之间的关系?
更改数据库的默认引擎后。您还必须更改表的默认引擎,因为它们尚未更改。使用以下语法更改存储引擎
ALTER TABLE <table_name> ENGINE = innodb
使用phpMyAdmin
InnoDb
并点击Go
在此之后,使用phpMyadmin
导出数据库或使用mysqldump
转储数据库。它将显示关系。