forked from moodlehq/moodle-ci-runner
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make mysql replicas to work with MySQL 5.7 and 5.8
This fixes moodlehq#80. It has been detected that MySQL main/replica configurations have stopped working. My personal bet is that some changes in the MySQL images have leaded to that, or maybe they were working for MySQL 5.6 and never have worked to 5.7. NVM, this commit just makes them back to work for both 5.7 and 8.0, that are the currently "supported" MySQL databases. Note that, after this PR, we'll be checking the MariaDB main/replica configurations because they may need similar changes. Also, while I've tested the solution locally, we are lacking any own CI for this product, so I've created an issue about that: moodlehq#81 Finally, here there are the explanations about the changes performed: 1. Moved the bin logs from /var/log/mysql to /var/lib/mysql . Reason being that the former directory doesn't exist anymore in MySQL 5.7 and up (and also, that the binary logs are better with data than with logs). 2. Removed the 'multi_admin' user related stuff. Not needed at all. 3. Minor changes to moodle and root GRANT/IDENTIFIED stuff because of changes in MySQL 8 (already deprecated in 5.7). Use ALTER USER instead. 4. Use IDENTIFIED WITH mysql_native_password (the old password schema), because MySQL 8, when using the new hashed schema requires communications between the hosts to be encrypted. We don't need that extra complexity and while it can be disabled as part of the CHANGE MASTER TO command... it cannot be disabled for MySQL 5.7. SO the only option working in both versions is the used one (force old passwords schema for the replication user). 5. Remove the need of stopping and starting the temp server in the replica. All the commands can be executed with the temp server running and then the container entrypoint manageing itself will stop the temp server and start the final one. 6. Stop needing gosu completely. Now the replica conf files are made available via volume mount (like the standalone or main cases). And that's all. The changes are small and subtle, but each one is for a good reason, I think.
- Loading branch information
Showing
7 changed files
with
12 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 2 additions & 4 deletions
6
runner/master/mysql.d/master/docker-entrypoint-initdb.d/01_privileges.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,6 @@ | ||
GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass'; | ||
CREATE USER 'replication'@'%' IDENTIFIED BY 'replication'; | ||
CREATE USER 'replication'@'%' IDENTIFIED WITH mysql_native_password BY 'replication'; | ||
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; | ||
|
||
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'moodle'; | ||
GRANT ALL ON *.* TO 'moodle'@'%' IDENTIFIED BY 'moodle'; | ||
ALTER USER 'root'@'%' IDENTIFIED BY 'moodle'; | ||
|
||
FLUSH PRIVILEGES; |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
[mysqld] | ||
server-id = 2 | ||
relay-log = /var/lib/mysql/mysql-relay-bin.log | ||
log_bin = /var/lib/mysql/mysql-bin.log | ||
|
||
# List of databases to replicate. | ||
binlog_do_db = moodle |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters