linux系统如何移动mysql存放文件的位置

查看mysql情况

指令 ps -ef | grep mysql 得出结果

1.root 17659 1 0 2011 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe –datadir=/var/lib/mysql –socket=/var/lib/mysql/mysql.sock –log-error=/var/log/mysqld.log –pid-file=/var/run/mysqld/mysqld.pid

2.mysql 17719 17659 0 2011 ? 03:14:57 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/run/mysqld/mysqld.pid –skip-external-locking –socket=/var/lib/mysql/mysql.sock

usr/bin/mysql 是指:mysql的运行路径

var/lib/mysql 是指:mysql数据库文件的存放路径

usr/lib/mysql 是指:mysql的安装路径

移动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文件,找到下列数据修改之)

[mysql](加上此行)
socket=/home/data/mysql/mysql.sock(加上此行)
[mysqld]
#datadir=/var/lib/mysql(原内容,为了更稳妥用“#”注释此行)
#socket=/var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
datadir=/home/data/mysql(加上此行)
socket=/home/data/mysql/mysql.sock(加上此行)

6、修改MySQL启动脚本/etc/init.d/mysql(如果init.d目录下没有mysql文件请忽略此步骤)

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

[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql    (注释此行)
datadir=/home/data/mysql   (加上此行)

7、重新启动MySQL服务

/etc/init.d/mysql start

或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。

注意

如果更换mysql数据目录后出现:

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

说明无法通过socket文件/var/lib/mysql/mysql.sock连接到mysql服务器,也就是说对于mysql程序来说,尽管把socket文件从/var/lib/mysql/mysql.sock转移到了/home/data/mysql/mysql.sock,在my.cnf里设置了,mysqld是知道了,但是对于mysql还是会从默认的安装目录/var/lib/mysql/里找这个mysql.sock文件,找不着,就不知道从哪里启动了。

解决方案一:设置软连接

ln –s /home/data/mysql/mysql.sock /var/lib/mysql/

做完软连接,重启mysql服务,再次通过mysql程序连接就可以连上了。

解决方案二:检查my.cnf配置,是否有如下配置,如果没有,加上

[mysql]
socket=/home/data/mysql/mysql.sock

帮助命令

1.查找命令

find / -name my.cnf  #在根目录下查找文件my.cnf,表示在整个硬盘查找

find /etc -name my.cnf  #在/etc目录下文件my.cnf

find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件

find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件

2.查看文件占用大小

du -sh /*  查看根目录下所有文件的大小

du -sh /home/* 查看 home目录下所有文件的大小

du -sh * 查看当前目录下所有文件的大小

3.查看硬盘使用情况

df -h 
更多博客内容详见我的博客 Wang's Blog

猜你喜欢

转载自blog.csdn.net/abcwanglinyong/article/details/80001478