需求:MySQL数据库文件原位置:/var/lib/mysql 要移动至:/data/
1、首先在/data目录下创建一个名为:mysql_data的文件名:
1
2
3
|
# mkdir /data/mysql_data
# chown -R mysql:mysql /data/mysql_data
# chmod -R 755 /data/mysql_data
|
2、停止所有MySQL服务:
1
2
3
4
|
# service httpd stop
# service mysqld stop
# netstat -an |grep 3306 //查看mysql服务是否已经停止
|
3、拷备/var/lib/mysql下所的文件到/data/目录下:
1
|
# mv /var/lib/mysql /data/mysql_data
|
4、修改配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# vim /etc/my.cnf
[mysqld]
#datadir=/var/lib/mysql //原路径
datadir=
/data/mysql_data/mysql
//
修改后的路径
#socket=/var/lib/mysql/mysql.sock //原sock路径
socket=
/data/mysql_data/mysql/mysql
.sock
//
修改后的sock路径
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=
/var/log/mysqld
.log
pid-
file
=
/var/run/mysqld/mysqld
.pid
|
5、修改启动脚本:
1
2
3
4
|
# vim /etc/init.d/mysqld
#get_mysql_option mysqld datadir "/var/lib/mysql" //原sock路径
get_mysql_option mysqld datadir
"/data/mysql_data/mysql"
//
修改后的sock路径
|
6、启动MySQL服务:
1
2
3
4
5
6
7
8
|
# service mysqld start
# service httpd start
# mysql -uroot -p //测试是否可以正常登录;
ERROR 2002 (HY000): Can
't connect to local MySQL server through socket '
/var/lib/mysql/mysql
.sock' (2)
//
如果出现该错误,请执行以下操作:
# ln -s /data/mysql_data/mysql/mysql.sock /var/lib/mysq/mysql.sock
|
7、执行完以上操作,数据库文件的迁移工作就已经做完了。
8、如果进行zabbix报错或表显示不正常,查看下Mysql日志,看看是不是表在移动时坏掉了,如果是表坏了,进入mysql中使用以下语句修复下表,就OK了
1
2
3
4
5
6
7
8
9
|
#service zabbix_server stop //关闭zabbix服务
mysql> use zabbix;
mysql> repair table 表名;
//
修复表
bye
# service zabbix_server start
# service zabbix_server status
|
本文转自yangxuncai110 51CTO博客,原文链接:http://blog.51cto.com/zlyang/1726029
,如需转载请自行联系原作者