invenio icon indicating copy to clipboard operation
invenio copied to clipboard

Error when using inveniomanage database init

Open astrofrog opened this issue 8 years ago • 1 comments

I'm currently following the instructions to create an overlay, and the inveniomanage database init step is failing with the following error:

$ inveniomanage database init --user=root --password=$ROOTPW --yes-i-know
/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/sql/base.py:291: SAWarning: Can't validate argument 'sql_mode'; can't locate any SQLAlchemy dialect named 'sql'
  (k, dialect_name))

/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/invenio_ext/restful/__init__.py:30: ExtDeprecationWarning: Importing flask.ext.restful is deprecated, use flask_restful instead.
  from flask.ext import restful

>>> Database has been created.
Traceback (most recent call last):
  File "/Users/tom/miniconda3/envs/asclepias/bin/inveniomanage", line 11, in <module>
    sys.exit(main())
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/invenio_base/manage.py", line 103, in main
    manager.run()
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/flask_script/__init__.py", line 412, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/flask_script/__init__.py", line 383, in handle
    res = handle(*args, **config)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/invenio_ext/script/__init__.py", line 178, in __call__
    res = super(SignalingCommand, self).__call__(*args, **kwargs)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/invenio_base/scripts/database.py", line 94, in init
    database_pass=current_app.config['CFG_DATABASE_PASS'],
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/invenio_ext/sqlalchemy/utils.py", line 384, in initialize_database_user
    escape_string(database_pass)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2064, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 939, in execute
    return self._execute_text(object, multiparams, params)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1097, in _execute_text
    statement, parameters
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
    context)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
    exc_info
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
    context)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
    cursor.execute(statement, parameters)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/Users/tom/miniconda3/envs/asclepias/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
sqlalchemy.exc.ProgrammingError: (_mysql_exceptions.ProgrammingError) (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'-database.* TO mysql-user@\'%\' IDENTIFIED BY "my123p$ss"\' at line 1') [SQL: 'GRANT ALL PRIVILEGES ON mysql-database.* TO mysql-user@\'%%\' IDENTIFIED BY "my123p$ss" ']

MySQL is correctly installed and is version 5.7.18:

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.18 Homebrew

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

astrofrog avatar Jun 11 '17 15:06 astrofrog

The issue is that the example suggests the name mysql-database for the database name in the config step:

inveniomanage config set CFG_DATABASE_NAME mysql-database

it should be made clearer in the docs that this is a placeholder.

astrofrog avatar Jun 11 '17 15:06 astrofrog