分析:这里是检查检查连接和权限时的报错,于是找到apply_diff_relay_logs的375行
具体检测的语句如下:
"$_mysql --user=$_escaped_slave_user --password=$_escaped_slave_pass --host=$opt{slave_ip} --port=$opt{slave_port} -e \"set sql_log_bin=0; create table if not exists mysql.apply_diff_relay_logs_test(id int); insert into mysql.apply_diff_relay_logs_test values(1); update mysql.apply_diff_relay_logs_test set id=id+1 where id=1; delete from mysql.apply_diff_relay_logs_test; drop table mysql.apply_diff_relay_logs_test;
确实有创建表,没有指定主键
但是没主键 建表应该是不报错的呀?
突然想到mariadb10.1的版本是强制要求主键的,至此问题的原因找到
MariaDB [(none)]> show variables like '%primary%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_force_primary_key | ON |
+--------------------------+-------+
解决办法(找到了原因,一切迎刃而解):
1.修改innodb_force_primary_key的值为off。
2.修改MHA的检测语句,加上主键。
上一篇:MySQL的OPTIMIZE TABLE操作的建议有哪些
下一篇:MySQL中默认的sql_mode有什么坏处
mysql









