当前位置 博文首页 > 粽子小黑的博客:本地MySQL数据库迁移到阿里云RDS

    粽子小黑的博客:本地MySQL数据库迁移到阿里云RDS

    作者:[db:作者] 时间:2021-08-11 12:56

    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. 查看本地数据库状态

    1. 确认源库的 binlog 是否开启
    show global variables like "log_bin";
    

    不是的话配置一下my.cnf

    log_bin=mysql_bin
    binlog_format=row
    server_id=2 //设置大于1的整数
    binlog_row_image=full //当自建MySQL的版本大于5.6时,则必须设置该项。
    

    修改之后重新启动mysql

    mysql_dir/bin/mysqladmin -u root -p shutdown
    mysql_dir/bin/safe_mysqld &
    # 需要将mysql_dir替换为MySQL实际的安装目录
    
    1. 确认源库的 binlog 格式为 row 模式
    show global variables like "binlog_format";
    

    不是的话配置一下

    set global binlog_format=ROW;
    
    1. 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full
    show global variables like "binlog_row_image";
    

    不是的话配置一下

    set global binlog_row_image=full;
    

    5. 进行迁移

    看阿里云官方文档
    https://help.aliyun.com/document_detail/126875.html?spm=a2c4g.11186623.2.10.14554b43IHTNie
    需要先设置一下网关
    https://help.aliyun.com/document_detail/159587.html?spm=5176.10695662.1996646101.searchclickresult.1de2d223X9cjTe
    注意设置好网关之后要使用无公网:Port的数据库(通过数据库网关DG接入)

    最后我发现不用买RDS,自己在服务器上搭建一个mysql服务器环境就行了,还省的搞这么麻烦的数据迁移了
    参考这个网址直接通过sql文件实现数据库迁移
    https://blog.csdn.net/weixin_34202952/article/details/88029080

    参考网址
    https://help.aliyun.com/document_detail/125728.html?spm=a2c4g.11186623.2.22.35fb57aaXnE3uZ#concept-1198525
    https://www.cnblogs.com/John-2011/p/9254294.html
    https://help.aliyun.com/document_detail/126875.html?spm=a2c4g.11186623.2.10.14554b43IHTNie

    cs