BrokenPipe error occurs if myconnpy is connected to mysql with unix socket:
>>> from mysql.connector import Connect >>> db = Connect(unix_socket="/var/run/mysqld/mysqld.sock", user="user", password="pwd", database="db") >>> db.is_connected() {'insert_id': 0, 'affected_rows': 0, 'field_count': 0, 'warning_count': 0, 'server_status': 0}
now I stop mysqld
>>> db.is_connected() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "mysql/connector/connection.py", line 479, in is_connected return self.protocol.cmd_ping() File "mysql/connector/protocol.py", line 136, in deco return func(*args, **kwargs) File "mysql/connector/protocol.py", line 614, in cmd_ping self.conn.send(pkt,self.next_pktnr) File "mysql/connector/connection.py", line 100, in send_plain raise errors.OperationalError('%s' % e) mysql.connector.errors.OperationalError: [Errno 32] Broken pipe
If I use TCP connection instead, returns "Expected OK packet" as You wrote.
IMO is_connected should send command calls in try except and return bool.
BrokenPipe error occurs if myconnpy is connected to mysql with unix socket:
>>> from mysql.connector import Connect unix_socket= "/var/run/ mysqld/ mysqld. sock", user="user", password="pwd", database="db")
>>> db = Connect(
>>> db.is_connected()
{'insert_id': 0, 'affected_rows': 0, 'field_count': 0, 'warning_count': 0, 'server_status': 0}
now I stop mysqld
>>> db.is_connected() connector/ connection. py", line 479, in is_connected cmd_ping( ) connector/ protocol. py", line 136, in deco connector/ protocol. py", line 614, in cmd_ping conn.send( pkt,self. next_pktnr) connector/ connection. py", line 100, in send_plain OperationalErro r('%s' % e) .errors. OperationalErro r: [Errno 32] Broken pipe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mysql/
return self.protocol.
File "mysql/
return func(*args, **kwargs)
File "mysql/
self.
File "mysql/
raise errors.
mysql.connector
If I use TCP connection instead, returns "Expected OK packet" as You wrote.
IMO is_connected should send command calls in try except and return bool.