MYSQL表空间迁移。 表空间迁移。 有如下原因你可能需要将 InnoDB 表复制到不同的数据库服务器上。 不增加生产负载的情况下生成 一个报表 在一个新的服务器上建立一个和生产上数据相同的表 做一个备份在发生问题或错误操作时用于恢复 快速将数据从一个服务器迁
MYSQL表空间迁移。表空间迁移。
有如下原因你可能需要将InnoDB表复制到不同的数据库服务器上。
- 不增加生产负载的情况下生成 一个报表
- 在一个新的服务器上建立一个和生产上数据相同的表
- 做一个备份在发生问题或错误操作时用于恢复
- 快速将数据从一个服务器迁移到另一个服务器
命令FLUSH TABLES ... FOREXPORT 使.ibd文件保持一致的状态。只有文件处于一致的状态我们才可以复制它。这个文件也会同时创建一个扩展名.cfg的二进制的文件。命令ALTER TABLE ...IMPORT TABLESPACE 会使用这个二进制文件对导入过程进行校验。
对于 MySQL 5.6.8版本, ALTER TABLE ...IMPORT TABLESPACE 命令不再一定需要一个扩展名为.cfg二进制文件了。但如果真的没有这个文件我们会收到下面这样一个警告。
Message:InnoDB: IO Read error: (2, No such file or directory) Error opening '.\
test\t.cfg',will attempt to import without schema verification
1row in set (0.00 sec)
这个特性有时候还是很有用的。比如,在模式不匹配的导入过程中,或者在一些需要恢复的情景下,元数据又不能从.ibd文件获得,则这个命令不需要一个扩展名为.cfg的二进制文件就可以导入的特性就很有用。
可迁移表空间的限制:
- innodb_file_per_table 一定要打开成 ON. 在共享表空间上的表不能使用这个特性。
- 当表处理静默状态时,只有只读语句可以使用这张表。
- 当导入表空间时,目的库的页尺寸要和源库的页尺寸相匹配。
- DISCARD TABLESPACE 不支持分区表。如果你在分区表上使用命令 ALTER TABLE ... DISCARD TABLESPACE 你会看到如下错误: ERROR 1031 (HY000): 表引擎没有这个选项。
- DISCARD TABLESPACE 命令不支持有父子关系的表。如果 foreign_key_checks 被设置成1. 在使用命令之前我们可以将这一参数设置为0. foreign_key_checks=0.
- ALTER TABLE ... IMPORT TABLESPACE 命令在导入表时不会检查主外键关系。
- 如果是实时复制的时候, innodb_file_per_table 必需在主服务和从服务上设置为ON。
下面来看一个实例:
在源服务器上我们来对city表进行迁移:
1. mysql> use test;C:\C:\ProgramData\MySQL\MySQLServer 5.6\data\world
2. C:\ProgramData\MySQL\MySQLServer 5.6\data\world>dir
3. Volume in drive C has no label.
4. Volume Serial Number is D0FA-F7A0
5. Directory of C:\ProgramData\MySQL\MySQL Server5.6\data\world
6. 10/08/2013 03:15 PM
7. 10/08/2013 03:15 PM
8. 10/08/2013 03:15 PM 8,710 city.frm
9. 10/08/2013 03:15 PM 273,293 city.MYD
10.10/08/2013 03:15 PM 43,008 city.MYI
11.10/08/2013 03:15 PM 9,172 country.frm
12.10/08/2013 03:15 PM 0 country.MYD
13.10/08/2013 03:15 PM 5,120 country.MYI
14.10/08/2013 03:15 PM 8,702 countrylanguage.frm
15.10/08/2013 03:15 PM 38,376 countrylanguage.MYD
16.10/08/2013 03:15 PM 18,432 countrylanguage.MYI
17.10/08/2013 03:15 PM 61 db.opt
18. 10File(s) 404,874 bytes
19. 2 Dir(s) 224,709,537,792 bytes free
20.mysql> use world
21.Database changed
22.mysql> show tables;
23.+-----------------+
24.| Tables_in_world |
25.+-----------------+
26.| city |
27.| country |
28.| countrylanguage |
29.+-----------------+
30.3 rows in set (0.00 sec)
31.mysql> flush table cityfor export;
32.ERROR 1031 (HY000): Table storage engine for 'city' doesn't havethis option
33.mysql> alter table cityengine=innodb;
34.mysql> flush table cityfor export; --对表加锁。
35.Query OK, 0 rows affected (0.18 sec)
36.
复制表文件到目标位置
- C:\ProgramData\MySQL\MySQL Server 5.6\data\world>mkdir city
- C:\ProgramData\MySQL\MySQL Server 5.6\data\world>copy city.* city
- city.cfg
- city.frm
- city.ibd
- 3 file(s) copied.
- C:\ProgramData\MySQL\MySQL Server 5.6\data\world>cd city
- C:\ProgramData\MySQL\MySQL Server 5.6\data\world\city>dir
- Volume in drive C has no label.
- Volume Serial Number is D0FA-F7A0
- Directory of C:\ProgramData\MySQL\MySQL Server 5.6\data\world\city
- 10/10/2013 10:58 AM
. - 10/10/2013 10:58 AM
.. - 10/10/2013 10:53 AM 582 city.cfg
- 10/10/2013 10:53 AM 8,710 city.frm
- 10/10/2013 10:53 AM 475,136 city.ibd
- 3 File(s) 484,428 bytes
- 2 Dir(s) 224,676,024,320 bytes free
在目标库上删除可能存在的同名表空间。
- mysql> unlock tables;--释放锁。
2. Query OK, 0 rowsaffected (0.07 sec)
3. mysql> alter table city discard tablespace;删除可能存在的同名表空间
4. Query OK, 0 rowsaffected (0.23 sec)
5. mysql> selectcount(*) from city;
6. ERROR 1814 (HY000):Tablespace has been discarded for table 'city'
7. mysql> alter tablecity import tablespace;
8. ERROR 1146 (42S02):Table 'world.city' doesn't exist
9. C:\ProgramData\MySQL\MySQLServer 5.6\data\world\city>copy city.* ..
10.city.cfg
11.city.frm
12.Overwrite ..\city.frm? (Yes/No/All): yes
13.Access is denied.
14.city.ibd
15. 2 file(s) copied.
16.C:\ProgramData\MySQL\MySQL Server 5.6\data\world\city>
17.mysql> alter table city import tablespace;
18.Query OK, 0 rows affected (0.94 sec)
19.mysql> select count(*) from city;
20.+----------+
21.| count(*) |
22.+----------+
23.| 4079 |
24.+----------+
25.1 row in set (0.08 sec)
表空间被成功。

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

