服务器怎么使用mysql 服务器怎么使用代理( 三 )


第二种方案:逻辑迁移-使用mysqldump
登录远程服务器,在服务器中导出数据库
第一步,登录公网IP为x.x.x.x的阿里云ECS服务器 。
第二步,将需要迁移的原数据库ZJZK2022中的数据导出 , 生成*.sql文件 。
命令:service mysql start
/mnt/mysql/mysql-5.7.37/bin/mysqldump -u root -p --opt ZJZK2022/tmp/ZJZK2022-data-export.sql
然后输入登录密码“123456” 。
执行mysqldump命令后,若没有报错 , 则shel不会有任何结果显示 。
注释:ZJZK2022——本次准备迁移的数据库;
/tmp/ZJZK2022-data-export.sql——导出时生成的数据文件存放的位置与文件名;
--opt——此命令参数开启代表着同时激活了quick、add-drop-table、add-locks、extended-insert和lock-tables 参数;
quick——忽略缓存,直接将数据导出到*.sql文件中;
add-drop-table——在每个CREATE TABEL命令之前增加DROP-TABLE IF EXISTS语句,防止数据表重名;
add-locks——在备份数据表前后添加表锁定与解锁 SQL 语句;
extended-insert——此参数表示可以多行插入,提高导入效率,开启与否导入效率相差数倍,推荐开启 。
第三步,进入导出目录查看导出结果 。
命令:cd /tmp
ls
若结果显示ZJZK2022-data-export.sql,则说明文件已经生成 。
无服务器 , 独立MySQL数据库远程导出至本地计算机
如果在阿里云购买的不是一台服务器,而是一个独立MySQL数据库的话,那也可以将数据库导出至本地计算机 。
命令:service mysql start
/mnt/mysql/mysql-5.7.37/bin/mysqldump -h y.y.y.y -u ZJZK2022-remote -p -P3306 --default-character-set=utf8 --set-gtid-purged=OFF --column-statistics=0 ZJZK2022/Desktop/ZJZK2022-data-export.sql
注释:y.y.y.y——远程数据库ip地址;
ZJZK2022-remote——拥有远程访问权限的数据库账号;
-P 3306——数据库访问端口,可根据自己情况修改;
default-character-set=utf8——导出时指定字符集;
set-gtid-purged=OFF——全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复 , 以及容错能力 。开启这个功能导入导出时,可能会出错,故关闭;
/Desktop/ZJZK2022-data-export.sql——本地计算机保存路径及保存文件名 。
提示:mysqldump常见报错:mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')
可在命令中添加column-statistics=0参数 。因MySQL数据库早期版本information_schema数据库中没有名为COLUMN_STATISTICS的数据表,新版mysqldump默认启用,我们可以通过此命令禁用它 。
执行命令后,若没有报错,则shel不会有任何结果显示,但已经可以在桌面上看到导出后生成的文件 。
复制 *.sql 至新数据库/新服务器
使用WinSCP将导出的*.sql文件传送到内网IP为y1.y1.y1.y1的新服务器对应的路径中 。
命令:scp /tmp/ZJZK2022-data-export.sql root@y1.y1.y1.y1:/tmp/
输入连接root@y1.y1.y1.y1的密码“654321” 。
若结果显示“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”,则说明出现错误 。可以使用命令“ssh-keygen -R y1.y1.y1.y1”,然后重新尝试连接,输入yes,按下回车 , 成功连接 。
若结果显示“ZJZK2022.sql 100% 7191 2.6MB/s 00:00” , 则说明数据传送成功 。
如果购买的是独立MySQL数据库的话,也可以直接在阿里云服务器中直接向新服务器MySQL数据库导入数据 。
导入数据库
方法一:本地数据库*.sql文件导入
第一步,当数据传输到公网IP为y.y.y.y的服务器后,可以在此服务器上新建一个名为ZJZK2022_new数据库,然后使用mysql命令直接导入数据库 。