zoukankan      html  css  js  c++  java
  • Linux 下mysql修改数据库存放目录方法和可能遇到的问题

    MySQL版本:5.6.23-enterprise-commercial-advanced ,使用rpm安装
    linux:Red Hat Enterprise Linux Server release 6.3 (Santiago)
    一 、如果是linux下用rpm包安装的mysql,修改方法如下:

    MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
       1、home目录下建立data目录
       cd /home
       mkdir data
       2、把MySQL服务进程停掉:
       mysqladmin -u root -p shutdown
       3、把/var/lib/mysql整个目录移到/home/data
       mv /var/lib/mysql /home/data/
       这样就把MySQL的数据文件移动到了/home/data/mysql下
       4、找到my.cnf配置文件
      如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
       [root@test1 mysql]# 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文件,找到下列数据修改之)
       # The MySQL server
        [mysqld]
        port   = 3306
        #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
        socket  = /home/data/mysql/mysql.sock   (加上此行)
       6、修改MySQL启动脚本/etc/rc.d/init.d/mysql
      最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
       [root@test1 etc]# vi /etc/rc.d/init.d/mysql
       #datadir=/var/lib/mysql    (注释此行)
       datadir=/home/data/mysql   (加上此行)
       7、重新启动MySQL服务
       /etc/rc.d/init.d/mysql start
       或用reboot命令重启Linux

    以下是mysql数据目录修改出现

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)错误的解决方案:

    本例是将Mysql的数据目录移动到了/home/data/下,即mysql.sock所在的真实目录为,/home/data/mysql/mysql.sock

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

    mysql有tcp连接和socket连接方式,而上面这种错误一般是因为mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,是一种socket连接方式。

    常见解决办法如下:
    1、
    创建/修改文件 /etc/my.cnf文件,在[mysqld]上面添加

    [client]
    #password=your_password
    port=3306
    socket=/home/data/mysql/mysql.sock
    #在这里写上你的mysql.sock的正确位置。

    2、
    指定IP地址,使用tcp方式连接mysql,而不使用本地socket方式
    #mysql -h127.0.0.1 -uuser -ppassword

    3、
    为 mysql.sock 加个连接,比如说实际的mysql.sock在 /home/data/mysql/ 下,则
    #ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock即可

    [root@rusky lib]# ln -s /opt/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
    ln: 创建符号链接 "/var/lib/mysql/mysql.sock": 没有那个文件或目录
    由于/var/lib/mysql整个目录被mv了,所以需要在/var/lib/目录下创建mysql目录,再创建符号链接就可以了。

    *****************************如果是在unbuntu系统下用如下方法***********************

    关闭数据库服务
    service mysql stop
    建新数据库目录
    mkdir /media/hda11/db

    复制linux下原数据到新目录下
    cp -pR /var/lib/mysql /media/hda11/db/

    修改文件/etc/apparmor.d/usr.sbin.mysqld
    gedit /etc/apparmor.d/usr.sbin.mysqld

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

    改成
    /media/hda11/db/mysql r,
    /media/hda11/db/mysql/** rwk,

    修改目录
    gedit /etc/mysql/my.cnf

    datadir = /var/lib/mysql换成datadir = /media/hda11/db/mysql

    再开服务器
    /etc/init.d/apparmor restart

    servcie mysql start

    ====================

    FROM:http://blog.163.com/anonymous_ch/blog/static/206824190201391842558553/

  • 相关阅读:
    真的要努力了
    实事求是
    要努力了
    新征程,新目标
    真的要放弃了吗
    集中力量 主攻文科
    May the force be with me.
    记录级排名
    Android开发过程中git、repo、adb、grep等指令的使用
    Ubuntu环境变量设置
  • 原文地址:https://www.cnblogs.com/rusking/p/4427771.html
Copyright © 2011-2022 走看看