MySQL and MariaDB – Troubleshooting Ignored binlog_format

mariadbMySQL

I'm trying to make moodle work on my system, so i need to change bin_log format to MIXED or ROW.

But, i'm having a lot of problems doing that. Any changes i try to do don't work;

MariaDB [(none)]> SHOW VARIABLES LIKE 'binlog_format'
    -> ;
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0.00 sec)

MariaDB [(none)]> SET GLOBAL binlog_format = 'ROW';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'binlog_format'
    -> ;
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0.00 sec)

And i've also set binlog_format=row on my.cnf.
One weird thing i noticied is that it seems that the basedir is wrong. the mariadb basedir is /etc/mysql, but it shows /usr as basedir:

MariaDB [(none)]> SHOW VARIABLES LIKE 'basedir';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| basedir       | /usr  |
+---------------+-------+

Anyone knows what the problem can be?

Best Answer

"Global" settings are initial values for when you login. You failed to log out and log back in, hence it still said STATEMENT.

/etc/ is a place for configuration-like stuff, not for basedir.

/usr does not seem right for basedir, either. Perhaps /usr/mysql or /usr/mariadb?