MySQL数据库迁移注意点

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

——废话先不罗嗦了,就让这篇草草完成的博客文章全且当做个记录吧。

以前我使用的是CentOS上的MySQL,后来因为测试需要,需要将网站以及在数据库存储的数据迁移到新的系统中进行测试,目标系统为RedHat Enterprise Linux Server(RHEL)。

由于以前从来没有迁移过数据库,因此马上就遇到了难题。

还有其他问题没有列出,仅仅就权限的问题在下面的命令以及执行结果中展示。

注:部分显示被屏蔽。

 
  1. Sun 25 Mar 2012 05:07:30 PM CST  
  2. 在迁移MySQL时出现的错误/usr/bin/mysqlshow: Cannot list tables in ********: Can't read dir of './********/' (errno: 13)  
  3. Google关键词:mysql errno: 13  
  4. 解决方案:MySQL数据库的子数据库必须是mysql用户和mysql组所有,否则mysql无法读取迁移过来的数据库。 
  5. [root@localhost mysql]# ls -al 
  6. total
  7. drwxr-xr-x.  7 root root     4096 Mar 24 02:44 . 
  8. drwxr-xr-x. 48 root root     4096 Mar 24 02:45 .. 
  9. -rw-r-----.  1 root root 27262976 Mar 24 02:44 ibdata1 
  10. -rw-r-----.  1 root root  5242880 Mar 24 02:44 ib_logfile0 
  11. -rw-r-----.  1 root root  5242880 Mar 24 02:44 ib_logfile1 
  12. drwx------.  2 root root     4096 Mar 24 02:44 ********
  13. drwx------.  2 root root     4096 Mar 24 02:44 mysql 
  14. drwx------.  2 root root     4096 Mar 24 02:44 performance_schema 
  15. drwx------.  2 root root     4096 Mar 24 02:44 ********
  16. drwx------.  2 root root     4096 Mar 24 02:44 ********
  17. [root@localhost mysql]# ls /var/lib/mysql/ -al 
  18. total
  19. drwxr-xr-x.  5 mysql mysql     4096 Mar 25 16:33 . 
  20. drwxr-xr-x. 54 root  root      4096 Mar 24 04:27 .. 
  21. -rw-rw----.  1 mysql mysql 10485760 Mar 25 16:23 ibdata1 
  22. -rw-rw----.  1 mysql mysql  5242880 Mar 25 16:23 ib_logfile0 
  23. -rw-rw----.  1 mysql mysql  5242880 Mar 25 16:23 ib_logfile1 
  24. drwx------.  2 root  root      4096 Mar 25 16:33 ********
  25. drwx------.  2 mysql mysql     4096 Mar 25 16:23 mysql 
  26. srwxrwxrwx.  1 mysql mysql        0 Mar 25 16:23 mysql.sock 
  27. drwx------.  2 root  root      4096 Mar 25 16:33 ********
  28. [root@localhost mysql]# chown -R mysql:mysql ./********/
  29. [root@localhost mysql]# chown -R mysql:mysql ./********/ 
  30. [root@localhost mysql]# service mysqld restart 
  31. Stopping mysqld:                                           [  OK  ] 
  32. Starting mysqld:                                           [  OK  ] 
  33. [root@localhost mysql]# ls -al 
  34. total
  35. drwxr-xr-x.  7 root  root      4096 Mar 24 02:44 . 
  36. drwxr-xr-x. 48 root  root      4096 Mar 24 02:45 .. 
  37. -rw-r-----.  1 root  root  27262976 Mar 24 02:44 ibdata1 
  38. -rw-r-----.  1 root  root   5242880 Mar 24 02:44 ib_logfile0 
  39. -rw-r-----.  1 root  root   5242880 Mar 24 02:44 ib_logfile1 
  40. drwx------.  2 mysql mysql     4096 Mar 24 02:44 ********
  41. drwx------.  2 root  root      4096 Mar 24 02:44 mysql 
  42. drwx------.  2 root  root      4096 Mar 24 02:44 performance_schema 
  43. drwx------.  2 root  root      4096 Mar 24 02:44 ********
  44. drwx------.  2 mysql mysql     4096 Mar 24 02:44 ********
  45. [root@localhost mysql]# cd /var/lib/mysql/ 
  46. [root@localhost mysql]# ls -al 
  47. total 
  48. drwxr-xr-x.  5 mysql mysql     4096 Mar 25 17:12 . 
  49. drwxr-xr-x. 54 root  root      4096 Mar 24 04:27 .. 
  50. -rw-rw----.  1 mysql mysql 10485760 Mar 25 17:11 ibdata1 
  51. -rw-rw----.  1 mysql mysql  5242880 Mar 25 17:12 ib_logfile0 
  52. -rw-rw----.  1 mysql mysql  5242880 Mar 25 16:23 ib_logfile1 
  53. drwx------.  2 root  root      4096 Mar 25 16:33 ********
  54. drwx------.  2 mysql mysql     4096 Mar 25 16:23 mysql 
  55. srwxrwxrwx.  1 mysql mysql        0 Mar 25 17:12 mysql.sock 
  56. drwx------.  2 root  root      4096 Mar 25 16:33 ********
  57. [root@localhost mysql]# chown -R mysql:mysql ./********/ 
  58. [root@localhost mysql]# chown -R mysql:mysql ./********/ 
  59. [root@localhost mysql]# ls -al 
  60. total
  61. drwxr-xr-x.  5 mysql mysql     4096 Mar 25 17:12 . 
  62. drwxr-xr-x. 54 root  root      4096 Mar 24 04:27 .. 
  63. -rw-rw----.  1 mysql mysql 10485760 Mar 25 17:11 ibdata1 
  64. -rw-rw----.  1 mysql mysql  5242880 Mar 25 17:12 ib_logfile0 
  65. -rw-rw----.  1 mysql mysql  5242880 Mar 25 16:23 ib_logfile1 
  66. drwx------.  2 mysql mysql     4096 Mar 25 16:33 ********
  67. drwx------.  2 mysql mysql     4096 Mar 25 16:23 mysql 
  68. srwxrwxrwx.  1 mysql mysql        0 Mar 25 17:12 mysql.sock 
  69. drwx------.  2 mysql mysql     4096 Mar 25 16:33 ********
  70. [root@localhost mysql]# service mysqld restart 
  71. Stopping mysqld:                                           [  OK  ] 
  72. Starting mysqld:                                           [  OK  ] 
  73. [root@localhost mysql]#  

