Thanks. I have committed some of the changes in commit d5412d
<https://github.com/weewx/weewx/commit/d5412d05cda18f1722a030eecc64df302283e739>
on the development branch.
However, I have one question: rather than hardcode in the socket, did you
try specifying it in the [[MySQL]] subsection?
[[MySQL]]
driver = weedb.mysql
# The host where the database is located
host = localhost
# The user name for logging in to the host
user = weewx
# The password for the user name (quotes guard against parsing
errors)
password = "weewx"
socket='/var/run/mysql/mysql.sock'
-tk
On Sun, Mar 17, 2019 at 3:25 AM dkorevaar <[email protected]> wrote:
> Hi,
>
> I had trouble installing weewx using MySQL on OpenSuse: following the
> directions in the installation pages of de weewx documentation did not
> help. OpenSuse does not provide the MySQL libraries for Python that other
> distributions seem to deliver. After installation journalctl shows the
> following error:
>
> Mar 17 10:48:30 server systemd[1]: Started weewx.
> Mar 17 10:48:30 server [RPM][28003]: install weewx-3.9.1-2.suse.noarch:
> success
> Mar 17 10:48:30 server [RPM][28003]: erase weewx-3.9.0-1.suse.noarch:
> success
> Mar 17 10:48:30 server [RPM][28003]: install weewx-3.9.1-2.suse.noarch:
> success
> Mar 17 10:48:30 server [RPM][28003]: Transaction ID 5c8e17ed finished: 0
> Mar 17 10:48:30 server weewx[28017]: engine: Initializing weewx version
> 3.9.1
> Mar 17 10:48:30 server weewx[28017]: engine: Using Python 2.7.14 (default,
> Oct 12 2017, 15:50:02) [GCC]
> Mar 17 10:48:30 server weewx[28017]: engine: Platform
> Linux-4.12.14-lp150.12.48-default-x86_64-with-SuSE-15.0-x86_64
> Mar 17 10:48:30 server weewx[28017]: engine: Locale is 'en_US.UTF-8'
> Mar 17 10:48:30 server weewx[28017]: engine: pid file is /var/run/weewx.pid
> Mar 17 10:48:30 server weewx[28044]: engine: Using configuration file
> /etc/weewx/weewx.conf
> Mar 17 10:48:30 server weewx[28044]: engine: Loading station type
> SocketLogger (user.socketlogger)
> Mar 17 10:48:30 server weewx[28044]: SocketLogger: Connecting to socket on
> localhost port 2999
> Mar 17 10:48:30 server systemd[1]: weewx.service: Supervising process
> 28044 which is not our child. We'll most likely >
> Mar 17 10:48:30 server weewx[28044]: engine: StdConvert target unit is 0x10
> Mar 17 10:48:30 server weewx[28044]: wxcalculate: The following values
> will be calculated: barometer=prefer_hardware, >
> Mar 17 10:48:30 server weewx[28044]: wxcalculate: The following algorithms
> will be used for calculations: altimeter=aa>
> Mar 17 10:48:30 server weewx[28044]: engine: Archive will use data binding
> wx_binding
> Mar 17 10:48:30 server weewx[28044]: engine: Record generation will be
> attempted in 'software'
> Mar 17 10:48:30 server weewx[28044]: engine: Using archive interval of 600
> seconds (software record generation)
> Mar 17 10:48:30 server weewx[28044]: engine: Caught unrecoverable
> exception in engine:
> Mar 17 10:48:30 server weewx[28044]: **** No module named MySQLdb
> Mar 17 10:48:30 server weewx[28044]: **** Traceback (most recent call
> last):
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/engine.py", line 884, in main
> Mar 17 10:48:30 server weewx[28044]: **** engine =
> engine_class(config_dict)
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/engine.py", line 78, in __init__
> Mar 17 10:48:30 server weewx[28044]: ****
> self.loadServices(config_dict)
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/engine.py", line 142, in loadServices
> Mar 17 10:48:30 server weewx[28044]: ****
> self.service_obj.append(weeutil.weeutil._get_object(svc)(self, config_dict))
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/engine.py", line 500, in __init__
> Mar 17 10:48:30 server weewx[28044]: ****
> self.setup_database(config_dict)
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/engine.py", line 608, in setup_database
> Mar 17 10:48:30 server weewx[28044]: **** dbmanager =
> self.engine.db_binder.get_manager(self.data_binding, initialize=True)
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/manager.py", line 872, in get_manager
> Mar 17 10:48:30 server weewx[28044]: ****
> self.manager_cache[data_binding] = open_manager(manager_dict, initialize)
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/manager.py", line 1021, in open_manager
> Mar 17 10:48:30 server weewx[28044]: **** manager_dict['schema'])
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weewx/manager.py", line 128, in open_with_create
> Mar 17 10:48:30 server weewx[28044]: **** connection =
> weedb.connect(database_dict)
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weedb/__init__.py", line 86, in connect
> Mar 17 10:48:30 server weewx[28044]: ****
> __import__(db_dict['driver'])
> Mar 17 10:48:30 server weewx[28044]: **** File
> "/usr/share/weewx/weedb/mysql.py", line 10, in <module>
> Mar 17 10:48:30 server weewx[28044]: **** import MySQLdb
> Mar 17 10:48:30 server weewx[28044]: **** ImportError: No module
> named MySQLdb
> Mar 17 10:48:30 server weewx[28044]: **** Exiting.
> Mar 17 10:48:30 server systemd[1]: weewx.service: Main process exited,
> code=exited, status=1/FAILURE
> Mar 17 10:48:30 server systemd[1]: weewx.service: Unit entered failed
> state.
> Mar 17 10:48:30 server systemd[1]: weewx.service: Failed with result
> 'exit-code'.
>
> I have managed to get weewx working on OpenSuse by installing the module
> Python2-PyMySQL and changing the file /usr/share/weewx/weedb/mysql.py. The
> changes are very limited:
>
> diff mysql.py mysql.py-orig
> 10,15c10,11
> < #DK
> < #import MySQLdb
> < #from _mysql_exceptions import DatabaseError, IntegrityError,
> ProgrammingError, OperationalError
> < import pymysql as MySQLdb
> < from pymysql import DatabaseError, IntegrityError, ProgrammingError,
> OperationalError
> < #DK end
> ---
> > import MySQLdb
> > from _mysql_exceptions import DatabaseError, IntegrityError,
> ProgrammingError, OperationalError
> 124,128d119
> <
> < #DK, hardcoded socket
> < # connection = MySQLdb.connect(host=host, port=int(port),
> user=user, passwd=password,
> < # db=database_name, **kwargs)
> < # weedb.Connection.__init__(self, connection, database_name,
> 'mysql')
> 130c121,122
> < db=database_name,
> unix_socket='/var/run/mysql/mysql.sock', **kwargs)
> ---
> > db=database_name, **kwargs)
> >
> 303,304c295
> < #DK if connect._server_version >= (5, 5):
> < if connect.server_version >= (5, 5):
> ---
> > if connect._server_version >= (5, 5):
>
> This fix has worked for weewx from V3.7 until the current version (V3.9.1)
> without change. Perhaps there could be some permanent fix in the weewx kit?
>
> Regards,
> dkorevaar
>
> --
> You received this message because you are subscribed to the Google Groups
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.