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=/va
查看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
更多推荐
所有评论(0)