Conclusion:
For salt in python2.7 environment, you need to install PIP install MySQL python
For salt in the python 3 environment, PIP should install mysqlclient in the same directory as salt
1. Production environment 3.6, how to adjust this
1. Salt in February 2019
[root@IP ~]# salt-call --versions-report
Salt Version:
Salt: 2019.2.0
Dependency Versions:
cffi: Not Installed
cherrypy: 5.6.0
dateutil: Not Installed
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
ioflo: Not Installed
Jinja2: 2.8.1
libgit2: Not Installed
libnacl: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack-pure: Not Installed
msgpack-python: 0.5.6
mysql-python: 1.4.6
pycparser: Not Installed
pycrypto: 2.6.1
pycryptodome: Not Installed
pygit2: Not Installed
Python: 3.6.8 (default, Aug 7 2019, 17:28:10)
python-gnupg: Not Installed
PyYAML: 3.11
PyZMQ: 15.3.0
RAET: Not Installed
smmap: Not Installed
timelib: Not Installed
Tornado: 4.4.2
ZMQ: 4.1.4
System Versions:
dist: centos 7.3.1611 Core
locale: UTF-8
machine: x86_64
release: 3.10.0-514.el7.x86_64
system: Linux
version: CentOS Linux 7.3.1611 Core
[root@IP ~]#
2, python3.6
2, vengeance
2019-11-29 14:59:46,062 [salt.master :2195][ERROR ][6219] Failed to allocate a jid. The requested returner 'mysql' could not be loaded.
2019-11-29 14:59:46,063 [salt.transport.zeromq:754 ][ERROR ][6219] Some exception handling a payload from minion
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/salt/transport/zeromq.py", line 750, in handle_message
ret, req_opts = yield self.payload_handler(payload)
File "/usr/lib64/python3.6/site-packages/tornado/gen.py", line 1015, in run
value = future.result()
File "/usr/lib64/python3.6/site-packages/tornado/concurrent.py", line 236, in result
raise_exc_info(self._exc_info)
File "<string>", line 3, in raise_exc_info
File "/usr/lib64/python3.6/site-packages/tornado/gen.py", line 270, in wrapper
result = func(*args, **kwargs)
File "/usr/lib64/python3.6/types.py", line 248, in wrapped
coro = func(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/master.py", line 1064, in _handle_payload
'clear': self._handle_clear}[key](load)
File "/usr/lib/python3.6/site-packages/salt/master.py", line 1095, in _handle_clear
ret = getattr(self.clear_funcs, cmd)(load), {'fun': 'send_clear'}
File "/usr/lib/python3.6/site-packages/salt/master.py", line 2137, in publish
payload = self._prep_pub(minions, jid, clear_load, extra, missing)
File "/usr/lib/python3.6/site-packages/salt/master.py", line 2233, in _prep_pub
self.event.fire_event({'minions': minions}, clear_load['jid'])
File "/usr/lib/python3.6/site-packages/salt/utils/event.py", line 744, in fire_event
salt.utils.stringutils.to_bytes(tag),
File "/usr/lib/python3.6/site-packages/salt/utils/stringutils.py", line 61, in to_bytes
raise TypeError('expected bytes, bytearray, or str')
TypeError: expected bytes, bytearray, or str
2019-11-29 14:59:46,065 [tornado.general :452 ][ERROR ][6219] Uncaught exception, closing connection.
Traceback (most recent call last):
File "/usr/lib64/python3.6/site-packages/zmq/sugar/socket.py", line 356, in send_multipart
_buffer_type(msg)
TypeError: memoryview: a bytes-like object is required, not 'str'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/python3.6/site-packages/zmq/eventloop/zmqstream.py", line 444, in _handle_events
self._handle_send()
File "/usr/lib64/python3.6/site-packages/zmq/eventloop/zmqstream.py", line 487, in _handle_send
status = self.socket.send_multipart(msg, **kwargs)
File "/usr/lib64/python3.6/site-packages/zmq/sugar/socket.py", line 363, in send_multipart
i, rmsg,
TypeError: Frame 0 ('Some exception handling minion ...) does not support the buffer interface.
2019-11-29 14:59:46,065 [tornado.application:632 ][ERROR ][6219] Exception in callback None
Traceback (most recent call last):
File "/usr/lib64/python3.6/site-packages/zmq/sugar/socket.py", line 356, in send_multipart
_buffer_type(msg)
TypeError: memoryview: a bytes-like object is required, not 'str'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/python3.6/site-packages/tornado/ioloop.py", line 886, in start
handler_func(fd_obj, events)
File "/usr/lib64/python3.6/site-packages/tornado/stack_context.py", line 274, in null_wrapper
return fn(*args, **kwargs)
File "/usr/lib64/python3.6/site-packages/zmq/eventloop/zmqstream.py", line 444, in _handle_events
self._handle_send()
File "/usr/lib64/python3.6/site-packages/zmq/eventloop/zmqstream.py", line 487, in _handle_send
status = self.socket.send_multipart(msg, **kwargs)
File "/usr/lib64/python3.6/site-packages/zmq/sugar/socket.py", line 363, in send_multipart
i, rmsg,
TypeError: Frame 0 ('Some exception handling minion ...) does not support the buffer interface
3. Reason:
Again, I was prompted that mysqlpy was not loaded. This time, I did
MySQL environment is also 3.6
Salt is also 3.6
Is the position not together
4. Solution 1:
Unload and reload
[root@IP ~]# pip3 uninstall mysqlclient
[root@IP salt]# pip3 install mysql-client
There are still problems
5. Solution 2: complete
Maybe it’s not in a directory
PIP installation specified directory https://blog.csdn.net/guotong1988/article/details/61196363
[root@IP salt]# pip3 install --target=/usr/lib/python3.6/site-packages/ mysql-client
6, results: has become