1、从dump文件中导入表结构报错:
ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.
https://www.cnblogs.com/tonnytangy/p/7779164.html
2、参数优化:mysql内存消耗过大的情况
查看了两个mysql各自的my.cnf,发现innodb_buffer_pool_size为16G的消耗内存大,为2G的消耗小
测试:
在虚拟机上的Mysql,初始innodb_buffer_pool_size=134217728,即100多M
重新设置为:set global innodb_buffer_pool_size
512M————>内存没什么变化 3.69G的把内存消耗了365M
2048M————>内存消耗9%,498M
5G——————>内存消耗16.3%,768M
3、转MySQL提示:The server quit without updating PID file问题
发现是在/etc目录下的my.cnf问题,去掉这个文件就正常了。可能是由于我安装的是mariadb的原因
4、用一个账号登录mysql,执行SHOW MASTER STATUS;的时候,报错:
pid:29 nid:1 exception:canal:test01:com.alibaba.otter.canal.parse.exception.CanalParseException: command : 'show master status' has an error!
Caused by: java.io.IOException: ErrorPacket [errorNumber=1227, fieldCount=-1, message=Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation, sqlState=42000, sqlStateMarker=#]
解决办法:给该账号赋予缺失的权限
但是这是涉及到主从复制,这个权限属于全局的,所以不能只作用于一个数据库,例如:
grant REPLICATION CLIENT ON otter01.* TO ‘jenny’@’%’;
就会报错:ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
正确的为:
grant REPLICATION CLIENT ON . TO ‘jenny’@’%’;
flush privileges;
参考:https://www.cnblogs.com/tianshupei88/p/5075367.html
但是赋权之后还是报错,解决办法:
参考:https://blog.csdn.net/my201110lc/article/details/77864202
1)看到文件名是my-default.ini,里面也配置了
2)log-bin=mysql-bin #添加这一行就ok
3)binlog-format=ROW #选择row模式
4)server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
5、mysql优化遇到的问题
6、mysqlbinlog: [ERROR] unknown variable 'default_character_set=utf8mb4
解决办法:加入参数–no-defaults,例如:用mysqlbinlog --no-defaults mysql-bin.000001 命令执行
7、代码里面调jdbc,报错:
Establishing SSL connection without server's identity verification is not recommended.
解决办法:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false