Q:

Set MySQL default time zone to UTC

I want to set the default time zone of my MySQL install to UTC.  My system time zone is Australia/Brisbane, and I want to leave it that way, I just want to set the default time zone for MySQL.  I've added the following line to /etc/mysql/mysql.conf.d/mysqld.cnf
default_time_zone=UTC

but now my mysql.service doesn't start. 
systemctl start mysql.service gives me:
Job for mysql.service failed because the control process exited with error code. 
See "systemctl  status mysql.service" and "journalctl  -xe" for details. 

systemctl status mysql.service tells me:
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (start-post) (Result: exit-code) since Thu 2018-01-11 09:36:12 AEST; 11s ago
  Process: 556 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
  Process: 549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 556 (code=exited, status=1/FAILURE); Control PID: 557 (mysql-systemd-s)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/mysql.service
           └─control
             ├─557 /bin/bash /usr/share/mysql/mysql-systemd-start post
             └─606 sleep 1

Jan 11 09:36:12 irregular-apocalypse systemd[1]: Starting MySQL Community Server...
Jan 11 09:36:14 irregular-apocalypse systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE

journalctl -xe gives me:
Jan 11 09:37:15 irregular-apocalypse systemd[1]: Starting MySQL Community Server...
-- Subject: Unit mysql.service has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit mysql.service has begun starting up. 
Jan 11 09:37:15 irregular-apocalypse audit[757]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/757/status" pid=757 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=122 ouid=
Jan 11 09:37:15 irregular-apocalypse audit[757]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=757 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=
Jan 11 09:37:15 irregular-apocalypse audit[757]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/757/status" pid=757 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=122 ouid=
Jan 11 09:37:15 irregular-apocalypse kernel: audit: type=1400 audit(1515627435.055:544): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/757/status" pid=757 comm="mysqld" requested_mask
Jan 11 09:37:15 irregular-apocalypse kernel: audit: type=1400 audit(1515627435.055:545): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=757 comm="mysqld" reque
Jan 11 09:37:15 irregular-apocalypse kernel: audit: type=1400 audit(1515627435.055:546): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/757/status" pid=757 comm="mysqld" requested_mask
Jan 11 09:37:16 irregular-apocalypse systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE

I've looked into the apparmor errors and have concluded that they are not contributing to my problem, as those same errors are present if I remove the default_time_zone config item and start the server:
Jan 11 09:40:14 irregular-apocalypse systemd[1]: Starting MySQL Community Server...
-- Subject: Unit mysql.service has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit mysql.service has begun starting up. 
Jan 11 09:40:14 irregular-apocalypse audit[1516]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/1516/status" pid=1516 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=122 ou
Jan 11 09:40:14 irregular-apocalypse audit[1516]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=1516 comm="mysqld" requested_mask="r" denied_mask="r" fsui
Jan 11 09:40:14 irregular-apocalypse audit[1516]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/1516/status" pid=1516 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=122 ou
Jan 11 09:40:14 irregular-apocalypse kernel: audit: type=1400 audit(1515627614.793:562): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/1516/status" pid=1516 comm="mysqld" requested_ma
Jan 11 09:40:14 irregular-apocalypse kernel: audit: type=1400 audit(1515627614.793:563): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=1516 comm="mysqld" requ
Jan 11 09:40:14 irregular-apocalypse kernel: audit: type=1400 audit(1515627614.793:564): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/1516/status" pid=1516 comm="mysqld" requested_ma
Jan 11 09:40:15 irregular-apocalypse systemd[1]: Started MySQL Community Server. 
-- Subject: Unit mysql.service has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit mysql.service has finished starting up. 
-- 
-- The start-up result is done. 

The only file that I have in /var/log/mysql is error.log, and it does not contain anything relating to the failed startup.  I cannot find any *.err or *.log files in my data directory (/var/lib/mysql). 
I've purged and reinstalled mysql-server multiple times with no effect. 
My question is really two:

Is this the correct way to set the default_time_zone for MySQL?  If not, how do I do it? 
Failing an answer to question 1 resolving my problem, how do I find out what's causing the error in MySQL starting? 

OS: Ubuntu Desktop 17.10
MySQL: 5.7

A:

So it turns out the problem was that I hadn't populated the time zone tables.  Running this command fixed my problem:
mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql

