共計 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 問一下細節