MYSQL导入sql文件时间出现:Access denied

在做MYSQL主从同步时出现Access denied错误:

Access denied; you need (at least one of) the SUPER privilege(s) for this operation

原因:由于服务器原因,不能使用MYSQL的主从同步机制,只能自己用Python来实现同步。

原理:先使用

mysqldump uroot -p123456 -h192.168.0.1 mysqldatabase>mysql.sql

导出主数据库数据,然后替换sql文件里的表名,为每个表添加"_tmp"后缀

最后使用

mysql -uroot -p123456 -h192.168.0.2 db1<mysql.sql

导入到从数据库,导入完成后删除原表,重命名_tmp表名为原表名。完成。

本地运行没有问题,到服务器上运行出现错误:

Access denied; you need (at least one of) the SUPER privilege(s) for this operation

分析:

参考 https://help.aliyun.com/knowledge_detail/5989721.html?pos=10 发现我的问题可能是需要:去除 GTID_PURGED 子句

本来以为是mysql命令出现了问题,发现mysqldump命令执行时出现一条Wanrring:

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of 
all transactions, even those that changed suppressed parts of the database. If you don't 
want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass 
--all-databases --triggers --routines --events.

解决:修改mysqldump命令,加上“--set-gtid-purged=OFF”

mysqldump uroot -p123456 -h192.168.0.1 mysqldatabase --set-gtid-purged=OFF>mysql.sql

成功运行!


其实写这篇博,只是为了想吐槽一下:python确实很好用,可是这么久了,python3还特么没普及!

你可能感兴趣的:(MYSQL导入sql文件时间出现:Access denied)