Skip to content
This repository was archived by the owner on Jun 30, 2025. It is now read-only.

Commit bd814b8

Browse files
authored
Merge pull request #89 from percona/PMM-2440
PMM-2440: MySQL 8.0.
2 parents 4edb9cc + 5d9b686 commit bd814b8

File tree

1,770 files changed

+482838
-18884
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,770 files changed

+482838
-18884
lines changed

.travis.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,28 @@ env:
2020
- MYSQL_IMAGE=mysql:5.5
2121
- MYSQL_IMAGE=mysql:5.6
2222
- MYSQL_IMAGE=mysql:5.7
23+
# github.com/go-sql-driver/mysql doesn't support new default auth plugin in MySQL 8.0.
24+
# https://github.com/go-sql-driver/mysql/issues/785
25+
# https://github.com/go-sql-driver/mysql/pull/552
26+
- MYSQL_IMAGE=mysql:8.0 MYSQL_COMMAND=--default-authentication-plugin=mysql_native_password
2327
- MYSQL_IMAGE=percona/percona-server:5.6
2428
- MYSQL_IMAGE=percona/percona-server:5.7
29+
# percona:5.5 doesn't pass one test, not really sure why as other 5.5 images work.
30+
#- MYSQL_IMAGE=percona:5.5
31+
- MYSQL_IMAGE=percona:5.6
32+
- MYSQL_IMAGE=percona:5.7
2533
- MYSQL_IMAGE=mariadb:5.5
2634
- MYSQL_IMAGE=mariadb:10.0
2735
- MYSQL_IMAGE=mariadb:10.1
36+
# pt-mysql-summary hangs on mariadb:10.2
37+
# https://jira.percona.com/browse/PT-1549
38+
#- MYSQL_IMAGE=mariadb:10.2
2839
- MONGODB_IMAGE=mongo:3.2
2940
- MONGODB_IMAGE=mongo:3.4
41+
- MONGODB_IMAGE=mongo:3.6
3042
- MONGODB_IMAGE=percona/percona-server-mongodb:3.2
3143
- MONGODB_IMAGE=percona/percona-server-mongodb:3.4
44+
- MONGODB_IMAGE=percona/percona-server-mongodb:3.6
3245

3346
matrix:
3447
include:
@@ -57,12 +70,7 @@ before_script:
5770
# run docker containers
5871
- docker-compose up -d
5972
# wait for MySQL to become available
60-
- |
61-
until docker-compose exec mysql mysql -u"${MYSQL_USER}" -e 'SELECT 1' > /dev/null; do
62-
>&2 echo "MySQL is unavailable - sleeping"
63-
sleep 1
64-
done
65-
>&2 echo "MySQL is up"
73+
- ./with_backoff.sh docker-compose exec mysql mysql -u"${MYSQL_USER}" -e 'SELECT 1'
6674
# log versions
6775
- docker --version
6876
- docker-compose --version

docker-compose.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@ services:
66
- ${MYSQL_HOST:-127.0.0.1}:${MYSQL_PORT:-3306}:3306
77
environment:
88
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
9-
# MariaDB >= 10.0.12 doesn't enable Performance Schema by default so we need to do it manually
10-
# https://mariadb.com/kb/en/mariadb/performance-schema-overview/#activating-the-performance-schema
11-
command: --performance-schema --secure-file-priv=""
9+
command:
10+
# MariaDB >= 10.0.12 doesn't enable Performance Schema by default so we need to do it manually
11+
# https://mariadb.com/kb/en/mariadb/performance-schema-overview/#activating-the-performance-schema
12+
- --performance-schema
13+
- --secure-file-priv=
14+
- ${MYSQL_COMMAND:---verbose}
1215
volumes:
1316
- ./test/schema/:/docker-entrypoint-initdb.d/:rw
1417
mongo:

glide.lock

Lines changed: 45 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import:
2121
- src/go/mongolib/stats
2222
- package: github.com/percona/pmgo
2323
- package: github.com/percona/pmm
24+
version: f190773155b8927dee5c0400a6385bbb83a10f44
2425
subpackages:
2526
- proto
2627
- proto/config

m/docker-compose.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: '3'
2+
services:
3+
mysql:
4+
image: mysql:8.0
5+
ports:
6+
- 127.0.0.1:3306:3306
7+
environment:
8+
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
9+
command:
10+
- --default-authentication-plugin=mysql_native_password

m/with_backoff.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
3+
# Retries a command a configurable number of times with backoff.
4+
#
5+
# The retry count is given by ATTEMPTS (default 120), the backoff
6+
# timeout is given by TIMEOUT in seconds (default 1.)
7+
#
8+
# Based on: https://stackoverflow.com/a/8351489/916440
9+
function with_backoff {
10+
local max_attempts=${ATTEMPTS-120}
11+
local timeout=${TIMEOUT-1}
12+
local attempt=1
13+
local exitCode=0
14+
15+
while (( $attempt < $max_attempts ))
16+
do
17+
if "$@"
18+
then
19+
return 0
20+
else
21+
exitCode=$?
22+
fi
23+
24+
echo "Failure! Retrying in $timeout.." 1>&2
25+
sleep $timeout
26+
attempt=$(( attempt + 1 ))
27+
done
28+
29+
if [[ $exitCode != 0 ]]
30+
then
31+
echo "Giving up! ($@)" 1>&2
32+
fi
33+
34+
return $exitCode
35+
}
36+
37+
with_backoff "$@"

qan/analyzer/mysql/worker/perfschema/perfschema_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ func testRealWorker(t *testing.T, logger *pct.Logger, dsn string) {
516516
}
517517
var class *event.Class
518518
for _, c := range res.Class {
519-
if c.Fingerprint == "SELECT ? FROM DUAL " {
519+
if c.Fingerprint == "SELECT ? FROM DUAL" {
520520
class = c
521521
break
522522
}

qan/analyzer/mysql/worker/perfschema/worker.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,12 @@ SELECT
194194
if err != nil {
195195
return // This bubbles up too (see above).
196196
}
197+
198+
// "The Performance Schema could produce DIGEST_TEXT values with a trailing space.
199+
// This no longer occurs. (Bug #26908015)"
200+
// https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html
201+
row.DigestText = strings.TrimSpace(row.DigestText)
202+
197203
c <- row
198204
}
199205
if err = rows.Err(); err != nil {

qan/analyzer/mysql/worker/slowlog/slowlog_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,7 @@ func (s *WorkerTestSuite) TestStop(t *C) {
700700

701701
t.Check(res.Global.TotalQueries, Equals, uint(1))
702702
t.Check(res.Class, HasLen, 1)
703+
t.Check(err, IsNil)
703704
}
704705

705706
func (s *WorkerTestSuite) TestResult014(t *C) {

qan/qan_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ func testGetDefaultsBoolValues(
160160
Set: fmt.Sprintf("SET GLOBAL %s=0", keys[i].db),
161161
},
162162
})
163-
require.Nil(t, err)
163+
require.NoError(t, err)
164164
got := m.GetDefaults(protoInstance.UUID)
165165
assert.Equal(t, false, got[keys[i].json])
166166

@@ -171,7 +171,7 @@ func testGetDefaultsBoolValues(
171171
Set: fmt.Sprintf("SET GLOBAL %s=1", keys[i].db),
172172
},
173173
})
174-
require.Nil(t, err)
174+
require.NoError(t, err)
175175
got = m.GetDefaults(protoInstance.UUID)
176176
assert.Equal(t, true, got[keys[i].json])
177177
} else {

0 commit comments

Comments
 (0)