eve icon indicating copy to clipboard operation
eve copied to clipboard

Insufficient table checking on startup

Open AGSPhoenix opened this issue 6 years ago • 1 comments

Simply checking for the presence of the board name table is insufficient. The triggers for handling media and such can sometimes not be created if binlogging is on and log_bin_trust_function_creators isn't on.

Check for the full set of tables and triggers on startup.

AGSPhoenix avatar Jan 16 '19 12:01 AGSPhoenix

2019-06-11 02:58:46,640 ERROR:Traceback (most recent call last):
  File "C:\Program Files\Python3\lib\site-packages\eventlet\hubs\hub.py", line 458, in fire_timers
    timer()
  File "C:\Program Files\Python3\lib\site-packages\eventlet\hubs\timer.py", line 58, in __call__
    cb(*args, **kw)
  File "C:\Program Files\Python3\lib\site-packages\eventlet\event.py", line 168, in _do_send
    waiter.switch(result)
  File "C:\Program Files\Python3\lib\site-packages\eventlet\greenthread.py", line 218, in main
    result = function(*args, **kwargs)
  File "C:\Users\Bakugo\Desktop\eve-master\eve.py", line 244, in inserter
    post['no'], #post number
  File "C:\Program Files\Python3\lib\site-packages\eventlet\tpool.py", line 186, in doit
    result = proxy_call(self._autowrap, f, *args, **kwargs)
  File "C:\Program Files\Python3\lib\site-packages\eventlet\tpool.py", line 144, in proxy_call
    rv = execute(f, *args, **kwargs)
  File "C:\Program Files\Python3\lib\site-packages\eventlet\tpool.py", line 125, in execute
    six.reraise(c, e, tb)
  File "C:\Program Files\Python3\lib\site-packages\eventlet\support\six.py", line 689, in reraise
    raise value
  File "C:\Program Files\Python3\lib\site-packages\eventlet\tpool.py", line 83, in tworker
    rv = meth(*args, **kwargs)
  File "C:\Program Files\Python3\lib\site-packages\MySQLdb\cursors.py", line 255, in execute
    self.errorhandler(self, exc, value)
  File "C:\Program Files\Python3\lib\site-packages\MySQLdb\connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "C:\Program Files\Python3\lib\site-packages\MySQLdb\cursors.py", line 252, in execute
    res = self._query(query)
  File "C:\Program Files\Python3\lib\site-packages\MySQLdb\cursors.py", line 378, in _query
    db.query(q)
  File "C:\Program Files\Python3\lib\site-packages\MySQLdb\connections.py", line 280, in query
    _mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1267, "Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '='")

Bakugo: also something of note: if an error happens when inserting, the inserter dies forever. might not be desirable Bakugo: basically, since the database was utf8mb4_unicode_ci, the procedures were being created with utf8mb4_unicode_ci Bakugo: but the tables were forced to utf8mb4_general_ci phoen1x: What I really need is a thing that checks that the server, database, tables, and connection, are all using the same charset and collation And possibly other things Bakugo: yeah that's important

Bakugo: I think you may need to specify the charset+collate for each parameter of the procedure https://mariadb.com/kb/en/library/create-procedure/#character-sets-and-collations the examples here show it

I don't even really know what set of charsets and collations will cause problems. Is it reasonable to just set everything to utf8mb4?

AGSPhoenix avatar Jun 12 '19 03:06 AGSPhoenix