Hello Dan,
As you mentioned, Innodb is only supported on a second generation Cloud SQL instance. Trying to reproduce your results above, instead I got an error:
MySQL [test]> create table test (a int) engine=myISAM;
ERROR 3161 (HY000): Storage engine MyISAM is disabled (Table creation is disallowed).
And that is consistent with this official troubleshooting guide where for second generation instances it throws this error. However when trying the same on a First generation Cloud SQL instance it works fine, as per this document InnoDB is only recommended and not enforced.
MySQL [firstGen]> create table test (a int) engine=myISAM;
Query OK, 0 rows affected (0.15 sec)
That said, if you are using a second generation instance, it could be an intermittent issue at the time, or a missing flag (maybe at instance creation) that allowed using “myISAM”. Hence, if you are still affected, you may open a private report (GCP Private issues component) including your instance name and project for further investigation.
Hello Dan,
I found it odd that on your existing instance, you initially were not able to use myISAM, but then somehow that changed. So a possible explanation for this behavior could be that you had configured your instance for high availability, and the replica itself may had this issue and not the original master. Hence, the failover instance (due to failover) could have replaced the original master (became master and retained the original master’s ID). [Side note] The procedure also creates a new failover instance to replace the old failover.
That said, I tested this theory and found that when the failover instance replaces the master, it indeed allows using myISAM, and that is not an expected behavior. Thus, I opened this public issue for further investigation by the Cloud SQL team. If that is not the case with you, you may open a private issue per my suggestion above to inspect your instance.