文章目录
- 1. 物理迁移
- 1. 迁移前,配置`mysql`的输出目录
- 1. 查看mysql的输出目录
- 2. 修改`mysql`的输出目录
- 2. 文件迁移
1. 物理迁移
1. 迁移前,配置mysql
的输出目录
1. 查看mysql的输出目录
在安装MySQL的会限制了导入与导出的目录权限。只允许在规定的目录下才能导入。
可以通过以下命令查看secure-file-priv当前的值是什么,然后再进行修改。
mysql> SHOW VARIABLES LIKE "secure_file_priv";
可以看到,本地value
的值为 /var/lib/mysql-files
。 (可能也有其他的文件路径,跟自己的安装路径有关)
经查资料,value
值有以下三种:
- NULL,表示禁止输出文件。
- 如果value值有文件夹目录,则表示只允许该目录下文件(PS:测试子目录也不行)。
- 如果为空,则表示不限制目录。
2. 修改mysql
的输出目录
widows
下的配置如下:
修改my.ini
的内容,在文件末尾添加一行内容secure_file_priv=''
其中,my.ini
的位置在你的mysql
的安装目录下:
linux
的配置如下:
修改/etc/my.cnf
的内容,也是在文件末尾添加一行内容secure_file_priv=''
如果这里不修改会报错
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot exec
2. 文件迁移
目的: 将我的mysql
数据库中的mge_data
中的ice
数据表迁移到test_2
中的ice
表中;
如图下:
数据库mge_data
,我要将
操作:
- 建立
test_2
的ice
的空表。 (要保证test_2
中的ice
表跟mge_data
中的ice
表的字段保持一致;) - 将
mge_data
中的ice
表载入到文件D:/ice.txt
中;
mysql> use database mge_data;
mysql> select * from ice into outfile 'D:/ice.txt';
- 将文件
D:/ice.txt
载入到test_2
的ice
空表中;()
mysql> use database test_2;
mysql> load data infile 'D:/ice.txt' into table ice;
注意:into outfile 是不会生成表结构的,因此在导入数据之前,需要手动创建表结构。
且表迁移前后的表结构(表字段名)要保持一致
`