• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    将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 |

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

    您可能感兴趣的文章:
    • 完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存
    • phpstudy2018升级MySQL5.5为5.7教程(图文)
    • phpStudy中升级MySQL版本到5.7.17的方法步骤
    • Windows系统下解决PhPStudy MySQL启动失败问题
    上一篇:MySQL如何创建触发器
    下一篇:mysql zip 文件安装教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    将phpstudy中的mysql迁移至Linux教程 将,phpstudy,中的,mysql,迁,