1. 连接本地数据库
mysql -h localhost -u root -p
2. 创建帐号
首先要在本地创建一个用来迁移的帐号,并给这个帐号设置权限。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
sername:待创建的账号。
host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用百分号(%)。
password:账号的密码。
eg:
# 例如,创建一个账号,账号名为dtsmigration# 密码为Dts123456,并允许从任意主机登录数据库,命令如下。CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';
3. 用户授权
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
privileges:授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL。
databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用星号()。
tablename:表名。如果要授予该账号具备所有表的操作权限,则使用星号()。
username:待授权的账号。
host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用百分号(%)。
WITH GRANT OPTION:授予该账号使用GRANT命令的权限,该参数为可选。
eg:
# 授予dtsmigration账号具备所有数据库和表的所有权限# 并允许从任意主机登录数据库,命令如下。GRANT ALL ON *.* TO 'dtsmigration'@'%';
4. 查看本地数据库状态
确认源库的 binlog 是否开启show global variables like "log_bin";
不是的话配置一下f
log_bin=mysql_binbinlog_format=rowserver_id=2 //设置大于1的整数binlog_row_image=full //当自建MySQL的版本大于5.6时,则必须设置该项。
修改之后重新启动mysql
mysql_dir/bin/mysqladmin -u root -p shutdownmysql_dir/bin/safe_mysqld &# 需要将mysql_dir替换为MySQL实际的安装目录
确认源库的 binlog 格式为 row 模式
show global variables like "binlog_format";
不是的话配置一下
set global binlog_format=ROW;
当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full
show global variables like "binlog_row_image";
不是的话配置一下
set global binlog_row_image=full;
5. 进行迁移
看阿里云官方文档
/document_detail/126875.html?spm=a2c4g.11186623.2.10.14554b43IHTNie
需要先设置一下网关
/document_detail/159587.html?spm=5176.10695662.1996646101.searchclickresult.1de2d223X9cjTe
注意设置好网关之后要使用无公网:Port的数据库(通过数据库网关DG接入)
最后我发现不用买RDS,自己在服务器上搭建一个mysql服务器环境就行了,还省的搞这么麻烦的数据迁移了
参考这个网址直接通过sql文件实现数据库迁移
/weixin_34202952/article/details/88029080
参考网址
/document_detail/125728.html?spm=a2c4g.11186623.2.22.35fb57aaXnE3uZ#concept-1198525
/John-/p/9254294.html
/document_detail/126875.html?spm=a2c4g.11186623.2.10.14554b43IHTNie
如果觉得《本地MySQL数据库迁移到阿里云RDS》对你有帮助,请点赞、收藏,并留下你的观点哦!