[mythtv-commits] [MythTV/mythtv] aa683b: Plugins/dbcheck: Replace CHARACTER SET 'default' w...

billmeek noreply at github.com
Sun Jan 17 17:33:08 UTC 2021


  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: aa683ba5b99815a1197c3380de6c3d992d4f651e
      https://github.com/MythTV/mythtv/commit/aa683ba5b99815a1197c3380de6c3d992d4f651e
  Author: Bill Meek <billmeek at mythtv.org>
  Date:   2021-01-17 (Sun, 17 Jan 2021)

  Changed paths:
    M mythplugins/mytharchive/mytharchive/archivedbcheck.cpp
    M mythplugins/mythgame/mythgame/gamedbcheck.cpp
    M mythplugins/mythmusic/mythmusic/musicdbcheck.cpp
    M mythplugins/mythweather/mythweather/weatherdbcheck.cpp
    M mythtv/bindings/python/MythTV/static.py

  Log Message:
  -----------
  Plugins/dbcheck: Replace CHARACTER SET 'default' with 'utf8'

Fix required for MySQL v8 because using 'default' CHARACTER
SET results in a "You have an error in your SQL syntax"
message.

There are two issues to solve.

 1. New systems that will execute the DBSchemaVer changes
    for the mytharchive, mythgame, mythmusic & mythweather
    plugin tables.

 2. Existing systems that have up to date DBSchemaVer for
    the above but need a new version to use the unambiguous
    character set. So

Note that the 'old' DBSchemaVers were changed in 2/2020 to:
    ArchiveDBSchemaVer
    GameDBSchemaVer
    MusicDBSchemaVer
    WeatherDBSchemaVer

Tested with: MySQL 5.7.30 and 8.0.20, MariaDB 10.3.22 and
10.4.13.

Using utf8 is only going to be a temporary solution because
MySQL v8 issues this warning when doing the ALTER TABLEs in
the fix:

  Warning | 3719 | 'utf8' is currently an alias for the
  character set UTF8MB3, but will be an alias for UTF8MB4
  in a future release. Please consider using UTF8MB4 in
  order to be unambiguous.

Modified version of: https://forum.mythtv.org/viewtopic.php?p=17769#p17769

To see current character sets:

SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA
    WHERE SCHEMA_NAME='mythconverg';

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION FROM INFORMATION_SCHEMA.`TABLES`
    WHERE TABLE_SCHEMA='mythconverg';

SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,CHARACTER_SET_NAME
    FROM INFORMATION_SCHEMA.`COLUMNS`
        WHERE TABLE_SCHEMA='mythconverg' AND CHARACTER_SET_NAME != 'utf8';

Closes #trac-13577




More information about the mythtv-commits mailing list