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";
不是的話配置一下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實際的安裝目錄
- 確認源庫的 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. 進行遷移
看阿里雲官方文檔
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