mysql主从同步在master机上为slave机添加一同步帐号问题。

mysql 8.0.28 设置主从同步。需要建立

在master机上为slave机添加一同步帐号
在MYSQL中执行:
grant replication slave on . to 'repl'@'192.1681.220' identified by '123456';
提示错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'slave on . to exmacc@192.168.229.131 identified by "exmacccc"' at line 1
正常改密码无问题,例如:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'ctsi@Passw0rd';

网上的很多办法都不行,什么保留字需要反向括号之类的,也不是什么项目,就是学习心切,求指点。

  1. 首先可以明确,是语法错误。
  2. 根据单机mysql的授权方式可以发现,应该是
    grant 权限 on 数据库名称.表名称 to 用户名@主机 ...
    
  3. 同理应该尝试,指定数据库和表名,或者用*代表所有
    grant replication slave on *.* to 'repl'@'192.1681.220' identified by '123456';
    

这个就是语法错误,你安装的是mysql8,命令用的5.6的语法。
使用如下方式改密:
set password for repl@‘%’= password('123');
创建同步账户,可以先创建账户然后在授权。
CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘test123’;
grant replication slave on *.* to 'repl'@'192.1681.220'