2010-08-31 75 views
3

我使用以下命令將MySQL轉儲文件導入到我的MySQL服務器。表導入數據庫後不顯示錶關係

mysql> create database database_name; 
mysql> use database_name; 

在Linux命令提示符下,

$ mysql -u user_name -p database_name < /tmp/test1.dmp 

但是,在使用phyMyAdmin新創建的數據庫名稱不顯示錶關係查看數據庫。它只顯示錶格,但不顯示關係。

在mysql數據庫導入數據庫之前是否需要設置?

如何提取表之間的關係?

回答

-1

使用mysqldump,不會複製表之間的關係。
你必須親自去做。

如果您在phpmyadmin中複製數據庫,則關係保持不變。

+1

這完全不是真的.Mysqldump用於與外鍵進行一致的完整備份。 – rkosegi 2012-02-17 08:22:25

+0

所以也許我做錯了什麼,因爲我將數據複製到一個新的數據庫,我不得不手動分配關係。我問爲什麼,那是我得到的答案 – pavid 2012-02-17 11:42:21

0

我剛剛經歷了完全相同的問題。

在mysql數據庫導入數據庫之前是否需要設置?

不完全是,但它似乎安裝在Ubuntu或者任何Linux發行LAMP服務器使用MyISAM存儲引擎默認情況下,在創建表。在InnoDB上支持外鍵關係。 [more info]

以後更改存儲引擎。 [Source answer]

你必須添加行默認存儲引擎InnoDB的=在你的MySQL配置文件(根據您的操作系統上my.cnfmy.ini)的在[mysqld]部分並重新啓動mysqld服務。我不相信你可以通過phpMyAdmin來改變這一點。

在Ubuntu上,my.cnf位於/etc/mysql/的裏面。

或者,你可以使用mysql命令

的mysql> SET STORAGE_ENGINE = INNODB;

在此之後,您創建的所有表和數據庫將使用InnoDB作爲其默認存儲引擎,從而消除此後的問題。

如何提取表之間的關係?

更改數據庫的默認引擎後。您還必須更改表格的默認引擎,因爲它們尚未更改。使用下面的語法來更改存儲引擎

ALTER TABLE <table_name> ENGINE = innodb 

選擇表

  • 轉到表選項後使用phpMyAdmin

    • 轉到操作選項卡[見下文]
    • 你會看到一個選項來更改表的存儲引擎 Image showing Table Options in Phpmyadmin
    • 將存儲引擎更改爲InnoDb並命中Go

    之後,使用phpMyadmin導出數據庫或使用mysqldump轉儲數據庫。它會顯示關係。