我正在将数据库从一台服务器传输到另一台服务器。我直接移动数据文件,而不是使用 SQL 转储。为此,我:
- 确保两台服务器使用相同的 MySQL 版本
- 放
innodb_fast_shutdown = 0
- 停止 MySQL 服务器
rsync
将数据写入新服务器
我几乎准备好启动新服务器,但我有一个疑问。旧服务器/var/lib/mysql
对数据、binlogs 等使用相同的数据目录,而新服务器对数据、binlogs 和 tmp 使用 3 个不同的目录:
datadir=/mysql/data
tmpdir=/mysql/tmp
log-bin=/mysql/binlog/mysql-bin
问题是:每个文件应该放在哪里?
我的理由是:
/mysql/tmp
:在缓慢(甚至正常?)关机后不应该留下任何临时文件,所以现在什么都不应该去那里/mysql/binlog
: 我应该只移动mysql-bin.*
文件/mysql/data
: 其他的都应该去那里
那是对的吗?
这是文件列表,供参考(nxxxxxxx
是我的主数据库):
# ls -al /var/lib/mysql
total 38518860
drwxr-x--x. 9 mysql mysql 4096 20 nov. 13:50 .
drwxr-xr-x. 37 root root 4096 29 déc. 2019 ..
-rw-rw----. 1 mysql mysql 56 21 déc. 2014 auto.cnf
-rw------- 1 mysql mysql 1680 27 déc. 2018 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 27 déc. 2018 ca.pem
-rw-r--r-- 1 mysql mysql 1112 27 déc. 2018 client-cert.pem
-rw------- 1 mysql mysql 1676 27 déc. 2018 client-key.pem
-rw-r----- 1 mysql mysql 589824 20 nov. 13:50 #ib_16384_0.dblwr
-rw-r----- 1 mysql mysql 8978432 19 nov. 18:28 #ib_16384_1.dblwr
-rw-r----- 1 mysql mysql 91522 20 nov. 13:50 ib_buffer_pool
-rw-r-----. 1 mysql mysql 9143582720 20 nov. 13:50 ibdata1
-rw-r----- 1 mysql mysql 1073741824 20 nov. 13:50 ib_logfile0
-rw-r----- 1 mysql mysql 1073741824 20 nov. 13:50 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 20 nov. 13:50 #innodb_temp
drwxr-sr-x. 2 mysql mysql 4096 19 nov. 18:28 mysql
-rw-r----- 1 mysql mysql 1073742002 5 nov. 21:45 mysql-bin.002418
-rw-r----- 1 mysql mysql 1073742033 6 nov. 12:00 mysql-bin.002419
(...)
-rw-r----- 1 mysql mysql 341943 20 nov. 13:50 mysql-bin.002446
-rw-r----- 1 mysql mysql 179 20 nov. 13:50 mysql-bin.002447
-rw-r----- 1 mysql mysql 570 20 nov. 13:50 mysql-bin.index
-rw-r----- 1 mysql mysql 62914560 20 nov. 13:50 mysql.ibd
-rw-r--r--. 1 mysql mysql 6 19 nov. 18:28 mysql_upgrade_info
drwxr-sr-x. 2 mysql mysql 69632 17 nov. 17:15 nxxxxxxx
drwxr-x--- 2 mysql mysql 4096 19 nov. 18:28 performance_schema
-rw------- 1 mysql mysql 1676 27 déc. 2018 private_key.pem
-rw-r--r-- 1 mysql mysql 452 27 déc. 2018 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 27 déc. 2018 server-cert.pem
-rw------- 1 mysql mysql 1680 27 déc. 2018 server-key.pem
drwxr-x---. 2 mysql mysql 12288 27 déc. 2018 sys
drwxr-x--- 2 mysql mysql 4096 1 mars 2019 test
-rw-r----- 1 mysql mysql 109051904 20 nov. 13:50 undo_001
-rw-r----- 1 mysql mysql 109051904 20 nov. 13:50 undo_002
没关系,只是您可能需要在移动文件后重新配置 .cnf 文件中的 bin 和 tmp 位置。
这是一篇专门关于重新配置 tmp 位置的文章(我想 bin 目录是相似的):How to change your MYSQL tmpdir