1.下载maxwell 注意版本
maxwell-1.29.2.tar.gz以上是JDK11版本, maxwell-1.29.2.tar.gz是JDK1.8版本
2.在mysql8.0上,创建远程连接用户并授权
MySQL 8.0已经不支持下面这种命令写法
grant all privileges on *.* to maxwell@"%" identified with 'mysql_native_password' by "MyNewPass4!";
正确的写法是先创建用户
CREATE USER 'maxwell'@'%' IDENTIFIED with 'mysql_native_password' BY 'MyNewPass4!';
千万要注意 ‘mysql_native_password’ 要不然远程连接有问题,因为mysql8.0相应远程访问自动会将原始密码加密
再给用户授权
grant all privileges on *.* to 'maxwell'@'%' ;
出现的问题:
MySQL8.0.16版本中新增了一个system_user帐户类型,当我通过phpAdmin新增用户并赋予权限时
CREATE USER 'homestead'@'%' IDENTIFIED WITH caching_sha2_password BY '***';
GRANT ALL PRIVILEGES ON *.* TO 'maxwell'@'%' WITH GRANT OPTION;
GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON
*.* TO maxwell@'%';
1
2
这个时候系统会报错:
1227 - Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
我查阅了一下官方文档,原因是由于root用户没有SYSTEM_USER权限,把权限加入后即可解决:
grant system_user on *.* to 'root';
1
然后再重复之前操作即可。
GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON
*.* TO maxwell@'%';
3.启动maxwell
bin/maxwell --user='maxwell' --password='MyNewPass4!' --host='localhost' --producer=stdout
4.如果想做mysql主从复制,在slave上
CHANGE MASTER TO MASTER_HOST='192.168.10.128', MASTER_USER='maxwell',MASTER_PASSWORD='MyNewPass4!', MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=156;
遇到的问题:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
参见: