Ubuntu下MySQL数据库迁移

来源:转载

Ubuntu下MySQL数据库迁移,有需要的朋友可以参考下。

参考了此篇文章

确定MySQL数据库文件位置
MySQL 命令

show variables like '%dir%';

注:用Ubuntu的apt包管理工具安装的mysql数据库,默认将数据库文件保存在/var/lib/mysql目录下

停止服务
sudo /etc/init.d/mysql stop
或者
service mysql stop

拷贝文件

sudo cp -a /var/lib/mysql /mnt/data/

注:使用cp复制命令将原数据库目录文件复制到新的目录,好处是。。万一迁移失败,恢复工作相对简单一点,等确认迁移成功再来删掉原数据库目录文件也不迟。为了不影响复制过来数据库目录文件权限和用户用户组归属问题,使用cp命令时要加上-a参数

关键步骤
修改配置文件
一共需要改3个文件 需要root权限

第一个 my.cnf文件

 vim /etc/mysql/my.cnf

将其中[mysqld]标签下的datadir属性值改为新数据库目录路径如:/data/mysql

第二个 usr.bin.mysqld文件

vim /etc/apparmor.d/usr.sbin.mysqld

找到其中的

/var/lib/mysql/ r,/var/lib/mysql/** rwk,

两行权限声明,可以在前面加上#好注释掉。然后对照格式,加入新路径的权限声明:

/data/mysql/ r,/data/mysql/** rwk,

第三个 abstractions/mysql文件

vim /etc/apparmor.d/abstractions/mysql

同样也是将新数据库文件路径中的socket文件权限添加进去,同时可以删除或者注释掉全路径中申请的权限,效果如下

# ------------------------------------------------------------------## Copyright (C) 2002-2006 Novell/SUSE# Copyright (C) 2013 Christian Boltz## This program is free software; you can redistribute it and/or# modify it under the terms of version 2 of the GNU General Public# License published by the Free Software Foundation.## -------------------------------------------------------- #/var/lib/mysql/mysql.sock rw, /data/mysql/mysql.sock rw, #照猫画虎 自己的路径 /{var/,}run/mysql/mysql.sock rw, /usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r, /usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,

最后别忘记了重启一下服务
配置文件修改成功后就可以重启数据库,重启数据库之前需要先重新载入apparmor配置文件,使用下面命令重新载入:

sudo /etc/init.d/apparmor restart

重载成功就可以使用下面命令启动数据库:

sudo /etc/init.d/mysql start

关于启动失败

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

的问题 参考此篇文章



分享给朋友:
您可能感兴趣的文章:
随机阅读: