Linux下MySQL数据库目录更改转移

场景,ibdata1文件增长过快,或者数据库数据量增长过快导致datadir 目录快满的情况下,将datadir 目录下数据迁移到其他目录。

备份数据库

备份数据库很重要,防止迁移数据库失败恢复数据库。
[root@www.cndba.cn/]# mysqldump -uroot -proot --all-databases --opt --add-drop-database --add-drop-table --default-character-set=utf8 --master-data=2  --log-error=backup/mysqldump.log  > backup/all_mysql.sql

关闭Mysql服务

[root@www.cndba.cnbackup]# /etc/init.d/mysql stop
Stopping mysql (via systemctl):                            [  OK  ]

修改配置文件

备份配置文件
[root@www.cndba.cndata]# cp /etc/my.cnf /etc/my.cnf.20180410
修改配置文件
注释掉之前的代码
[client]
socket          =/tmp/mysql.sock
[mysqld]
socket          = /tmp/mysql.sock
datadir         = /data/mysql/data
修改改为
[client]
socket          = /data1/mysql/data/mysql.sock
[mysqld]
socket          = /data1/mysql/data/mysql.sock
datadir         = /data1/mysql/data

移动数据文件到新的数据文件目录

从/data/mysql/data移动到/data1/mysql/data
[root@www.cndba.cndata]# cd /data/mysql/data
[root@www.cndba.cndata]# cp -a * /data1/mysql/data
[root@www.cndba.cndata]# cd /data1/mysql/data/
查看复制过来的文件权限
[root@www.cndba.cndata]# ll
total 403484
-rw-rw---- 1 mysql mysql     16384 Apr  8 20:57 aria_log.00000001
-rw-rw---- 1 mysql mysql        52 Apr  8 20:57 aria_log_control
drwxr-xr-x 2 mysql mysql        26 Apr  9 09:17 data
-rw-rw---- 1 mysql mysql      2000 Apr  8 20:57 ib_buffer_pool
-rw-rw---- 1 mysql mysql  10485760 Apr  8 20:57 ibdata1
-rw-rw---- 1 mysql mysql 134217728 Apr  8 20:57 ib_logfile0
-rw-rw---- 1 mysql mysql 134217728 Apr  8 18:03 ib_logfile1
-rw-rw---- 1 mysql mysql 134217728 Apr  8 18:03 ib_logfile2
drwx------ 2 mysql root       4096 Apr  8 18:03 mysql
drwx------ 2 mysql mysql        20 Apr  8 18:03 performance_schema
drwx------ 2 mysql root        117 Apr  8 21:43 test

启动数据库

[root@www.cndba.cndata]# /etc/init.d/mysql start
Starting mysql (via systemctl):                            [  OK  ]
[root@www.cndba.cntmp]# mysql -uroot -proot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data1/mysql/data/mysql.sock' (2)
如果遇到以上错误,需要建立一个mysql.sock的软链接
[root@www.cndba.cntmp]# ln -s /data1/mysql/data/mysql.sock /tmp/mysql.sock
验证数据文件目录是否为新的目录
[root@www.cndba.cndata]# mysql -uroot -proot
Welcome to the MariaDB monitor.  Commands end with ; or /g.
Your MariaDB connection id is 27
Server version: 10.2.13-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> show global variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /data1/mysql/data/ |
+---------------+-------------------+
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux下进行MySQL数据库迁移,可以按照以下步骤进行: 1.备份原数据库:使用mysqldump命令备份原数据库,将备份文件保存到本地或其他服务器上。 2.安装新数据库:在目标服务器上安装MySQL数据库,并创建新的数据库。 3.将备份文件导入新数据库:使用mysql命令将备份文件导入新数据库中。 4.修改配置文件:修改新数据库的配置文件,包括数据库名称、用户名、密码等信息。 5.测试新数据库:使用mysql命令连接新数据库,并测试是否能够正常访问和操作。 6.删除原数据库:如果需要,可以在迁移完成后删除原数据库。 需要注意的是,在进行数据库迁移时,要确保原数据库和新数据库的版本兼容性,并且在迁移过程中要保证数据的完整性和安全性。 ### 回答2: 在Linux系统下进行MySQL数据库迁移,需要考虑以下几个方面: 1. 数据库备份 在MySQL迁移前,首先需要备份原有的数据库。可以使用mysqldump命令将数据库导出为.sql文件,该文件包含了所有的数据和表结构。备份命令示例: ```bash mysqldump -u root -p old_database > old_database.sql ``` 其中,`-u`参数是MySQL登录用户,`-p`参数是MySQL登录密码,`old_database`是需要备份的数据库名,`> old_database.sql`是将备份文件输出到指定文件中。 2. 安装新的MySQL 如果迁移到新的服务器上,需要安装新的MySQL,并确保MySQL的版本和原服务器上的MySQL版本相同或更高。 3. 将备份文件导入到新的MySQL中 使用mysql命令将备份文件导入到新的MySQL中,命令示例: ```bash mysql -u root -p new_database < old_database.sql ``` 其中,`new_database`是新数据库的名字。 4. 修改配置文件 新的MySQL可能会与原数据库不同,需要对新的MySQL进行相应的配置,包括端口、IP地址等。 5. 测试数据 在迁移完成后,需要进行测试以确保数据完整性和应用程序的正常运行。可以对应用程序进行测试,或者使用MySQL命令检查数据是否正确导入到新的MySQL中。 总之,在进行MySQL数据库迁移前,需要进行充分的备份并测试数据库的完整性和应用程序的正常运行。同时,需要针对新的MySQL进行相应的配置。 ### 回答3: 在Linux下进行MySQL数据库迁移分为两个方面:备份和恢复。备份和恢复分别是指将原有的MySQL数据库备份到新的机器上以及将备份数据恢复到新机器中。 备份方面,我们可以使用mysqldump指令来完成备份,该指令可以将MySQL数据库备份成SQL脚本,通过该脚本可以将数据恢复到新机器上。具体操作步骤如下: 1.使用mysqldump指令备份MySQL数据库mysqldump -u root -p database_name > database_name_backup.sql 其中,root为MySQL的用户名,database_name为要备份的数据库名称,>表示将备份结果定向到一个sql文件中。 2.复制备份文件到新机器上: 将备份文件拷贝到新机器上,可以使用scp指令或者FTP等传输工具。 3.在新机器上创建原数据库: 创建空的MySQL数据库mysql -u root -p -e 'create database database_name' 其中,database_name为要创建的数据库名称。 4.将备份数据恢复到新机器: mysql -u root -p database_name < database_name_backup.sql 其中,<表示将备份文件贴入恢复指令中,从而将备份文件中的数据库信息恢复到新的MySQL数据库中。 需要注意的是,在进行MySQL数据库迁移的时候,需要保证MySQL的版本一致,并且在备份和恢复过程中,需要保证备份文件完整,不能出现文件损坏的情况。另外,在进行数据迁移的过程中,需要保证迁移前已经备份好了数据,以防数据出现丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值