I briefly knocked my personal web server offline while upgrading the database. In this thread I explain the errors I encountered and how to fix them.
1.
Probably best to back up your config file before upgrading the pkg because the upgrade blew mine away. There was a message from version 8.0 saying something about deleting the configuration files. This caused the the above error in the mysql error log, until I replaced my config file. The specific configuration required to fix this error is as follows, under the
2.
After attempting to restart the mysql service, I got a different error message. This time it was fairly straightforward, the permissions on the mysql temp directory didn't allow the mysql service user to write to it. The difference is that, unlike mysql 8.0 and earlier, mysql 8.1 attempts to write a file there when starting up and refuses to start if it can't. To fix this, fix the permissions or ownership of the mysql temp directory.
3. Bonus trivia: mysqlx now listens on all interfaces by default, since version 8.0
This one's not actually an error but mysql added the mysqlx plugin and by default it listens on all interfaces, port 33060. You might not intend to expose it publicly so you can disable it entirely with the following configuration, otherwise you may wish to bind it to localhost only or keep it behind a firewall.
1.
Different lower_case_table_names settings for server ('0') and data dictionary ('1').
Probably best to back up your config file before upgrading the pkg because the upgrade blew mine away. There was a message from version 8.0 saying something about deleting the configuration files. This caused the the above error in the mysql error log, until I replaced my config file. The specific configuration required to fix this error is as follows, under the
[mysqld]
section.
Code:
lower_case_table_names = 1
2.
mysqld: Can't create/write to file '<MYSQL_TEMP_DIR/TEMPFILE>' (OS errno 13 - Permission denied)
After attempting to restart the mysql service, I got a different error message. This time it was fairly straightforward, the permissions on the mysql temp directory didn't allow the mysql service user to write to it. The difference is that, unlike mysql 8.0 and earlier, mysql 8.1 attempts to write a file there when starting up and refuses to start if it can't. To fix this, fix the permissions or ownership of the mysql temp directory.
3. Bonus trivia: mysqlx now listens on all interfaces by default, since version 8.0
This one's not actually an error but mysql added the mysqlx plugin and by default it listens on all interfaces, port 33060. You might not intend to expose it publicly so you can disable it entirely with the following configuration, otherwise you may wish to bind it to localhost only or keep it behind a firewall.
Code:
mysqlx = 0