mysql在5.6版本之后,就可以将undo表空间从系统表空间分离出来。如果在初始化mysql的时候,/etc/my.cnf文件中,并没有指定innodb_undo_tablespaces的数量,那么默认情况undo就是存放在系统表空间中。初始化成功之后,尝试修改innodb_undo_tablespaces参数,数据库就会报错
root@localhost [(none)]>set global innodb_undo_tablespaces=3; ERROR 1238 (HY000): Variable 'innodb_undo_tablespaces' is a read only variable
或者修改/etc/my.cnf文件,重新启动
[root@rsync-test03 data]# service mysqld start Starting MySQL..The server quit without updating PID file ([FAILED]sql/mysql3306/data/rsync-test03.pid).
官方文档解释: