`
xgbjmxn
  • 浏览: 261002 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

mysql数据文件转移的问题

阅读更多
mysql数据文件转移的问题
2011-07-31 17:28

http://database.51cto.com/art/200905/125833.htm

1、关掉数据库 /etc/init.d/mysql stop

2、假设我们指定的数据库文件目录为/db
创建目录 /db,并修改其拥有者及所属群组为mysql:mysql.命令:chown mysql:mysql db
修改mysql配置文件my.cnf:将datadir=/var/lib/mysql改为datadir=/db

3、修改ubuntu中的安全设置
/etc/apparmor.d/usr.sbin.mysqld 在这个文件里面加入权限设定,将原来的
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
更换成
/db/mysql/ r,
/db/mysql/** rwk,

4、重新初始化数据文件:执行mysql_install_db

5、启动mysql数据库服务:sudo /etc/init.d/mysql start

6、设置mysql数据库root密码:mysqladmin -u root password ‘new-password’

7、在/etc/mysql/debian.cnf中找到你的debian-sys-maint用户密码,在mysql中重新建立这个用户.

此时我们会发现/db目录下出现mysql相关文件。如果我们新建数据库,其数据库文件也将出现在db目录下。表示我们修改的mysql数据库文件存储目 录正确。

在Ubuntu下安装的MySQL默认配置下的数据库文件存储位置是在/var/lib/mysql,如果你没有为/var挂载在一个足够大的分区 中,那么/var将和根目录/同在一个分区共享使用可用空间。大多数用户通常会为/home挂载一个独立的分区,所以这篇文章就是准备讲如何更改 MySQL数据库存储位置到其它挂载位置的。

AD:

MySQL数据库的文件结构是怎么样的呢,对于这样子创建的数据库命令:

CREATE DATABASE mysqldb

在默认的数据库存储位置下就会有个文件夹mysqldb。要操作数据库首先得停止数据库进程:

$sudo /etc/init.d/mysql stop

本文以转移到/home/mysql这个位置为例,下面命令将原有数据库转移到新位置:

$sudo cp –R –p /var/lib/mysql /home/mysql

编辑MySQL配置文件:

$gksu gedit /etc/mysql/my.cnf

在 gedit中找到datadir这一行,将后面等于号之后的内容更改为/home/mysql然后保存退出。自Ubuntu 7.10开始,

Ubuntu就开始使用一种安全软件叫做AppArmor,这个安全软件会在你的文件系统中创建一个允许应用程序访问的区域(专业术语:应 用程序访问控制)。如果不为MySQL修改AppArmor配置文件,永远也无法为新设置的数据库存储位置启动

数据库服务。配置AppArmor:

$sudo nano /etc/apparmor.d/usr.sbin.mysqld

在gedit中找到/var/lib/mysql/这两行,注释掉这两行,在这两行前分别添加一个符号“#”即可注释,在这两行之前或

之后加上下面内容:

/home/mysql/ r,
/home/mysql/** rwk,

保存后退出,执行命令:

$sudo /etc/init.d/apparmor reload

返回Reloading AppArmor profiles : done.即可以重启MySQL服务:

$sudo /etc/init.d/mysql start

至此MySQL数据库存储位置就更改完毕了。

FAQ:

Q:当我运行$sudo /etc/init.d/apparmor reload却返回信息

Skipping profile /etc/apparmor.d/usr.sbin.mysqld~
: Warning.

并且也无法启动MySQL服务,怎么办呢?

A:出 现这个问题可能是因为你使用了$sudo gedit或$gksu gedit这样子的命令来编辑usr.sbin.mysqld这个配置文件的,这两个图形界面文本编辑器会在相同位置生成一个 usr.sbin.mysqld~的文件,从而影响了AppArmor读取配置文件,出现这个问题先删除这个usr.sbin.mysqld~文件:

$sudo rm /etc/apparmor.d/usr.sbin.mysqld~

然后使用$sudo nano这个终端文本编辑器来编辑配置文件即可。



Ubuntu下MySQL中的data文件夹放在哪里 

/var/lib/mysql


sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
sudo gedit /etc/mysql/my.cnf


ubuntu下mysql的数据文件默认存放于/var/lib/mysql/mysql下,可以通过在/etc/mysql/my.cnf 中修改:
将datadir字段改为新的数据库地址
然后移动 (they are in /var/lib/mysql/mysql):
sudo mv /var/lib/mysql/mysql mynewdir/
最后重启mysql
/etc/init.d/mysql restart
分享到:
评论

相关推荐

    mysql4数据库转移到mysql5

    mysql4数据库转移到mysql5,首先将文件的编码转换为utf-8 如果使用editplus,打开文件,

    php下转移sqlserver数据到mysql

    运行本文件一次即可,如运行两次,将清空mysql相关表的所有数据后,再次复制,不会累加。复制耗时根据数据量大小而定,每秒可复制5M左右数据,如果要复制的数据量很大,请临时设置php.ini中的timeout的时间更多些,...

    mysql2influxdb:将时间序列数据从mysql导入InfluxDB

    将时间序列数据从 mysql 导入 InfluxDB。 安装 如果您使用的是 Debian/Ubuntu,则可以使用以下命令安装依赖项: $ sudo apt-get install python-influxdb $ sudo apt-get install python-mysqldb 如何使用 由于这...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    24-小试牛刀初步增量恢复MySQL数据实战.avi 25-某企业运维全套面试题解答.avi 26-DML之修改表及企业严重故障案例解决实战.avi 27-删除表中的数据机企业故障案例及防止方法.avi 28-增删改表的字段实战详解.avi 29-...

    mysql数据迁移到Oracle的正确方法

    现在要把数据从mysql的student转移到Oracle的from_mysql中去,这里笔者借助kettle的spoon工具,可以快速的实现这个功能。 首先,打开spoon,新建一个转换,命名为表输入到表输出。然后在核心对象中的输入那里找到表...

    解析MYSQL 数据库导入SQL 文件出现乱码的问题

    导入数据时,如果目标数据库或表...2006 解决方法mysql导入sql文件报错 ERROR 2013 2006 2002mysql导入sql文件命令和mysql远程登陆使用详解在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)Mysql命令行导入s

    c#对Excel表以及数据库表互操作(c/s结构)与解决mysql中文乱码问题

    实现了Excel表数据与MySQL数据库之间(批量)转移,并解决了中文乱码问题,程序中同样实现了数据的增添修改,等一系列操作,并添加了智能的提示功能,数据库文件在debug目录下加载到mysql数据库中直接就可以运行程序

    Mysql 切换数据存储目录的实现方法

    1、将现有的数据存储目录,转移到别的存储空间,今日转移时 50G的数据文件,拷贝了 30多分钟,有些慢。 2、修改my.cf配置文件 修改 存储目录 [mysqld] datadir=/home/mysql socket=/home/mysql/mysql.sock [mysql_...

    简述MySQL分片中快速数据迁移

    travelrecord表定义为10个分片,尝试将10个分片中的2个分片转移到第二台MySQL上,并完成记录, 要求最快的数据迁移做法,中断业务时间最短 思路一利用mysqldump: 在这里我们只针对mysql innodb engine,而且配置bin-...

    mysql面试题,包含面经文档、技术要点或面试编程题等

    - 存储结构方面,MyISAM将每张表存放在frm(表格定义)、MYD(数据文件)、MYI(索引文件)三个文件中,而InnoDB的所有表都保存在同一个数据文件中。 - 在存储空间上,由于MyISAM的数据是以文件的形式存储,所以占用...

    mysql数据库规范.docx

    禁止使用存储过程、视图、触发器、Event 高并发大数据时,解放数据库CPU,将计算转移到服务层 禁止存储大文件或者大照片 命名规范 线上环境:dj.xxx.db 业务名称:xxx 开发环境:dj.xxx.rdb 业务名称:xxx 测试环境...

    CentOS Linux更改MySQL数据库目录位置具体操作

    由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录,本文整理了一些MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql目录的具体操作,感兴趣的你...

    DBConvert Studio v.1.4.7

    DBConvert Studio是一款可以帮助您转移电脑数据库文件,可以让您将MySQL上的数据转移到服务器,也可以转移到其他数据库上使用,大家都知道数据库上保存的资源是非常多的,如果利用人工的方式转移,不仅速度缓慢,也...

    酒店源码java-file_regEx_mysql_io:从txt文件中读取字符串,通过正则表达式提取关键字,并插入mysql数据库的一个小d

    从txt文件中读取字符串,通过正则表达式提取关键字,并插入mysql数据库的一个小demo. 前言 ​ 因为最近公司需要用到携程上面的一些酒店数据,由于没有接触过爬虫,所以只能投机取巧去爬html源文件的代码,然后在源...

    在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)

    因导出sql文件 在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述。 上传sql文件 前面说过了,我们没有在云主机上安装ftp,怎么上传呢? 打开ftp客户端软件,例如filezilla,使用...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    数据库恢复实际上就是利用技术手段把不可见或不可正常运行的数据文件恢复成正常运行的过程。 方法一 如何附加数据库(企业管理器) 1、展开服务器组,然后展开服务器。 2、右击"数据库",然后选择"所有任务"/...

    mysql5的sql文件导入到mysql4的方法

    有时候用到将高版本的数据库转移到低版本的数据库中,下面是mysql5数据转到mysql4的方法

    java8源码-common-insert:一个可以按规则快速批量生成测试数据并支持多种数据源类型的开发测试工具

    如果是mysql数据源则直接由mysql执行,如果是别的数据源则使用sql-executor解析sql并调用对应数据源的api执行。 详情请转移到以下链接: 快速开始 整个jar包是个springboot的web项目,启动后会在本地运行一个tomcat...

    数据库迁移

    用作数据库里的数据迁移,需要在数据转移前,两边数据库的表结构一致(提前创建好数据库表),保证从一边读取出来的数据能够正常插入另一边。数据迁移时 按照数据插入顺序来读取,批量插入迁移目标中,迁移过程中,...

    MySql-bot:一个面向初学者的MySql数据库示例。 | 适用于初学者的Mysql数据库示例

    让我们下载包含文件的存档(您可以通过单击来完成此操作) 要使用程序集,我们需要做一些事情: 需要安装 安装后,我们需要在网站上注册注册后,转到“数据库”选项卡找到“创建新数据库”按钮我们会在记事本中写下...

Global site tag (gtag.js) - Google Analytics