当前位置:网站首页>Sorting out the problems encountered in MySQL built by pycharm connecting virtual machines

Sorting out the problems encountered in MySQL built by pycharm connecting virtual machines

2022-07-05 21:28:00 Raymond。

1. pycharm Connect mysql database

The connection tutorial can be referred to PyCharm Connecting virtual machines MySql database .

2. pycharm Problems with connecting

2.1 mysql Version and driver issues

The version installed in the virtual machine is 5.1.49, Need to be in mysql for 5.1 Select the corresponding drive on .
The problem is solved by referring to the official documents Cannot connect to a database
 Insert picture description here

2.2 Connection error timeout

The next day after the connection is successful , When I tested again, I found , Report errors :

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago

Reference resources MySQL The next morning, I made an error when I connected for the first time , resolvent
The reason is because mysql There is a problem with the configuration . stay mysql There are two timing operations in , The parameter name is interactive_timeout and wait_timeout. The meaning is as follows :
1)interactive_timeout: The number of seconds the server waits for activity before shutting down the interactive connection . The interactive client is defined in mysql_real_connect() Use in CLIENT_INTERACTIVE Option client .
Parameter default :28800 second (8 Hours )
(2)wait_timeout: The number of seconds the server waits for activity before shutting down non interactive connections .
When the thread starts , According to the global wait_timeout Value or global interactive_timeout Value initializes the session wait_timeout value , Depends on the client type ( from mysql_real_connect() Connection options for CLIENT_INTERACTIVE Definition ).
Parameter default :28800 second (8 Hours )

When a client connects to MySQL After the database , If the client does not disconnect itself , And do nothing ,MySQL The database will keep this connection "wait_timeout" All this time ( The unit is s, The default is 28800s, That is to say 8 Hours ), Beyond that time ,MySQL Database in order to save resources , The connection will be disconnected on the database side ; Of course , In the process , If the client has any operation on this connection ,MySQL The database will restart calculating this time .
Therefore, in order to prevent timeout , You need to increase the two timeout timers . For the method of change, see MySQL The next morning, I made an error when I connected for the first time , resolvent

2.3 SSH Connect MYSQL

stay PyCharm Connecting virtual machines MySql database The article mentions

Because we are connected to virtual machines MySQL, So you need to fill in SSH( Safety surgery agreement ), adopt SSH Securely connect to the virtual machine for data interaction

I solve this problem 2.2 In question , Reconnect the mysql Database time , Forgot to fill in ssh news , As a result, it has been disconnected . About ssh Relevant knowledge needs to be supplemented .

3. pycharm Problems in connecting to the database in the code

3.1 About modules MySQLdb

Report errors

ModuleNotFoundError: No module named ‘MySQLdb

I installed python The version is 3.9
MySQLdb Only support Python2., Not yet 3.
It can be used PyMySQL Instead of . Installation method :pip install PyMySQL
In the use of import sqlalchemy When combined with :import pymysql
pymysql.install_as_MySQLdb(), namely :

import pymysql
pymysql.install_as_MySQLdb()
from sqlalchemy import create_engine

Reference resources :
python3.6 Report errors ModuleNotFoundError: No module named ‘MySQLdb‘ And solutions

3.2 Wrong connection time_out

Report errors

pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '...' (timed out)")

First, check whether the user is granted remote access permission .
After determining the endowments , see MySQL 3306 Whether the port listens ,

netstat -nltp | grep 3306

Finally, check the firewall status , Confirm that it is closed .

3.3 About create_engine usage

usage :
engine = create_engine(‘dialect+driver://username:[email protected]:port/database’)

dialect – Database type

driver – Database driven selection

username – Database user name

password – User password

host Server address

port port

database database
for example mysql:
mysql-python
engine = create_engine(‘mysql+mysqldb://scott:[email protected]/foo’)

For more data types, refer to python sqlalchemy in create_engine usage

原网站

版权声明
本文为[Raymond。]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140508408171.html