MYSQL表空间迁徙
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)
表空间被成功。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

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

SublimeText3漢化版
中文版,非常好用

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

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

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

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

優雅安裝 MySQL 的關鍵在於添加 MySQL 官方倉庫。具體步驟如下:下載 MySQL 官方 GPG 密鑰,防止釣魚攻擊。添加 MySQL 倉庫文件:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm更新 yum 倉庫緩存:yum update安裝 MySQL:yum install mysql-server啟動 MySQL 服務:systemctl start mysqld設置開機自啟動

在 CentOS 上安裝 MySQL 涉及以下步驟:添加合適的 MySQL yum 源。執行 yum install mysql-server 命令以安裝 MySQL 服務器。使用 mysql_secure_installation 命令進行安全設置,例如設置 root 用戶密碼。根據需要自定義 MySQL 配置文件。調整 MySQL 參數和優化數據庫以提升性能。

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。
