问题;
为什么Openstack在创建数据库时要同时赋予用户在%和localhost登陆的权限而在MySQL中的%已经包含了localhost?
要回答这个问题我们可以先看看不这样做会怎样;
openstack-db --init --service keystone --pass keystone做了三件事情:
1、mysql> CREATE DATABASE keystone;
2、mysql> GRANT ALL ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
3、mysql> GRANT ALL ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
我们看看不做第三步会发生什么:
mysql> create database keystone;
Query OK, 1 row affected (0.01 sec)
mysql> GRANT ALL ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user;
+----------+-----------+-----------