Mysql修改数据文件默认目录datadir

  • 场景:mysql 数据库的数据文件默认安装的路径在/var/lib/mysql,但是实际中,我们在安装时常常就需要定制安装数据库路径,比如/data/mysql,或者/opt/mysql,通常是一个单独的一块盘或者分区,这样有利于性能调优和保护数据安全,同时也方便进行维护。

  • 步骤:

    1. Stop MySQL:

      service mysql stop
    2. Change Data Directory:

      // 新建文件夹用于存放数据,并把mysql默认的数据文件拷贝至此文件夹
      mkdir -p /data
      cp -rap /var/lib/mysql /data 或者 mv /var/lib/mysql /data
      
      // 改变新建文件夹的属主
      chown -R -v mysql:mysql /data/mysql
      
      // 现在编辑MySQL的默认配置文件/etc/my.cnf 修改datadir和socketvariable。
      vi /usr/my.cnf
      Change From: datadir=/var/lib/mysql 
                   socket=/var/lib/mysql/mysql.sock 
      Change To:   datadir=/data/mysql 
                   socket=/data/mysql/mysql.sock
    3. 为mysql.sock加连接:

      // 比如说实际的mysql.sock在 /data/mysql/mysql.sock 下
      ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock;
    4. Start MySQL:

      service mysql start
  • Q&A:

    • Q:以下是mysql数据目录修改出现:
      ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ ,本例是将Mysql的数据目录移动到了/home/data/下,即mysql.sock所在的真实目录为/home/data/mysql/mysql.sock,mysql有tcp连接和socket连接方式,而上面这种错误一般是因为mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,是一种socket连接方式。

    • A:常见解决办法如下:

      1. 创建/修改文件 /etc/my.cnf文件,在[mysqld]上面添加:

        [client]
        // password=your_password
        port=3306
        // 在这里写上你的mysql.sock的正确位置
        socket=/home/data/mysql/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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值