invenio
invenio copied to clipboard
Error when using inveniomanage database init
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.
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.