Mariadb – Adding database-specific privs for user gives table ‘db’ is full, MariaDB, *tiny* toy database

mariadbtable

On Windows 10, running 10.4.14-MariaDB – mariadb.org binary distribution
Using phpmyadmin, logged in as root.

I have a rather small WordPress database named PBALL_WP that I loaded from a mysqldump file as the root user through the mysql command-line client. I created a new user named PBALL, and wish to give that user all privileges on database PBALL_WP. Here are the users:

User accounts overview
User name   Host name   Password    Global privileges   User group  Grant   Action
Any         %           No          USAGE                           No      Edit privileges
PBALL       %           Yes         USAGE                           No      Edit privileges
pma         localhost   No          USAGE                           No      Edit privileges
root        127.0.0.1   No          ALL PRIVILEGES                  Yes     Edit privileges
root        ::1         No          ALL PRIVILEGES                  Yes     Edit privileges
root        localhost   Yes         ALL PRIVILEGES                  Yes     Edit privileges

So for User PBALL I click on "Edit privileges". I don't want to give it global privileges (do I need to?), so I click on the "Database" button on the next screen, which brings up a panel for Database-specific privileges. I select "pball_wp" from the selection box of database names and click "go". That brings up the following screen of privileges for user PBALL on database PBALL_WP, and I check the box for "Check All" and click "Go".

     Edit privileges: User account 'PBALL'@'%' - Databases pball_wp
Database-specific privileges Check all
Note: MySQL privilege names are expressed in English.

 Data       Structure               Administration
 SELECT     CREATE                  GRANT
 INSERT     ALTER                   LOCK TABLES
 UPDATE     INDEX                   REFERENCES
 DELETE     DROP
            CREATE TEMPORARY TABLES
            SHOW VIEW
            CREATE ROUTINE
            ALTER ROUTINE
            EXECUTE
            CREATE VIEW
            EVENT
            TRIGGER

Doing that produces the following:

Error
SQL query:
GRANT ALL PRIVILEGES ON  `pball_wp`.* TO 'PBALL'@'%' WITH GRANT OPTION;
MySQL said:
#1114 - The table 'db' is full

I believe that table 'db' refers to the table in the database named 'mysql', and the documentation says that this table records database privileges. So that seems to make sense.

But the mysql table only has three rows in it! Here it is:

3 rows in table db

Anything I've been able to find about this error has to do with actually exceeding a limit in disk space or pending transactions or something like that. This is basically a new installation (xampp 7.4.10) with this small pball_wp database the very first database loaded into it. Any ideas what I can do to figure out why this is happening? I did have problems getting phpmyadmin working at all, which seemed to stem mostly from the initial configuration specifying "localhost" instead of "127.0.0.1". And I notice that there appear to be two root accounts, one with no password on 127.0.0.l and the other with a password on localhost. I login with a password to phpmyadmin. I definitely got all screwed up trying to get things running at all, I had to keep stopping and restarting httpd in order to get logged in to phpmyadmin…

I'm really at wit's end with this… Help please!

EDIT: Here is what I could find out about the db table. It shows DATA_FREE as 0, but it's 0 for most all tables. As far as I know, that's just the amount of unused allocated space (overhead), and shouldn't trigger a "table full" error.
enter image description here

EDIT 2: I just tried manually inserting a row into the db table with phpmyadmin, and get the same error. So it's consistent – consistently crazy!!!

Best Answer

This isn't really an answer, in that I still have no idea why this was failing. It just provides a workaround. I noticed that the db table used the "new" storage engine "aria", so I converted it to use the traditional MyIsam storage engine, like so:

alter table db engine=myisam

After doing this, the problems posted disappeared.