迁移phpstudy中的mysql至Linux
admin
2023-05-01 05:02:19
0

项目目的

将原来windows环境中使用phpstudy搭建的mysql 5.5.53 中的数据迁移至新主机Linux环境中

环境情况

新主机
系统平台:
CentOS release 7.4 (Final)             内核  3.10.0-693.el7.x86_64

mysql环境:
mysql> status
Server version:     5.6.39-log MySQL Community Server (GPL)
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8

mysql> show variables like '%storage_engine%';
+----------------------------+--------+
| Variable_name              | Value  |
+----------------------------+--------+
| default_storage_engine     | InnoDB |
| default_tmp_storage_engine | InnoDB |
| storage_engine             | InnoDB |
+----------------------------+--------+
旧主机:
系统平台:
Windows 2012 R2 SE X64

mysql环境:
Server version:         5.5.53 MySQL Community Server (GPL)
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8

mysql> show variables like '%storage_engine%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
| storage_engine         | MyISAM |
+------------------------+--------+

表的存储引擎
mysql> show table status from database\G;

Engine: InnoDB
Engine: MyISAM

迁移过程

1.使用phpstudy自带的工具进行每个数据库导出

迁移phpstudy中的mysql至Linux

我看了,也是用的mysqldump操作的。

2.如果只是保留原本的表引擎,那么直接以下操作即可

mysql> create database zentao;
mysql> use zentao;
mysql> source zentao20180413161534.sql;
mysql> show tables;
+-------------------+
| Tables_in_zentao  |
+-------------------+
| zt_action         |
| zt_bug            |
| zt_build          |
...

原表引擎保持原样。
mysql> show table status from zentao\G;
*************************** 1. row ***************************
           Name: zt_action
         Engine: MyISAM
        Version: 10
     Row_format: Dynamic

3.将原有数据库中的表引擎变更为InnoDB

在导出的表结构zentao.sql中找到ENGINE=MyISAM,修改成ENGINE=InnoDB,至于你用什么方法替换,看你喜欢了。

# vim zentao.sql
:%s/ENGINE=MyISAM/ENGINE=InnoDB/g

4.导入数据到指定数据库

mysql> use zentao;
mysql> source zentao.sql;
表引擎变更为InnoDB
mysql> show table status from zentao\G;
*************************** 1. row ***************************
           Name: zt_action
         Engine: InnoDB
        Version: 10
     Row_format: Compact

5.但是有一个问题,查看表的详细信息时发现Data_free不为零,说明存在数据碎片,需要进行优化

mysql> select table_schema, table_name, data_free, engine from information_schema.tables where table_schema not in ('information_schema', 'mysql') and data_free != 0; 
+--------------+------------+-----------+--------+
| table_schema | table_name | data_free | engine |
+--------------+------------+-----------+--------+
| zentao       | zt_bug     |   4194304 | InnoDB |
| zentao       | zt_history |   4194304 | InnoDB |
+--------------+------------+-----------+--------+

6.整理有碎片的表

mysql> use zentao;
mysql> optimize table zt_bug,zt_history;
+-------------------+----------+----------+-------------------------------------------------------------------+
| Table             | Op       | Msg_type | Msg_text                                                          |
+-------------------+----------+----------+-------------------------------------------------------------------+
| zentao.zt_bug     | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| zentao.zt_bug     | optimize | status   | OK                                                                |
| zentao.zt_history | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| zentao.zt_history | optimize | status   | OK                                                                |
+-------------------+----------+----------+-------------------------------------------------------------------+
提示该表不支持 optimize,但是下边有显示OK.其实已经执行成功了。5.6.X的版本,其实已经支持Innodb了

mysql> select table_name,engine,table_rows,data_length+index_length length,DATA_FREE from information_schema.tables where TABLE_SCHEMA='zentao' and data_free =0;
+-------------------+--------+------------+---------+-----------+
| table_name        | engine | table_rows | length  | DATA_FREE |
+-------------------+--------+------------+---------+-----------+
| zt_bug            | InnoDB |       1018 | 1589248 |         0 |
| zt_history        | InnoDB |       2584 | 1589248 |         0 |

多个数据库方法同样操作即可。

相关内容

热门资讯

公职人员带头缴物业费,破不了大... 物业是“管理”也好,“服务”也好,物业公司与居民之间,就是两个自由交易,自由买卖的市场主体。居民如何...
平安融易广东分公司:以消保实效...   近日,平安融易广东分公司参加广州市地方金融管理局组织召开2025年度广州市地方金融组织监管工作会...
“前所未有”!联合国副秘书长在... 据以色列“Ynet”新闻网、“今日俄罗斯”(RT)电视台报道,联合国负责安全和安保事务的副秘书长吉勒...
瑞可达:AEC产品在AI场景的... 证券日报网5月12日讯 ,瑞可达在接受调研者提问时表示,伴随着 AI 算力等技术的不断发展,市场对高...
李彦宏:“自我进化”包含智能体... 5月13日举办的Create2026百度AI开发者大会开幕式上,百度创始人李彦宏表示,本届开幕式主题...
毕业季学生党手机推荐:5500... 毕业季来临,许多学生朋友都在寻找一款既能记录青春美好瞬间,又符合预算的拍照手机。预算在5500元左右...
金正恩视察军工企业,强调加强迫... 据凤凰卫视援引朝中社报道,朝鲜最高领导人金正恩5月11日视察朝鲜一批军工企业,了解今年上半年军火生产...
英首相斯塔默面临下台危机,这3... 英国工党日前在地方选举中大败,首相斯塔默遭遇党内逼宫。虽然他想稳住局面,但是逼宫之声仍不断高涨。斯塔...
壁仞科技申请内存访问优化方法专... 国家知识产权局信息显示,上海壁仞科技股份有限公司申请一项名为“一种内存访问优化方法、设备、存储介质及...
港商云南行|共拓“人工智能+”... 昨日召开的滇港“人工智能+”发展大会,搭建了滇港人工智能产业交流对接、成果展示、合作共赢的高端平台,...