Bug #92053 Document Bug for Production Deployment of InnoDB Cluster
Submitted: 17 Aug 2018 8:55 Modified: 5 Jun 2019 15:19
Reporter: Shinya Sugiyama Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.7 OS:Any
Assigned to: CPU Architecture:Any
Tags: InnoDB Cluster

[17 Aug 2018 8:55] Shinya Sugiyama
Description:
20.2.5 Production Deployment of InnoDB Cluster

https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-production-deployment.html

How to repeat:
 MySQL  localhost:3306  JS > dba.checkInstanceConfiguration('cluster_user@loco-db-00:3306')
Please provide the password for 'cluster_user@loco-db-00:3306': ************
Save password for 'cluster_user@loco-db-00:3306'? [Y]es/[N]o/Ne[v]er (default No): 
Validating local MySQL instance listening at port 3306 for use in an InnoDB cluster...
ERROR: The account 'cluster_user'@'10.0.0.0/255.0.0.0' is missing privileges required to manage an InnoDB cluster:
Missing privileges on schema 'mysql': DELETE, INSERT, UPDATE.
For more information, see the online documentation.
Dba.checkInstanceConfiguration: The account 'cluster_user'@'10.0.0.0/255.0.0.0' is missing privileges required to manage an InnoDB cluster. (RuntimeError)

 MySQL  localhost:3306  JS > 

GRANT DELETE, INSERT, UPDATE ON mysql.* TO cluster_user@'10.0.0.0/255.0.0.0';

 MySQL  localhost:3306  JS > \sql
Switching to SQL mode... Commands end with ;

 MySQL  localhost:3306  SQL > GRANT DELETE, INSERT, UPDATE ON mysql.* TO cluster_user@'10.0.0.0/255.0.0.0';
Query OK, 0 rows affected (0.0009 sec)

 MySQL  localhost:3306  SQL > 

 MySQL  localhost:3306  SQL > \js
Switching to JavaScript mode...

 MySQL  localhost:3306  JS > dba.checkInstanceConfiguration('cluster_user@loco-db-00:3306')
Please provide the password for 'cluster_user@loco-db-00:3306': ************
Save password for 'cluster_user@loco-db-00:3306'? [Y]es/[N]o/Ne[v]er (default No): 
Validating local MySQL instance listening at port 3306 for use in an InnoDB cluster...

This instance reports its own address as loco-db-00

Checking whether existing tables comply with Group Replication requirements...
No incompatible tables detected

Checking instance configuration...
Note: verifyMyCnf option was not given so only dynamic configuration will be verified.
Instance configuration is compatible with InnoDB cluster

The instance 'loco-db-00:3306' is valid for InnoDB cluster usage.

{
    "status": "ok"
}

 MySQL  localhost:3306  JS > 

Suggested fix:
Add following:

GRANT DELETE, INSERT, UPDATE ON mysql.* TO your_user@'%';
GRANT DELETE, INSERT, UPDATE ON mysql.* TO your_user@'%';
[17 Aug 2018 11:00] MySQL Verification Team
Hello!

Thank you for the report and feedback!

regards,
Umesh
[17 Aug 2018 14:02] Shinya Sugiyama
Hi Umesh,

Thank you for your quick confirmation as always.

Shinya
[5 Jun 2019 15:19] David Moss
Posted by developer:
 
Thank you for your feedback, this has been fixed in the docs. FYI the
preferred way to create a user for InnoDB cluster is using the clusterAdmin
option. That info is now under User Privileges here:
https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-cluster-production-deploy
ment.html

And as part of this work we now have the info about manually creating users
for InnoDB cluster here:

https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-cluster-working-with-clus
ter.html#configure-innodb-cluster-user