Post
Topic
Board Project Development
Re: [ANNOUNCE] Abe 0.7: Open Source Block Explorer Knockoff
by
Hoshimaru
on 08/05/2015, 09:36:27 UTC
Hello

I've migrated my super node and dns seed to a high performance VPS. The last thing to do is moving bitcoin-abe.
Because my host gave me an offloaded mysql database, I couldn't import the SQL files genereted by mysqldump due to not having mysql "super privileges".
The only option left is rebuilding the database. This seems to fail unfortunately:

Code:
python -m Abe.abe --config minerals-abe/abe-min.conf --commit-bytes 100000 --no-serve
Reconnecting after rollback error: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
Reconnecting to database.
Reconnecting after rollback error: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
Reconnecting to database.
Reconnecting after rollback error: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
Reconnecting to database.
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/lib/python2.7/dist-packages/Abe/abe.py", line 2101, in
    sys.exit(main(sys.argv[1:]))
  File "/usr/local/lib/python2.7/dist-packages/Abe/abe.py", line 2095, in main
    store = make_store(args)
  File "/usr/local/lib/python2.7/dist-packages/Abe/abe.py", line 159, in make_store
    store = DataStore.new(args)
  File "/usr/local/lib/python2.7/dist-packages/Abe/DataStore.py", line 3277, in new
    return DataStore(args)
  File "/usr/local/lib/python2.7/dist-packages/Abe/DataStore.py", line 187, in __init__
    store.initialize()
  File "/usr/local/lib/python2.7/dist-packages/Abe/DataStore.py", line 629, in initialize
    store.configure()
  File "/usr/local/lib/python2.7/dist-packages/Abe/DataStore.py", line 927, in configure
    config = store._sql.configure()
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 614, in configure
    sql.configure_ddl_implicit_commit()
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 699, in configure_ddl_implicit_commit
    if sql._test_ddl():
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 706, in _test_ddl
    sql.drop_table_if_exists("%stest_1" % sql.prefix)
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 677, in drop_table_if_exists
    sql._drop_if_exists("TABLE", obj)
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 674, in _drop_if_exists
    sql.rollback()
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 603, in rollback
    sql.reconnect()
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 292, in reconnect
    return sql.conn()
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 275, in conn
    sql._conn = sql.connect()
  File "/usr/local/lib/python2.7/dist-packages/Abe/SqlAbstraction.py", line 233, in connect
    conn = sql.module.connect()
  File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

The connect-args are:
Code:
connect-­args {"user":"XXX","db":"XXX","passwd":"XXX","host":"19X.2X1.X5X.X4X","port":3306}

Although I can connect with the mysql command to my database, bitcoin-abe seems to be obstinately trying to connect using a unix socket. How is that even possible? If you don't give a remote server's IP, leave it empty or just enter 127.0.0.1 or localhost, it connects to the local MySQL DB by default, using the socket, but as soon as you specify and IP address, it should connect over TCP. Unless I misread the error log above, it still want to connect to a local MySQL DB? How do you use bitcoin-abe with a remote  database?