需求:MySQL数据库文件原位置:/var/lib/mysql 要移动至:/data/
1、首先在/data目录下创建一个名为:mysql_data的文件名:
# mkdir /data/mysql_data # chown -R mysql:mysql /data/mysql_data # chmod -R 755 /data/mysql_data
2、停止所有MySQL服务:
# service httpd stop # service mysqld stop # netstat -an |grep 3306 //查看mysql服务是否已经停止
3、拷备/var/lib/mysql下所的文件到/data/目录下:
# mv /var/lib/mysql /data/mysql_data
4、修改配置文件:
# 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、修改启动脚本:
# 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服务:
# 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了
#service zabbix_server stop //关闭zabbix服务 mysql> use zabbix; mysql> repair table 表名; //修复表 bye # service zabbix_server start # service zabbix_server status