← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1833650] Re: Populate nova databases failed with mysql access denied

 

I just went through the install guide myself by coppy-paste and I did not hit this problem. There are following commands that you are probably missing that sets the permissions:
```
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
```
The percent sign '%' is there to accept connection from any client address. Moreover you also need to remember to configure DB to listen on IP address of the controller node as specified in the SQL install guide [1]

[1] https://docs.openstack.org/install-guide/environment-sql-database-
rdo.html

** Changed in: nova
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1833650

Title:
  Populate nova databases failed with mysql access denied

Status in OpenStack Compute (nova):
  Invalid

Bug description:
  Description
  ===========

  Fresh Install

  CentOS Linux release 7.6.1810 (Core)

  I followed "Install and configure controller node for Red Hat
  Enterprise Linux and CentOS" up to Install Nova on Controller, I
  configured Nova.conf and ran the DB commands. The following are
  failed:

  su -s /bin/sh -c "nova-manage api_db sync" nova
  su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
  su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
  su -s /bin/sh -c "nova-manage db sync" nova

  I have my fix:

  use "controller" instead of "localhost":

  GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'controller' \
    IDENTIFIED BY 'NOVA_DBPASS';

  Then I could run populate nova databases commands successfully.

  Steps to reproduce
  ===============

  1. Install CentOS Linux release 7.6.1810 (Core)
  2. Install Keystone
  4. Install Glance
  6. Install Nova
  7. Run the DB sync commands in order from the Docs
  Failure at > su -s /bin/sh -c "nova-manage db sync" nova and so on..

  Expected result
  ===============
  Nova database Populates without error

  Actual result
  =============
  Nova database does not populate and error thrown

  Environment
  ===========
  rocky

  Installed:
  openstack-nova-api.noarch 1:18.2.0-1.el7
  openstack-nova-conductor.noarch 1:18.2.0-1.el7
  openstack-nova-console.noarch 1:18.2.0-1.el7
  openstack-nova-novncproxy.noarch 1:18.2.0-1.el7
  openstack-nova-placement-api.noarch 1:18.2.0-1.el7
  openstack-nova-scheduler.noarch 1:18.2.0-1.el7

  Dependency Installed:
  novnc.noarch 0:0.5.1-2.el7
  openstack-nova-common.noarch 1:18.2.0-1.el7
  python-nova.noarch 1:18.2.0-1.el7
  python-websockify.noarch 0:0.8.0-1.el7
  python2-microversion-parse.noarch 0:0.2.1-1.el7
  python2-os-traits.noarch 0:0.9.0-1.el7
  python2-os-vif.noarch 0:1.11.1-1.el7           

  
  Logs & Configs
  ==============
  [root@controller ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
  An error has occurred:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 2338, in main
      ret = fn(*fn_args, **fn_kwargs)
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 884, in sync
      result = migration.db_sync(version2, database='placement')
    File "/usr/lib/python2.7/site-packages/nova/db/migration.py", line 26, in db_sync
      return IMPL.db_sync(version=version, database=database, context=context)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 57, in db_sync
      current_version = db_version(database, context=context)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 70, in db_version
      return versioning_api.db_version(get_engine(database, context=context),
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 47, in get_engine
      return placement_db.get_placement_engine()
    File "/usr/lib/python2.7/site-packages/nova/api/openstack/placement/db_api.py", line 43, in get_placement_engine
      return placement_context_manager.get_legacy_facade().get_engine()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 803, in get_legacy_facade
      return self._factory.get_legacy_facade()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 352, in get_legacy_facade
      self._start()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 496, in _start
      engine_args, maker_args)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 520, in _setup_for_connection
      sql_connection=sql_connection, **engine_kwargs)
    File "/usr/lib/python2.7/site-packages/debtcollector/renames.py", line 43, in decorator
      return wrapped(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 202, in create_engine
      test_conn = _test_connection(engine, max_retries, retry_interval)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 380, in _test_connection
      return engine.connect()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2102, in connect
      return self._connection_cls(self, **kwargs)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 90, in __init__
      if connection is not None else engine.raw_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2188, in raw_connection
      self.pool.unique_connection, _connection)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect
      e, dialect, self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1472, in _handle_dbapi_exception_noconnection
      util.raise_from_cause(newraise, exc_info)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
      reraise(type(exception), exception, tb=exc_tb, cause=cause)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
      return fn()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 345, in unique_connection
      return _ConnectionFairy._checkout(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 788, in _checkout
      fairy = _ConnectionRecord.checkout(pool)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
      rec = pool._do_get()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1193, in _do_get
      self._dec_overflow()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
      compat.reraise(exc_type, exc_value, exc_tb)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1190, in _do_get
      return self._create_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 350, in _create_connection
      return _ConnectionRecord(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 477, in __init__
      self.__connect(first_connect_check=True)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 671, in __connect
      connection = pool._invoke_creator(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect
      return dialect.connect(*cargs, **cparams)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 410, in connect
      return self.dbapi.connect(*cargs, **cparams)
    File "/usr/lib/python2.7/site-packages/pymysql/__init__.py", line 94, in Connect
      return Connection(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 327, in __init__
      self.connect()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 598, in connect
      self._request_authentication()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 862, in _request_authentication
      auth_packet = self._process_auth(plugin_name, auth_packet)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 933, in _process_auth
      pkt = self._read_packet()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 683, in _read_packet
      packet.check_error()
    File "/usr/lib/python2.7/site-packages/pymysql/protocol.py", line 220, in check_error
      err.raise_mysql_exception(self._data)
    File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 109, in raise_mysql_exception
      raise errorclass(errno, errval)
  OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'placement'@'controller' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)

  [root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
  An error has occurred:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 2338, in main
      ret = fn(*fn_args, **fn_kwargs)
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1140, in map_cell0
      self._map_cell0(database_connection=database_connection)
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1174, in _map_cell0
      cell_mapping.create()
    File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 226, in wrapper
      return fn(self, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/nova/objects/cell_mapping.py", line 198, in create
      db_mapping = self._create_in_db(self._context, self.obj_get_changes())
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 992, in wrapper
      with self._transaction_scope(context):
    File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__
      return self.gen.next()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 1042, in _transaction_scope
      context=context) as resource:
    File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__
      return self.gen.next()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 645, in _session
      bind=self.connection, mode=self.mode)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 409, in _create_session
      self._start()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 496, in _start
      engine_args, maker_args)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 520, in _setup_for_connection
      sql_connection=sql_connection, **engine_kwargs)
    File "/usr/lib/python2.7/site-packages/debtcollector/renames.py", line 43, in decorator
      return wrapped(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 202, in create_engine
      test_conn = _test_connection(engine, max_retries, retry_interval)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 380, in _test_connection
      return engine.connect()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2102, in connect
      return self._connection_cls(self, **kwargs)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 90, in __init__
      if connection is not None else engine.raw_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2188, in raw_connection
      self.pool.unique_connection, _connection)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect
      e, dialect, self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1472, in _handle_dbapi_exception_noconnection
      util.raise_from_cause(newraise, exc_info)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
      reraise(type(exception), exception, tb=exc_tb, cause=cause)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
      return fn()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 345, in unique_connection
      return _ConnectionFairy._checkout(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 788, in _checkout
      fairy = _ConnectionRecord.checkout(pool)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
      rec = pool._do_get()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1193, in _do_get
      self._dec_overflow()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
      compat.reraise(exc_type, exc_value, exc_tb)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1190, in _do_get
      return self._create_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 350, in _create_connection
      return _ConnectionRecord(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 477, in __init__
      self.__connect(first_connect_check=True)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 671, in __connect
      connection = pool._invoke_creator(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect
      return dialect.connect(*cargs, **cparams)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 410, in connect
      return self.dbapi.connect(*cargs, **cparams)
    File "/usr/lib/python2.7/site-packages/pymysql/__init__.py", line 94, in Connect
      return Connection(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 327, in __init__
      self.connect()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 598, in connect
      self._request_authentication()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 862, in _request_authentication
      auth_packet = self._process_auth(plugin_name, auth_packet)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 933, in _process_auth
      pkt = self._read_packet()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 683, in _read_packet
      packet.check_error()
    File "/usr/lib/python2.7/site-packages/pymysql/protocol.py", line 220, in check_error
      err.raise_mysql_exception(self._data)
    File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 109, in raise_mysql_exception
      raise errorclass(errno, errval)
  OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'nova'@'controller' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)

  [root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
  An error has occurred:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 2338, in main
      ret = fn(*fn_args, **fn_kwargs)
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1488, in create_cell
      None, transport_url, database_connection)):
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1067, in _non_unique_transport_url_database_connection_checker
      for cell in objects.CellMappingList.get_all(ctxt):
    File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 184, in wrapper
      result = fn(cls, context, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/nova/objects/cell_mapping.py", line 256, in get_all
      db_mappings = cls._get_all_from_db(context)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 992, in wrapper
      with self._transaction_scope(context):
    File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__
      return self.gen.next()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 1042, in _transaction_scope
      context=context) as resource:
    File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__
      return self.gen.next()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 645, in _session
      bind=self.connection, mode=self.mode)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 409, in _create_session
      self._start()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 496, in _start
      engine_args, maker_args)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 520, in _setup_for_connection
      sql_connection=sql_connection, **engine_kwargs)
    File "/usr/lib/python2.7/site-packages/debtcollector/renames.py", line 43, in decorator
      return wrapped(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 202, in create_engine
      test_conn = _test_connection(engine, max_retries, retry_interval)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 380, in _test_connection
      return engine.connect()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2102, in connect
      return self._connection_cls(self, **kwargs)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 90, in __init__
      if connection is not None else engine.raw_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2188, in raw_connection
      self.pool.unique_connection, _connection)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect
      e, dialect, self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1472, in _handle_dbapi_exception_noconnection
      util.raise_from_cause(newraise, exc_info)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
      reraise(type(exception), exception, tb=exc_tb, cause=cause)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
      return fn()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 345, in unique_connection
      return _ConnectionFairy._checkout(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 788, in _checkout
      fairy = _ConnectionRecord.checkout(pool)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
      rec = pool._do_get()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1193, in _do_get
      self._dec_overflow()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
      compat.reraise(exc_type, exc_value, exc_tb)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1190, in _do_get
      return self._create_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 350, in _create_connection
      return _ConnectionRecord(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 477, in __init__
      self.__connect(first_connect_check=True)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 671, in __connect
      connection = pool._invoke_creator(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect
      return dialect.connect(*cargs, **cparams)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 410, in connect
      return self.dbapi.connect(*cargs, **cparams)
    File "/usr/lib/python2.7/site-packages/pymysql/__init__.py", line 94, in Connect
      return Connection(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 327, in __init__
      self.connect()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 598, in connect
      self._request_authentication()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 862, in _request_authentication
      auth_packet = self._process_auth(plugin_name, auth_packet)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 933, in _process_auth
      pkt = self._read_packet()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 683, in _read_packet
      packet.check_error()
    File "/usr/lib/python2.7/site-packages/pymysql/protocol.py", line 220, in check_error
      err.raise_mysql_exception(self._data)
    File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 109, in raise_mysql_exception
      raise errorclass(errno, errval)
  OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'nova'@'controller' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)

  [root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova
  ERROR: Could not access cell0.
  Has the nova_api database been created?
  Has the nova_cell0 database been created?
  Has "nova-manage api_db sync" been run?
  Has "nova-manage cell_v2 map_cell0" been run?
  Is [api_database]/connection set in nova.conf?
  Is the cell0 database connection URL correct?
  Error: (pymysql.err.OperationalError) (1045, u"Access denied for user 'nova'@'controller' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)
  An error has occurred:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 2338, in main
      ret = fn(*fn_args, **fn_kwargs)
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 491, in sync
      return migration.db_sync(version)
    File "/usr/lib/python2.7/site-packages/nova/db/migration.py", line 26, in db_sync
      return IMPL.db_sync(version=version, database=database, context=context)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 57, in db_sync
      current_version = db_version(database, context=context)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 70, in db_version
      return versioning_api.db_version(get_engine(database, context=context),
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 43, in get_engine
      return db_session.get_engine(context=context)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 139, in get_engine
      return ctxt_mgr.writer.get_engine()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 814, in get_engine
      return self._factory.get_writer_engine()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 363, in get_writer_engine
      self._start()
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 496, in _start
      engine_args, maker_args)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 520, in _setup_for_connection
      sql_connection=sql_connection, **engine_kwargs)
    File "/usr/lib/python2.7/site-packages/debtcollector/renames.py", line 43, in decorator
      return wrapped(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 202, in create_engine
      test_conn = _test_connection(engine, max_retries, retry_interval)
    File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 380, in _test_connection
      return engine.connect()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2102, in connect
      return self._connection_cls(self, **kwargs)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 90, in __init__
      if connection is not None else engine.raw_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2188, in raw_connection
      self.pool.unique_connection, _connection)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect
      e, dialect, self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1472, in _handle_dbapi_exception_noconnection
      util.raise_from_cause(newraise, exc_info)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
      reraise(type(exception), exception, tb=exc_tb, cause=cause)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
      return fn()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 345, in unique_connection
      return _ConnectionFairy._checkout(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 788, in _checkout
      fairy = _ConnectionRecord.checkout(pool)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
      rec = pool._do_get()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1193, in _do_get
      self._dec_overflow()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
      compat.reraise(exc_type, exc_value, exc_tb)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 1190, in _do_get
      return self._create_connection()
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 350, in _create_connection
      return _ConnectionRecord(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 477, in __init__
      self.__connect(first_connect_check=True)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/pool.py", line 671, in __connect
      connection = pool._invoke_creator(self)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect
      return dialect.connect(*cargs, **cparams)
    File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 410, in connect
      return self.dbapi.connect(*cargs, **cparams)
    File "/usr/lib/python2.7/site-packages/pymysql/__init__.py", line 94, in Connect
      return Connection(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 327, in __init__
      self.connect()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 598, in connect
      self._request_authentication()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 862, in _request_authentication
      auth_packet = self._process_auth(plugin_name, auth_packet)
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 933, in _process_auth
      pkt = self._read_packet()
    File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 683, in _read_packet
      packet.check_error()
    File "/usr/lib/python2.7/site-packages/pymysql/protocol.py", line 220, in check_error
      err.raise_mysql_exception(self._data)
    File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 109, in raise_mysql_exception
      raise errorclass(errno, errval)
  OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'nova'@'controller' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)

  -----------------------------------
  Release: 18.2.1.dev95 on 2019-06-14 03:09
  SHA: d8f1bef63ab4357af2105431d3ea367100518aa2
  Source: https://git.openstack.org/cgit/openstack/nova/tree/doc/source/install/controller-install-rdo.rst
  URL: https://docs.openstack.org/nova/rocky/install/controller-install-rdo.html

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1833650/+subscriptions


References