zoukankan      html  css  js  c++  java
  • 更改mysql数据存储路径

       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

  • 相关阅读:
    icomet研究
    python使用ssdb的队列,用于替换canal+rabbitmq
    最近关于mysql的造型,binlog使用,以及阿里云上线数据处理错误导致被处罚的思考
    删除一个存在的RabbitMQ队列
    检查Rabbitmq中队列及消息个数,还有清空的方法
    Mysql在master上查看有哪些slave
    查看Linux端口的占用及连接情况
    Kettle根据时间戳同步数据实现
    kettle的下载、安装和初步使用(windows平台下)(图文详解)
    golang学习 ----获取URL
  • 原文地址:https://www.cnblogs.com/sparkbj/p/6369331.html
Copyright © 2011-2022 走看看