帮我写一个检测特定路径下是否存在sql文件,如果有服务器登陆mysql并自动执行该sql
时间: 2024-03-20 18:45:09 浏览: 58
好的,以下是一个简单的Python脚本,可以实现您的需求:
```python
import os
import pymysql
# 定义MySQL连接信息
MYSQL_HOST = 'localhost'
MYSQL_PORT = 3306
MYSQL_USER = 'root'
MYSQL_PASSWORD = 'root'
MYSQL_DB = 'test'
# 指定要检测的路径
sql_dir = '/path/to/sql/dir'
# 遍历指定路径下的所有文件
for filename in os.listdir(sql_dir):
if filename.endswith('.sql'):
# 如果发现.sql文件,则读取文件内容
with open(os.path.join(sql_dir, filename), 'r') as f:
sql = f.read()
# 连接MySQL,并执行SQL语句
try:
conn = pymysql.connect(host=MYSQL_HOST, port=MYSQL_PORT,
user=MYSQL_USER, password=MYSQL_PASSWORD,
database=MYSQL_DB, charset='utf8mb4')
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
print(f'Successfully executed {filename}')
except Exception as e:
print(f'Error executing {filename}: {e}')
```
您只需要将`MYSQL_HOST`、`MYSQL_PORT`、`MYSQL_USER`、`MYSQL_PASSWORD`和`MYSQL_DB`替换为您的MySQL连接信息,将`sql_dir`指定为您要检测的目录路径即可。脚本会自动遍历该目录下的所有.sql文件,并连接MySQL并执行SQL语句。
请注意,这个脚本可能会执行一些危险的SQL语句,请确保在指定的目录中只有您信任的.sql文件。
阅读全文