pymysql访问mysql外部服务器
时间: 2023-04-10 11:02:30 浏览: 112
可以使用以下代码连接外部 MySQL 服务器:
```python
import pymysql
# 连接数据库
conn = pymysql.connect(
host='外部服务器IP地址',
port=3306,
user='用户名',
password='密码',
db='数据库名',
charset='utf8mb4'
)
# 执行 SQL 查询
cursor = conn.cursor()
sql = 'SELECT * FROM 表名'
cursor.execute(sql)
result = cursor.fetchall()
# 关闭连接
cursor.close()
conn.close()
```
注意,需要将 `host` 参数设置为外部 MySQL 服务器的 IP 地址,而不是 `localhost` 或 `127.0.0.1`。另外,需要确保外部 MySQL 服务器已经开启远程访问权限。
相关问题
import requests, pymysql
`import requests, pymysql` 这两行代码是在Python程序中引入了两个外部库,它们分别用于不同的功能:
1. `requests`: 这是一个非常流行的库,用于发送HTTP请求。它简化了网络通信过程,可以用来获取网页内容、发送POST请求、处理JSON数据等网络操作。通过`requests.get()`或`requests.post()`这样的函数,开发者可以方便地与Web服务器交互。
2. `pymysql`: 这是PyMySQL库,它是Python的一个实现了MySQL数据库连接的模块。如果你的项目需要与MySQL数据库进行交互,如查询、插入、更新数据,那么这个库就非常有用。你可以使用`pymysql.connect()`建立数据库连接,然后使用`cursor.execute()`来执行SQL命令。
例如,一个简单的示例可能是:
```python
import requests
import pymysql
# 发送GET请求获取网页内容
response = requests.get('https://www.example.com')
print(response.text)
# 连接MySQL数据库并执行查询
db = pymysql.connect(host='localhost', user='username', password='password', db='dbname')
cursor = db.cursor()
query = "SELECT * FROM table_name"
cursor.execute(query)
results = cursor.fetchall()
db.close()
for row in results:
print(row)
```
python mysql 阿里云服务器部署
### 如何在阿里云服务器上部署Python与MySQL的应用
#### 准备工作
确保已经安装好所需的软件环境,包括 Python 和 MySQL。对于 Python 版本管理,可以创建软链接以便全局调用特定版本的 Python 解释器[^2]。
```bash
$ sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python
$ python -V
```
#### 安装依赖包
更新本地包索引以避免后续可能出现的 `404 Not Found` 错误:
```bash
sudo apt-get update
```
#### 设置MySQL服务
为了使外部能够访问 MySQL 数据库,在完成基本安装之后需调整其绑定地址配置以及开放必要的防火墙端口。具体操作如下:
- 修改 `/etc/mysql/mysql.conf.d/mysqld.cnf` 文件中的 bind-address 参数,将其注释掉或更改为服务器公网 IP 地址[^3]。
```ini
#bind-address = 127.0.0.1
```
- 开启安全组内的相应端口号(如默认的 3306),这一步骤通常是在阿里云控制台的安全组设置页面完成[^1]。
- 授权 root 用户或其他指定账户可以从任意主机连接至数据库实例,并设定强密码策略来保障安全性:
```sql
USE mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YourStrongPassword!';
FLUSH PRIVILEGES;
EXIT;
```
- 对于某些情况下的旧版认证插件不兼容问题,可以通过更改用户的身份验证方式解决[^5]:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourNewPassword';
```
最后记得重启 MySQL 服务让改动生效:
```bash
net stop mysql57 && net start mysql57
```
#### 构建Python应用程序并与MySQL集成
编写 Django 或 Flask 等 Web 框架驱动的应用程序时,可通过 SQLAlchemy、PyMySQL 库实现同 MySQL 的交互功能。下面是一个简单的例子展示如何利用 PyMySQL 创建表结构并插入数据记录:
```python
import pymysql.cursors
connection = pymysql.connect(
host='your_server_ip',
port=3306,
user='root', # 使用之前授权过的用户名
password='pwd', # 填写对应的密码
database='testdb'# 新建立的数据集名称
)
try:
with connection.cursor() as cursor:
sql_create_table = """
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age TINYINT UNSIGNED);
"""
cursor.execute(sql_create_table)
insert_query = "INSERT INTO users (name, age) VALUES (%s,%s)"
data_to_insert = ('Alice', 28),('Bob', 24)
cursor.executemany(insert_query,data_to_insert)
finally:
connection.commit()
connection.close()
```
阅读全文