mamp 数据库操作(数据库 全量同步,增量同步)

mamp 数据库操作(数据库 全量同步,增量同步)

1. 登录数据库
/Applications/MAMP/Library/bin/mysql -u root -p 
2. 数据库备份
# 备份 ttk_saas库里的lb_account_chanel、lb_addons、lb_ad_page 表,并存到ttk_saas.sql 文件中
/Applications/MAMP/Library/bin/mysqldump -uroot -proot ttk_saas lb_account_chanel lb_addons lb_ad_page> ttk_saas.sql;

# 备份 ttk_saas、ttk_member_2811数据库到ttk_saas.sql文件中

/Applications/MAMP/Library/bin/mysqldump -uroot -p123456 --databases database_test1 database_test2 > backup_database_test1_test2.sql
3. 比对两个数据库的差异
 /Applications/MAMP/Library/bin/mysqldiff --server1=username:password@localhost:3306 --server2=username:password@localhost:3306 --force --changes-for=server2 --difftype=sql ttk_member_40111:ttk_member_40113 > ttk_memger_diff.sql        
4. 恢复数据库
/Applications/MAMP/Library/bin/mysql -uroot -proot ttk_member_40115 < ttk_member_40115.sql
5. 刷新 创建新的二进制日志
/Applications/MAMP/Library/bin/mysqladmin -uroot -proot flush-logs
6. 查看需要恢复的位置(需要先登录mysql)
show binlog events in 'mysql_bin.000003';
/Applications/MAMP/Library/bin/mysqlbinlog --stop-position=1617 /opt/data/mysql_bin.000003
7. 使用mysql binlog 进行数据恢复
/Applications/MAMP/Library/bin/mysqlbinlog --stop-position=1617 /opt/data/mysql_bin.000003 | /Applications/MAMP/Library/bin/mysql -uroot -proot
8. 可能遇到的问题

1)报错信息:ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
原因:MySQL导入用户的权限问题。处于安全考虑,rds MySQL的最高权限用户root是没有super权限的,使用mysqldump 导出数据时,没有添加选项–set-gtid-purged=OFF,导出的sql中就有存在以下需要super权限执行的语句:
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED=´18f9a804-343b-11e5-a21d-b083fed01601:1-2´;
解决:导出语句中添加选项**–set-gtid-purged=OFF**重新导出,再导入即可
如:mysqldump -h127.0.0.1 -uroot -p123456 --set-gtid-purged=OFF database>database_bak.sql

	报错信息:ERROR: Query failed. 1142 (42000): SELECT command denied to user 'yang'@'172.26.84.83' for table 'proc'
	原因:'proc'表是一个系统表,通常存储存储过程相关的信息,一般用户是没有权限访问的。 
	解决:将proc 分配给当前用户: GRANT SELECT ON mysql.proc TO 'yang'@'%';

	报错信息:ERROR: Query failed. 1142 (42000): SELECT command denied to user 'yang'@'172.26.84.83' for table 'event'
	原因:同上
	解决: GRANT SELECT ON mysql.event TO 'yang'@'%';

2)查询相应路径
mysql: which mysql
mysqldump: which mysqldump
mysqldiff: which mysqldiff
3) 服务器上不存在mysqldiff
安装:sudo yum install mysql-utilities,MySQL Utilities工具,包括mysqldiff。
4) 相关操作命令:

	查询当前所有用户:SELECT User, Host FROM mysql.user;

	创建mysql用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
	
	修改指定用户 只能本地连接 到 可以所有ip连接:
	UPDATE mysql.user SET Host='%' WHERE User='yang' AND Host='localhost';
	
	将指定数据库 分配给指定用户:
	GRANT ALL PRIVILEGES ON ttk_member_40117.* TO 'yang'@'%';

	将所有数据库 分配给指定用户:
	GRANT ALL PRIVILEGES ON *.* TO 'yang'@'%';

	刷新权限:FLUSH PRIVILEGES;

 	修改用户密码:ALTER USER 'username'@'%' IDENTIFIED BY 'new_password';

	通过命令行 执行上边的操作:
	/usr/bin/mysql -h 127.0.0.1 -uroot -proot -e "GRANT ALL PRIVILEGES ON ttk_member_5392.* TO 'yang'@'%';FLUSH PRIVILEGES;"
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值