1、把同一帐号下的其他ECS服务器上的文件传输到本服务器
scp root@10.45.177.154:/var/lib/mysql/apiservice /data/mysql/
这命令的意思是:把IP为10.xx.xx.xx下的/var/lib/mysql/apiservice 拷贝到当前系统下的/data/mysql/下
直接执行上述命令是会报错的
错误信息如下:
root@10.45.177.154's password:
scp: /var/lib/mysql/apiservice: not a regular file
解决办法如下,加入 -r参数
scp -r root@10.45.177.154:/var/lib/mysql/apiservice /data/mysql/
如果服务器端口号不是默认的22号端口,则还需要指定端口号
scp -r -P 4600 root@10.29.59.56:/hotdata/kehu/jq-jiayou/jq-jiayou/data /data/fn_code/jq-jiayou
scp -r -P 4600 root@10.29.59.56:/hotdata/kehu/hui-you-you/config.inc.php /data/fn_code/hui-you-you
2、远程链接刚刚拷贝过去的数据库看一下,发现,报错了。信息如下
mysql> show tables;
ERROR 1018 (HY000): Can't read dir of './apiservice/' (errno: 13 - Permission denied)
解决办法:
1)用 ll 命令查看数据库目录,发现拷贝过来的数据库所有者不是mysql
[root@hotdata mysql]# ll
total 122964
drwx------ 2 root root 4096 Dec 16 19:09 apiservice
-rw-r----- 1 mysql mysql 56 Dec 11 21:49 auto.cnf
2、解决办法就是把所有者更改为mysql
[root@hotdata mysql]# chown -R mysql:mysql apiservice
[root@hotdata mysql]# ls
apiservice ib_logfile0 mysqld_safe.pid
auto.cnf ib_logfile1 performance_schema
ca-key.pem ibtmp1 private_key.pem
ca.pem log public_key.pem
client-cert.pem mysql server-cert.pem
client-key.pem mysql-bin.000001 server-key.pem
ib_buffer_pool mysql-bin.000002 sys
ibdata1 mysql-bin.index
[root@hotdata mysql]# ll
total 122964
drwx------ 2 mysql mysql 4096 Dec 16 19:09 apiservice
这样就可以了
1)内网传文件可以参考下上述步骤,迁移mysql的话,还是要小心的,因为服务没有停止的情况下,是不停的有数据写入的,部分表迁移过去,可能会出现打不开,提示这张表不存在的情况。
2)通过内网传输文件,速度还是蛮快的,测试了下速度是60M/s以上。所以用来传输一些大文件还是蛮实用的