MySQL数据库迁移注意点

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/816797

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

以前我使用的是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表示递归执行。

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/816797

时间: 2024-09-11 07:52:19

MySQL数据库迁移注意点的相关文章

将Mysql数据库迁移到Windows Azure上的SQL database中

Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure上可以提供多种Database As a service.其中SQL database是由微软提供发布并提供支持的.Azure上的SQL database与传统的SQL server的区别在于,Azure提供了原生的数据库高可用(一主两备).可在数秒内创建新的数据库实例.可快速进行数据库扩容.支持Federation.提供了全Web化的管理和设计界面.简便的备份

mysql数据库迁移至Oracle数据库_Mysql

本文实例为大家分享了java获取不同路径的方法,供大家参考,具体内容如下 1.使用工具: (1) Navicat Premium (2) PL/SQL Developer 11.0 (3) Oracle SQL Developer 4.0.0.12.84(点击可进入下载页面) 特别说明:最初我用的一直是高版本的SQL Developer,但在数据库移植到大概两分钟的时候,总是报错,而错误信息又不明确.最后换成 Oracle SQL Developer 4.0.0.12.84,才把问题解决掉!如果

金融企业从自建MySQL数据库迁移RDS方案

为什么要从自建数据库迁移RDS 由于金融行业的特点,对于数据库的安全性.高可用.一致性提出了更高的要求,而RDS金融版就是专门为金融客户量身定做的,它具有以下优点: 高安全 具备提供IP白名单,防SQL注入,SSL加密传输,TDE数据加密等功能的能力 安全事前防护可设置允许连接实例的IP白名单,严格控制访问源:同时支持通过VPC来获取更高程度的网络访问控制 安全事中防护公网地址自动开启DDoS防护,保持业务永续:访问链路支持SSL加密,杜绝中间人攻击行为:支持开启透明数据加密(TDE),数据落盘

MySQL数据库迁移data文件夹位置详细步骤_Mysql

由于yum安装mysql的时候,数据库的data目录默认是在/var/lib下,出于数据安全性的考虑需要把它挪到/data分区.步骤如下:一.关闭apache和mysql. 复制代码 代码如下: service httpd stopservice mysqld stop 二.将/var/lib下的mysql目录mv(移动)到data目录.为什么要用mv命令,而不用cp命令呢?应为linux文件系统特殊性,mv命令能保留文件的所有属性和权限,尤其是selinux属性.如果用cp命令,就需要回头再去

MySQL数据库迁移data文件夹位置详细步骤

由于yum安装mysql的时候,数据库的data目录默认是在/var/lib下,出于数据安全性的考虑需要把它挪到/data分区.步骤如下:一.关闭apache和mysql. service httpd stopservice mysqld stop二.将/var/lib下的mysql目录mv(移动)到data目录.为什么要用mv命令,而不用cp命令呢?应为linux文件系统特殊性,mv命令能保留文件的所有属性和权限,尤其是selinux属性.如果用cp命令,就需要回头再去设置mysql文件夹的s

CentOS6下MySQL数据库迁移MariaDB教程

VPS操作系统是CentOS 6,mysql版本是5.5.31(使用了 REMI 源). A. 先配置 MariaDB 的安装源. 目前 MariaDB 的主版本是 MariaDB 5.5.33a Stable,将下面的安装源配置保存为MariaDB.repo,上传到服务器的 /etc/yum.repos.d 文件夹: For CentOS 6 32 bit: [mariadb] name = MariaDB enable=1 priority=3 baseurl = http://yum.ma

MySQL数据库数据迁移到SQLserver

最近因工作需要,需要将mysql数据库迁移到sqlserver,仅仅是数据迁移,因此相对比较简单.对于mysql迁移到sqlserver,我们需要使用到mysql odbc驱动,然后透过sqlserver链接服务器的方式来访问mysql.具体见下文描述. 一. 迁移环境 源:RHEL 6.5 + MySQL 5.6.26 目标: Windows 7 64 + SQLserver 2014 二.准备迁移环境 1.下载及安装ODBC驱动 http://dev.mysql.com/downloads/

将 Ghost 从 SQLite3 数据库迁移到 MySQL 数据库_Mysql

下面我们就来说说如何从 SQLite 迁移到 MySQL . 准备 首先你要已经安装好 MySQL 数据库.如果你用的是 Ubuntu 系统,请参考这篇文章.其他系统请参考各自对应的文档. 导出当前数据 进入 http://your-domain.com/ghost/debug 页面: 点击蓝色的 EXPORT 按钮将当前数据库中的所有数据导出并下载到本地,默认文件名是 GhostData.json . 切换数据库配置 编辑 config.js 文件,在 production 配置段将数据库配置

mysql 通过拷贝数据文件的方式进行数据库迁移实例_Mysql

mysql通过拷贝数据文件的方式进行数据库迁移 --环境windows 将源机器A数据库拷贝到目标机器B: 我先在目标机器B上安装MySQL,停止mysql服务,然后将源机器A的data下关于数据库的文件和ibdata1拷贝过去,其余不用拷贝.如图: 源机器A: 启动目标数据库服务net start mysql,即可查看到导过来的所有数据库了. 注意:ibdata1一定不要忘记拷贝,且要拷贝到准确的位置(如我目标机器的ibdata1在E:\MySQL Datafiles,不在data路径下,我就