怎么将phpstudy中的mysql迁移到Linux系统中

58次阅读
没有评论

共计 3510 个字符,预计需要花费 9 分钟才能阅读完成。

自动写代码机器人,免费开通

本篇文章为大家展示了怎么将 phpstudy 中的 mysql 迁移到 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 自带的工具进行每个数据库导出

image

我看了,也是用的 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 |

上述内容就是怎么将 phpstudy 中的 mysql 迁移到 Linux 系统中,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计3510字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)