其实说的白了,就是需要注意权限指派。因为MySQL的数据库必须由mysql创建和拥有。因为一般来说,迁移过来的都是只具有root的权限——664。所以只有使用chown命令了。

附录:

chown的用法:

chown -R 用户名:用户组 目标文件或目录

其中R表示递归执行。



本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/816797,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.21-4.27)
本文为 “瑶池数据库动手活动及话题精选” 系列第一期,聚焦 SelectDB 日志分析、AnalyticDB Zero-ETL 集成、RDS 迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。点击链接参与,每周解锁数据库实战新场景。
用 YashanDB Migration Platform,数据库迁移不再是“高风险动作”
数据库迁移一直是企业信息化中的难题,耗时长、风险高。YashanDB Migration Platform(YMP)提供一站式解决方案,涵盖评估、改写、迁移与校验全流程。其核心能力包括SQL自动适配、智能对象迁移、高性能数据通道及数据对比校验,显著降低人力成本与业务风险。适合从Oracle、MySQL等迁移到YashanDB的企业,以及需异构整合或国产化替代的集团、政府和国企项目。YMP不仅是工具,更是推动数据库国产化的关键平台。
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.28-5.4)
本文为“瑶池数据库动手活动及话题精选”系列第二期,聚焦SelectDB日志分析、AnalyticDB Zero - ETL集成、RDS迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。上一期活动反响热烈,错过的朋友别再犹豫!点击链接参与,每周解锁数据库实战新场景,抓紧时间,精彩不容错过!
【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题
**简介**:在MySQL迁移到崖山环境时,若字段类型为char(2),而应用存储的数据仅为'0'或'1',查询时崖山会自动补空格。原因是mysql的sql_mode可能启用了PAD_CHAR_TO_FULL_LENGTH模式,导致保留CHAR类型尾随空格。解决方法是与应用确认数据需求,可将崖山环境中的char类型改为varchar类型以规避补空格问题,适用于所有版本。
【YashanDB知识库】Kettle迁移MySQL到YashanDB
本文介绍了使用Kettle将MySQL数据库中的中文数据迁移到YashanDB的方法,解决因YMP不支持Latin1字符集导致的乱码问题。提供了Windows和Linux两种环境下的操作步骤,包括配置JAVA环境、解压作业包、设置数据库连接(MySQLInput与YashanOutput)、修改表列表配置文件及运行迁移任务。Windows环境支持图形界面便于调试,Linux环境网络性能更优。通过详细的操作指南,确保数据迁移成功并可重试无冲突。
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
本文探讨了在使用YMP 23.2.1.3迁移MySQL Server字符集为latin1的中文数据至YashanDB时出现乱码的问题。问题根源在于MySQL latin1字符集存放的是实际utf8编码的数据,而YMP尚未支持此类场景。文章提供了两种解决方法:一是通过DBeaver直接迁移表数据;二是将MySQL表数据转换为Insert语句后手动插入YashanDB。同时指出,这两种方法适合单张表迁移,多表迁移可能存在兼容性问题,建议对问题表单独处理。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
担心YashanDB异构数据库迁移踩“坑”?听听大咖们怎么说
文章围绕异构数据库迁移展开,探讨了避免数据丢失、保障数据完整性、注意兼容性、提升迁移效率、做好反向演练等问题。包括迁移前完整性检查与备份,YashanDB 从内核设计和配套工具保障数据,对兼容性进行大量测试,通过合理评估和技术手段提升迁移效率,以及处理回退等内容。
下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等