1.检查mysql数据库存放目录

mysql -u root -prootadmin

show variables like '%dir%';

quit;

(查看datadir 那一行所指的路径)

2.停止mysql服务

service mysqld stop

3.创建新的数据库存放目录

mkdir /data/mysql

4.移动/复制之前存放数据库目录文件,到新的数据库存放目录位置

cp -R /usr/local/mysql/data/* /data/mysql/    #或mv /usr/local/mysql/data/* /data/mysql

5.修改mysql数据库目录权限以及配置文件

chown mysql:mysql -R /data/mysql/

vim /etc/my.cnf

datadir=/data/mysql (制定为新的数据存放目录)

vim /etc/init.d/mysqld

datadir=/data/mysql

socket=/data/mysql/mysql.sock

6.启动数据库服务

service mysqld start

说明:根据以上的简单6步操作,已经成功的数据库目录更换路径了。

备注:以上系统为CentOS 6.2 x64   mysql-5.5.13

//======================================================================================================================================

//======================================================================================================================================

如果上述不行,请参考如下链接:

mysql更改数据存放目录

MYSQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:

1.home目录下建立data目录

1
2
cd /home
mkdir data

2.把MySQL服务进程停掉:

1
mysqladmin -u root -p shutdown

3.把/var/lib/mysql整个目录移到/home/data

1
mv /var/lib/mysql /home/data/

这样就把MySQL的数据文件移动到了/home/data/mysql下
4.找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:

1
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

5.编辑MySQL的配置文件/etc/my.cnf
  为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi  my.cnf  (用vi工具编辑my.cnf文件,找到下列数据修改之)

1
2
3
4
# The MySQL server[mysqld] 
port = 3306
#socket   = /var/lib/mysql/mysql.sock
socket   = /home/data/mysql/mysql.sock (加上此行)

6.修改MySQL启动脚本/etc/init.d/mysql
  最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
vi /etc/init.d/mysql

#datadir=/var/lib/mysql(注释此行)

datadir=/home/data/mysql (加上此行)

如果是CentOS还要改 /usr/bin/mysqld_safe 相关文件位置;
最后 做一个mysql.sock 链接:
in -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
7.重新启动MySQL服务
/etc/init.d/mysqld start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。 
复制内容到剪贴板

代码:

[root@sample ~]# chown -R mysql:mysql /home/data/mysql/  ← 改变数据库的归属为mysql
[root@sample ~]# chmod 700 /home/data/mysql/test/  ← 改变数据库目录属性为700
[root@sample ~]# chmod 660 /home/data/mysql/test/*  ← 改变数据库中数据的属性为660

错误解决方案:

1.在CentOS上,如果mysql是通过yum安装的,那么可能使用上面的方法不能完全凑效。

 原因:mysql的配置文件有多处,除了更改/etc/my.cnf文件之外,还需要更改/usr/lib64/mysql/mysql_config

这个文件里面有一行“ldata='/var/lib/mysql'”和"socket=/var/lib/mysql/mysql.sock",这里也需要改掉

2.另外,还有权限问题,查看/var/log/mysqld.log,发现Can't create test file /xxx/mysql/centos5.lower-test

这里是因为没有权限创建或读取文件。

 解决办法就是使用setenforce 0 这个命令,让系统关闭权限校验,然后再运行命令 service mysqld start 发现OK了。

 如果要彻底禁用SELinux  需要在/etc/sysconfig/selinux中设置参数selinux=0

 另外一个办法是restorecon -FRv /home/data/mysql,或者chcon -R -t mysqld_db_t /home/data/mysql

更改mysql数据存储路径的更多相关文章

  1. [转载]ubuntu下如何更改mysql数据存放路径

    http://www.gaojinbo.com/ubuntu%E4%B8%8B%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9mysql%E6%95%B0%E6%8D%AE%E ...

  2. linux 更改mysql 数据存储目录

    https://www.cnblogs.com/hellangels333/p/8376177.html  参考位博主的文章,稍做改动 1.检查mysql数据库存放目录 mysql -u root - ...

  3. windows mysql数据存储路径更改

    背景:之前服务器磁盘很小,随着数据量的不断增加,磁盘不够,所以新申请了更大的磁盘,然后需要将旧路径下的数据迁移到新磁盘上. 1.任务管理器-打开服务,找到mysql的启动项,停止服务,属性查看可执行文 ...

  4. 【转载】变更MySql数据存储路径的方法

    1.在mysql安装目录下找到my.ini文件,更改#Path to the database root datadir="希望存放数据的地址" 2.将默认存放路径(一般为&quo ...

  5. linux下更改MySQL数据库存储路径

    参考地址:1.https://blog.csdn.net/ArnoBM/article/details/83008212 2.http://www.cnblogs.com/lyongde/p/3725 ...

  6. Ubuntu 16.04 装机后如何永久更改ulimit和修改MySQL的存储路径datadir

    Ubuntu 16.04 装机后的配置要点: 1. 网络的配置 2. 更改源列表 3. 永久更改ulimit ulimit限制着程序打开文件的数目,默认情况下为1024,作为服务器使用时,这个数字往往 ...

  7. postgresql pgsql最新版安装指南及数据存储路径更改及主从配置

    postgresql pgsql最新版安装指南及数据存储路径更改及主从配置 安装指南 首先在apt的list添加你当前系统版本对应的apt列表 目前官网有16.04,14.04,12.04 分别对应下 ...

  8. 修改mysql数据存储的地址

    修改mysql数据存储的地址 修改步骤如下 1,修改前为默认路径/var/lib/mysql/,计划修改为/data/mysql/data mysql> show variables like ...

  9. centos 7.1系统更改Mariadb数据存储位置步骤分享

    一.首先确保你要更改Mariadb数据存储的位置的空间够大 现在已将Mariadb存储位置更改到/opt/目录下 1.然后将Mariadb服务stop:systemctl stop mariadb 2 ...

随机推荐

  1. 【转】SQL SERVER 2005/2008 中关于架构的理解

    在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询,提示“对象名'CustomEntry' 无效.”.当带上了架构名称 ...

  2. Linux安装AUTOCONF和AUTOMAKE产生的程序的一般步骤

    概述: 在Linux下安装一个应用程序时, 一般先运行脚本configure, 然后用make来编译源程序, 在运行make install, 最后运行make clean删除一些临时文件. 相关点的 ...

  3. 【angular5项目积累总结】panel组件

    view code panel.component.css :host { display:flex; min-width:300px } panel.component.html <heade ...

  4. [转]emailjs-smtp-client

    本文转自:https://github.com/emailjs/emailjs-smtp-client/blob/master/README.md SMTP Client SMTP Client al ...

  5. TabControl 选项卡控件

    TabControl 控件是由System.Windows.Forms.TabControl类提供的,作用就是讲相关的组件组合到一系列选项卡页面上.   MulitiLine 属性用来设置是否显示多行 ...

  6. 【12】FtpWebRequest上传下载

    下载文件 /// <summary> /// 下载文件 /// </summary> /// <param name="filename">&l ...

  7. spring-cloud-sleuth简单使用

    快速开始 一.导入依赖 <!--链路追踪 start--> <dependency> <groupId>org.springframework.cloud</ ...

  8. python学习之老男孩python全栈第九期_day019作业

    # 计算时间差 import time start_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S' ...

  9. sql: postgreSQL sql script

    SELECT * from pg_class c,pg_attribute a,pg_type t where c.relname='BookKindList' and a.attnum>0 a ...

  10. 解决Cannot read property 'style' of null中样式问题

    <script type="text/javascript"> function updateTime(){ var timeNow = new Date(); var ...