Mysql数据库迁移

今天把Mysql数据库从服务器A迁移到了服务器B。把过程和遇到的问题记录一下,备忘。

说明:
用的直接拷贝迁移数据文件的方式。在Ubuntu 16.04上操作。以user数据库迁移为例。


1.要先确认目标服务器上的mysql和源服务器上的版本  
目标服务器版本最好大于源服务器上的,一致最好。确保源服务器上支持的特性,目标服务器上都支持。假如目标服务器mysql服务器版本号小于源服务器,特别注意下数据库引擎目标服务器是否支持。

2.在源数据库上查询数据文件目录地址    

mysql> show variables like '%dir%';
+-----------------------------------------+----------------------------+
| Variable_name                           | Value                      |
+-----------------------------------------+----------------------------+
| basedir                                 | /usr                       |
| binlog_direct_non_transactional_updates | OFF                        |
| character_sets_dir                      | /usr/share/mysql/charsets/ |
| datadir                                 | /var/lib/mysql/            |
| ignore_db_dirs                          |                            |
| innodb_data_home_dir                    |                            |
| innodb_log_group_home_dir               | ./                         |
| innodb_max_dirty_pages_pct              | 75                         |
| innodb_max_dirty_pages_pct_lwm          | 0                          |
| innodb_undo_directory                   | .                          |
| lc_messages_dir                         | /usr/share/mysql/          |
| plugin_dir                              | /usr/lib/mysql/plugin/     |
| slave_load_tmpdir                       | /tmp                       |
| tmpdir                                  | /tmp                       |
+-----------------------------------------+----------------------------+

其中datadir项中的值就是数据目录地址。要迁移的数据库文件,就在此目录下同名目录。例如我们要迁移user数据库,那么在此目录下,就存在user目录,这就是数据库对应的数据。

3.暂停目标服务器和源服务器上mysql服务

sudo service mysql stop

4.将数据库文件夹拷贝到目标服务器上
可以使用FTP,将数据库目录拷贝到目标服务器的对应数据目录。数据目录查询方法同步骤一。一般默认为/var/lib/mysql/。

5.修改数据库目录的所有者
将拷贝的数据库目录,修改所有者为mysql

sudo chown -R mysql:mysql user

6.开启mysql服务

sudo service mysql start

注意:
若写数据库操作时报:Table is read only,查看数据库目录的所有者是否修改了mysql。若还不行,试试:

mysqladmin -u root -p flush-tables   

 

转载于:https://my.oschina.net/u/2396236/blog/1602595

### MySQL 数据库迁移的方法 #### 准备工作 在进行MySQL数据库迁移之前,需完成一系列准备工作以确保过程顺利。首要的是明确迁移的具体目的和需求,包括确认哪些数据库需要被迁移以及目标平台的相关配置(如新服务器的硬件规格、操作系统类型及其版本号还有MySQL版本等)。此外,还需规划好整个迁移的时间安排,并对即将迁移的数据进行全面评估,比如数据库规模、内部结构复杂程度、数据记录数量、索引情况及可能存在的触发器逻辑等内容[^1]。 接着,在正式开始迁移动作前,保障所有重要资料的安全至关重要。为此建议采用`mysqldump`命令或者其他可靠的MySQL专用备份解决方案来进行完整的数据备份操作,从而有效规避因意外状况而导致的数据遗失风险[^2]。 #### 常见迁移方式 一种广泛使用的迁移手段便是借助`mysqldump`工具导出SQL脚本文件再导入至新的环境中去实现跨平台转移实例。例如当开发者最初在一个Windows系统环境下构建应用项目连同其关联的小型测试性质MySQL数据库一起运行良好之后决定将其部署上线至Linux生产级服务端时,则可利用如下所示代码片段先生成兼容的目标格式转储文档: ```bash mysqldump -u username -p database_name > dump.sql ``` 随后将产生的`.sql`文件传输到目的地机器并通过下面指令加载回相应的新建空白Schema里头即可完成基本层面的功能平滑过渡: ```bash mysql -u username -p new_database < dump.sql ``` 对于更大体量级别的场景比如说接近六十GB容量范围内的企业商用案例而言,考虑到实时在线业务连续性的严格要求往往会选择更为高效专业的第三方软件辅助达成任务指标。像提到过的`DB2DB`就是这样一款专注于解决大规模关系型数据库间互换难题的产品选项之一它不仅具备显著优于传统手动流程的速度优势同时也能够很好地保持原有元信息特性不变以便后续维护管理工作的便捷开展[^3][^4]。 #### 注意事项 无论采取何种具体的实施方案都应当密切关注几个核心要点:首先是验证最终结果准确性即重新连接应用程序确认一切功能正常运作;其次是检查权限设定是否恰当无误以免影响正常使用体验;最后还要记得清理掉临时创建的各种中间产物释放多余资源占用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值