Bump up the minimum required MySQL version (#25465)

MySQL 5.7 is at end of life.

https://mattermost.atlassian.net/browse/MM-55589

```release-note
We bump up minimum MySQL version to be 8.0.0
```


Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
Этот коммит содержится в:
Agniva De Sarker
2024-01-11 22:18:20 +05:30
коммит произвёл GitHub
родитель 4ab6b98c63
Коммит 04cf1ed114
14 изменённых файлов: 37 добавлений и 22 удалений

Просмотреть файл

@@ -828,7 +828,7 @@ test-migration:
@sed -i'' -e 's|{{ .source_schema }}|${MYSQL_SCHEMA}|g' tests/temp.load
# run pgloader and save the logs
pgloader tests/temp.load > migration.log
pgloader --debug tests/temp.load > migration.log
$(GO) install github.com/mattermost/dbcmp/cmd/dbcmp@latest
# compare two database contents

Просмотреть файл

@@ -1,7 +1,7 @@
version: '2.4'
services:
mysql:
image: "mysql/mysql-server:5.7.12"
image: "mysql/mysql-server:8.0.32"
restart: always
networks:
- mm-test
@@ -19,7 +19,7 @@ services:
volumes:
- ./docker/mysql.conf.d/source.cnf:/etc/mysql/conf.d/mysql.cnf
mysql-read-replica:
image: "mysql/mysql-server:5.7.12"
image: "mysql/mysql-server:8.0.32"
restart: always
networks:
- mm-test

Просмотреть файл

@@ -1,6 +1,7 @@
[mysqld]
bind-address = 0.0.0.0
default-authentication-plugin=mysql_native_password
log-output = NONE
slow-query-log = 0
innodb_flush_log_at_trx_commit = 2

Просмотреть файл

@@ -6,11 +6,11 @@ MYSQL_USERNAME=root
MYSQL_PASSWORD=mostest
MYSQL_SCHEMA=mattermost_test
POSTGRES_MIGRATIONS_PATH=./channels/db/migrations/postgres
MYSQL_DSN=${MYSQL_USERNAME}:${MYSQL_PASSWORD}@tcp(mysql:3306)/${MYSQL_SCHEMA}?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s&multiStatements=true
MYSQL_DSN=${MYSQL_USERNAME}:${MYSQL_PASSWORD}@tcp(mysql:3306)/${MYSQL_SCHEMA}?charset=utf8mb4&readTimeout=30s&writeTimeout=30s&multiStatements=true
POSTGRES_DSN=postgres://${PG_USERNAME}:${PG_PASSWORD}@postgres:5432/${PG_SCHEMA}?sslmode=disable
MM_SERVICESETTINGS_ENABLELOCALMODE=true
MM_SQLSETTINGS_DRIVERNAME=mysql
MM_SQLSETTINGS_DATASOURCE=mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s&multiStatements=true&maxAllowedPacket=4194304
MM_SQLSETTINGS_DATASOURCE=mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4&readTimeout=30s&writeTimeout=30s&multiStatements=true&maxAllowedPacket=4194304
MAX_WAIT_SECONDS=500
IS_CI=true

Просмотреть файл

@@ -1,4 +1,4 @@
TEST_DATABASE_MYSQL_DSN=mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s&multiStatements=true&maxAllowedPacket=4194304
TEST_DATABASE_MYSQL_DSN=mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4&readTimeout=30s&writeTimeout=30s&multiStatements=true&maxAllowedPacket=4194304
TEST_DATABASE_POSTGRESQL_DSN=postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10
TEST_DATABASE_MYSQL_ROOT_PASSWD=mostest
GOBIN=/mattermost/server/bin

Просмотреть файл

@@ -1,7 +1,7 @@
version: '2.4'
services:
mysql:
image: mattermostdevelopment/mirrored-mysql:5.7.12
image: mattermostdevelopment/mirrored-mysql:8.0.32
restart: always
environment:
MYSQL_ROOT_HOST: "%"

Просмотреть файл

@@ -1,7 +1,7 @@
version: '2.4'
services:
mysql:
image: mattermostdevelopment/mirrored-mysql:5.7.12
image: mattermostdevelopment/mirrored-mysql:8.0.32
restart: always
environment:
MYSQL_ROOT_HOST: "%"

Просмотреть файл

@@ -52,8 +52,7 @@ const (
// 9.6.3 would be 90603.
minimumRequiredPostgresVersion = 110000
// major*1000 + minor*100 + patch
minimumRequiredMySQLVersion = 5712
minimumRecommendedMySQLVersion = 8000
minimumRequiredMySQLVersion = 8000
migrationsDirectionUp migrationDirection = "up"
migrationsDirectionDown migrationDirection = "down"
@@ -1232,9 +1231,6 @@ func (ss *SqlStore) ensureMinimumDBVersion(ver string) (bool, error) {
return false, fmt.Errorf("cannot parse MySQL DB version: %w", err2)
}
intVer := majorVer*1000 + minorVer*100 + patchVer
if intVer < minimumRecommendedMySQLVersion {
mlog.Warn("The MySQL version being used is EOL. Please upgrade to a later version.", mlog.Int("current_version", intVer), mlog.Int("minimum_recommended_version", minimumRecommendedMySQLVersion))
}
if intVer < minimumRequiredMySQLVersion {
return false, fmt.Errorf("Minimum MySQL version requirements not met. Found: %s, Wanted: %s", versionString(intVer, *ss.settings.DriverName), versionString(minimumRequiredMySQLVersion, *ss.settings.DriverName))
}

Просмотреть файл

@@ -22,10 +22,10 @@ import (
)
const (
defaultMysqlDSN = "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s&multiStatements=true&maxAllowedPacket=4194304"
defaultMysqlDSN = "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4&readTimeout=30s&writeTimeout=30s&multiStatements=true&maxAllowedPacket=4194304"
defaultPostgresqlDSN = "postgres://mmuser:mostest@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10"
defaultMysqlRootPWD = "mostest"
defaultMysqlReplicaDSN = "root:mostest@tcp(localhost:3307)/mattermost_test?charset=utf8mb4,utf8\u0026readTimeout=30s"
defaultMysqlReplicaDSN = "root:mostest@tcp(localhost:3307)/mattermost_test?charset=utf8mb4\u0026readTimeout=30s"
)
func getEnv(name, defaultValue string) string {

Просмотреть файл

@@ -14,7 +14,7 @@ docker exec -i mattermost-mysql mysql -D migrated -uroot -pmostest -e "INSERT IN
echo "Setting up config for db migration"
cat config/config.json | \
jq '.SqlSettings.DataSource = "mmuser:mostest@tcp(localhost:3306)/migrated?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"' | \
jq '.SqlSettings.DataSource = "mmuser:mostest@tcp(localhost:3306)/migrated?charset=utf8mb4&readTimeout=30s&writeTimeout=30s"' | \
jq '.SqlSettings.DriverName = "mysql"' > $TMPDIR/config.json
echo "Running the migration"
@@ -22,7 +22,7 @@ make ARGS="db migrate --config $TMPDIR/config.json" run-cli
echo "Setting up config for fresh db setup"
cat config/config.json | \
jq '.SqlSettings.DataSource = "mmuser:mostest@tcp(localhost:3306)/latest?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"' | \
jq '.SqlSettings.DataSource = "mmuser:mostest@tcp(localhost:3306)/latest?charset=utf8mb4&readTimeout=30s&writeTimeout=30s"' | \
jq '.SqlSettings.DriverName = "mysql"' > $TMPDIR/config.json
echo "Setting up fresh db"

Просмотреть файл

@@ -90,7 +90,7 @@
},
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s\u0026maxAllowedPacket=4194304",
"DataSource": "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4\u0026readTimeout=30s\u0026writeTimeout=30s\u0026maxAllowedPacket=4194304",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,