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/
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
- [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以上。