Support MySQL 5.7#1712
Conversation
These options were removed entirely in MySQL 5.7.
The latter is deprecated. Also check for both pid and sock files to disappear when shutting down, or else there is a race.
This causes mysqld to ignore relay logs on disk at startup, and instead start replicating from the master wherever the SQL thread left off. This is generally recommended for safer crash recovery. We also do it to avoid problems caused by spurious Previous-GTIDs lists in relay logs that occur when we restart mysqld in integration tests.
|
The problem in I wasn't able to find a way to force it to stop remembering the incorrect Previous-GTIDs value. I tried various combinations of rotating/flushing relay logs, etc. In the end, I decided to fix this by enabling |
| @@ -154,14 +154,14 @@ if [ -z "$MYSQL_FLAVOR" ]; then | |||
| fi | |||
| case "$MYSQL_FLAVOR" in | |||
| "MySQL56") | |||
There was a problem hiding this comment.
Why not add a case for MySQL57 here?
"MySQL56" | "MySQL57")In the current form it's misleading that test.go knows a "mysql57" flavor, but bootstrap.sh doesn't.
The entry in Dockerfile.mysql57 is also confusing because of that:
ENV MYSQL_FLAVOR MySQL56
Having a MySQL57 flavor would be cleaner. That we map it internally to 5.6 shouldn't bother the enduser.
There was a problem hiding this comment.
In general I didn't want the "flavor" concept to be related to versions. The main point of flavors is to deal with forks of MySQL that diverge in significant ways, such as in GTID implementations. For example, there should be one flavor for Oracle's lineage and one for MariaDB since they've diverged to this extent.
The fact that the "MySQL56" flavor has a number in it is a mistake. I named it that because I thought "MySQL" would be too generic and I couldn't think of a better name - "OracleMySQL"?
The reason test.go distinguishes between 5.6 and 5.7 is because it needs to pick a specific Docker image, and we now maintain Docker images for multiple versions within a flavor. This is another mistake in naming; I shouldn't have called the test.go flag "flavor" because it's a different dimension than MYSQL_FLAVOR.
There was a problem hiding this comment.
Thanks for the clarification.
The test.go could be renamed to -image instead of -flavor for example?
After all, I'm fine with the current state and don't think we need to take any actions now.
@alainjobart
This is mostly working now. There's only one test that I still need to fix (tabletmanager.py). There's also some warnings about performance_schema not getting bootstrapped, which I need to investigate.
This change is