1、问题现象
在安装keystone组件,执行数据库初始化的语句时没有报错信息,但是状态却不是0
su -s /bin/sh -c 'keystone-manage db_sync' keystone
2、查看日志
tail -f /var/log/keystone/keystone.log
然后反馈信息如下:
2020-09-19 17:58:39.747 11498 ERROR keystone OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'keystone'@'controller' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)
2020-09-19 17:58:39.747 11498 ERROR keystone
3、问题分析
从报错信息可以看出,执行初始化的时候,出现了连接错误的一个异常信息,所以解决方法就在keystone服务数据库连接这块
4、排查错误
4.1、重新创建数据库
4.1.1、创建数据库
mysql -uroot -p -e "create database IF NOT EXISTS keystone;"
4.1.2、授权访问
localhost
mysql -uroot -p -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '000000';"
%
mysql -uroot -p -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';"
主机名
mysql -uroot -p -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller' IDENTIFIED BY '000000';"
4.2、检查keystone配置
这里要确保与数据库设置的一样
cat /etc/keystone/keystone.conf | grep pymysql
4.3、检查host解析
这里要保证主机能PING通这个主机名
cat /etc/hosts
4.4、验证
总之就是一句话:这个服务无法正常连接所需要的数据库或无法取得相关的权限,所以把数据库配置好就没啥问题了
可参考原因:创建keystone及其它服务用户时,host要与keystone.cnf中的hostname以及本机hostname要一致。 不要使用localhost和ip地址!