前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL ibdata1文件迁移

MySQL ibdata1文件迁移

作者头像
Alfred Zhao
发布2019-05-24 20:15:21
1.9K1
发布2019-05-24 20:15:21
举报

目的:主机系统/var目录快满了,经查询最大的文件是mysql的ibdata1文件,有17G大小,故需要迁移这个文件到其他目录下,以释放/var目录空间。

1.先备份下数据库是个好习惯

代码语言:javascript
复制
# mysqldump -q -uuser -ppassword --add-drop-table --all-databases > /usr2/backup/mysql_1013.sql

2.关闭mysql服务

代码语言:javascript
复制
# /etc/init.d/mysqld stop
停止 mysqld: [确定]
# /etc/init.d/mysqld status
mysqld 已停

3.移动ibdata1及其同目录下的文件,从/var/lib/mysql移动到/usr2/mysql

代码语言:javascript
复制
# pwd
/var/lib/mysql
# ls -lh
总用量 17G
-rw-rw---- 1 mysql mysql  17G 10月 13 10:23 ibdata1
-rw-rw---- 1 mysql mysql 5.0M 10月 13 10:23 ib_logfile0
-rw-rw---- 1 mysql mysql 5.0M 10月 13 10:23 ib_logfile1
drwx------ 2 mysql mysql 4.0K 2月  19 2014 mysql
srwxrwxrwx 1 mysql mysql    0 10月 13 10:23 mysql.sock
drwx------ 2 mysql mysql 4.0K 2月  19 2014 test
drwx------ 2 mysql mysql 4.0K 2月  26 2014 zabbix

# mkdir /usr2/mysql
# chown mysql:mysql /usr2/mysql

# su - mysql
$id
uid=27(mysql) gid=27(mysql) 组=27(mysql)
$ mv /var/lib/mysql/* /usr2/mysql/
$

4.修改mysql配置文件/etc/my.cnf,修改datadir和socket路径指向

代码语言:javascript
复制
修改前:
# more /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.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

修改后:
# more /etc/my.cnf
[mysqld]
datadir=/usr2/mysql
socket=/usr2/mysql/mysql.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.启动mysql服务

代码语言:javascript
复制
# /etc/init.d/mysqld start
正在启动 mysqld: [确定]
# /etc/init.d/mysqld status
mysqld (pid  11907) 正在运行...

6.连接mysql,根据报错提示创建mysql.sock的软连接,验证库表数据,完成迁移工作。

代码语言:javascript
复制
# mysql -uuser -ppassword
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

# ln -s /usr2/mysql/mysql.sock /var/lib/mysql/mysql.sock

# mysql -uuser -ppassword
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.1.66 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)

mysql> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------------+
| Tables_in_zabbix      |
+-----------------------+
| acknowledges          |
| actions               |
| alerts                |
……
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-10-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档