su -s /bin/sh -c ‘keystone-manage db_sync‘ keystone执行完成没有报错也没有数据生成的解决办法

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地址!

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
安装Keystone之前,您需要确保已经安装并配置好了OpenStack Identity服务所需的依赖项。这些依赖项包括Python、MySQL数据库、Apache HTTP服务器、以及其他一些Python库。如果您还没有安装这些依赖项,请先安装它们。 以下是在Ubuntu 18.04操作系统上安装Keystone的步骤: 1.安装Keystone软件包: ``` sudo apt-get update sudo apt-get install keystone ``` 2.编辑Keystone配置文件/etc/keystone/keystone.conf,将[database]部分中的连接信息修改为您的MySQL数据库连接信息,例如: ``` [database] connection = mysql+pymysql://keystone:PASSWORD@controller/keystone ``` 3.编辑/etc/apache2/sites-available/wsgi-keystone.conf文件,将WSGIScriptAlias行中的/var/www/cgi-bin/keystone修改为/usr/bin/keystone-wsgi-public: ``` WSGIScriptAlias / /usr/bin/keystone-wsgi-public ``` 4.创建一个新的数据库并将权限授予Keystone: ``` sudo mysql -u root -p CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'PASSWORD'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'PASSWORD'; exit ``` 5.初始化Keystone数据库: ``` sudo su -s /bin/sh -c "keystone-manage db_sync" keystone ``` 6.为管理员创建一个新的OpenStack Identity服务用户: ``` export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 ``` 7.创建管理员用户、服务、终端节点和角色: ``` openstack user create --domain default --password-prompt admin openstack role create admin openstack role add --project admin --user admin admin openstack service create --name keystone --description "OpenStack Identity" identity openstack endpoint create --region RegionOne identity public http://controller:5000/v3 openstack endpoint create --region RegionOne identity internal http://controller:5000/v3 openstack endpoint create --region RegionOne identity admin http://controller:35357/v3 ``` 8.重新启动Apache HTTP服务器: ``` sudo service apache2 restart ``` 现在,您已经成功地安装和配置了Keystone服务。您可以使用OpenStack命令行工具或其他OpenStack服务来验证Keystone是否正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐公交也用券

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值