服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 将phpstudy中的mysql迁移至Linux教程

将phpstudy中的mysql迁移至Linux教程

2020-08-29 18:02ljpwinxp Mysql

本文主要给大家介绍了关于将phpstudy中的mysql迁移至Linux的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。希望能版助到大家。

项目目的

将原来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自带的工具进行每个数据库导出

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 |

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

原文链接:http://blog.51cto.com/191226139/2104235

延伸 · 阅读

精彩推荐
  • Mysql浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2962019-06-23
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5432020-06-03
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6402020-03-13
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25