構建MySQL數據庫的步驟包括:1.創建數據庫和表,2.插入數據,3.進行查詢。首先,使用CREATEDATABASE和CREATETABLE語句創建數據庫和表,然後用INSERTINTO語句插入數據,最後用SELECT語句查詢數據。

MySQL適合初學者,因為它易用且功能強大。 1.MySQL是關係型數據庫,使用SQL進行CRUD操作。 2.安裝簡單,需配置root用戶密碼。 3.使用INSERT、UPDATE、DELETE、SELECT進行數據操作。 4.複雜查詢可使用ORDERBY、WHERE和JOIN。 5.調試需檢查語法,使用EXPLAIN分析查詢。 6.優化建議包括使用索引、選擇合適數據類型和良好編程習慣。

MySQL適合初學者,因為:1)易於安裝和配置,2)有豐富的學習資源,3)SQL語法直觀,4)工具支持強大。儘管如此,初學者需克服數據庫設計、查詢優化、安全管理和數據備份等挑戰。

是的,sqlisaprogramminglanguges pecialized fordatamanage.1)它具有焦點,focusingonwhattoachieveratherthanhow.2)sqlisessential forquerying forquerying,插入,更新,更新,和detletingdatainrelationalDatabases.3)

ACID屬性包括原子性、一致性、隔離性和持久性,是數據庫設計的基石。 1.原子性確保事務要么完全成功,要么完全失敗。 2.一致性保證數據庫在事務前後保持一致狀態。 3.隔離性確保事務之間互不干擾。 4.持久性確保事務提交後數據永久保存。

MySQL既是數據庫管理系統(DBMS),也與編程語言緊密相關。 1)作為DBMS,MySQL用於存儲、組織和檢索數據,優化索引可提高查詢性能。 2)通過SQL與編程語言結合,嵌入在如Python中,使用ORM工具如SQLAlchemy可簡化操作。 3)性能優化包括索引、查詢、緩存、分庫分錶和事務管理。

MySQL使用SQL命令管理數據。 1.基本命令包括SELECT、INSERT、UPDATE和DELETE。 2.高級用法涉及JOIN、子查詢和聚合函數。 3.常見錯誤有語法、邏輯和性能問題。 4.優化技巧包括使用索引、避免SELECT*和使用LIMIT。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境