Python远程连接mysql并进行简单数据库操作

1.安装mysql_server,步骤自行百度
2.登录数据库
2.1查看mysql是否安装成功
netstat -tap | grep mysql 

登录mysql

mysql -u root -p
3.创建登录用户名等
3.1 查看数据库
show databases;
3.2新建登录用户
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION; 
#创建用户、密码及权限范围 第一个 admin为用户名 @后为适用的主机
flush privileges;#立即生效
4.尝试使用python进行数据库读写操作,这里使用的是python3
4.1 安装pymysql

pip install pymysql
有的人可能装有不同版本的python,因为pip是跟着python走的,所以要确认一下你的pip对应的是哪个版本,这里我的是 pip3 install pymysql

4.2 连接mysql,创建数据库
import pymysql
 
# 打开数据库连接
db = pymysql.connect("主机地址", "用户名", "密码", "要连接的数据库",port=3306,charset='utf8')
#端口号3306,utf-8编码,否则中文有可能会出现乱码。
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#如果存在表则删除
#cursor.execute("DROP TABLE IF EXISTS Employee")
 
# 使用 execute()  方法执行 SQL 查询
sql='''CREATE TABLE Employee (
         Id  CHAR(20) NOT NULL,
         Name  CHAR(20),
         Age INT,  
         SEX CHAR(1),
         Salary FLOAT )'''
try:
    cursor.execute(sql)
except Exception as e:
    db.rollback()#如果出错就回滚并且抛出错误收集错误信息。
    print("Error!:{0}".format(e))
finally:
    db.close()
# 关闭数据库连接

查询数据库

import  pymysql as mysql
#创建数据库连接对象。
db=mysql.connect("主机地址","用户名","密码","数据库名",port=3306,charset='utf8')
#使用 cursor() 方法创建一个游标对象cursor
cursor = db.cursor()
#SQL语句
sql="SELECT * FROM Employee"
try:
    cursor.execute(sql)
    results = cursor.fetchall() #获取全部结果集。  fetchone 查询第一条数据
    if not results: #判断是否为空。
        print("数据为空!")
    else:
        for row in results:
            Id = row[0]
            Name = row[1]
            Age = row[2]
            Sex = row[3]
            Salary = row[4]
            # 打印结果
            print("id:{0}姓名:{1}年龄:{2}性别:{3}工资:{4}".format(Id,Name,Age,Sex,Salary))
except Exception as e:
    db.rollback()  #如果出错就会滚数据库并且输出错误信息。
    print("Error:{0}".format(e))
finally:
    db.close()#关闭数据库。

.#这里有个坑,在连接mysql时总是连不上
通过 netstat -an | grep 3306 查看端口是开启状态的,继续排查发现3306端口绑定了本地IP127.0.0.1,修改对应配置文件 vi /etc/mysql/mysql.conf.d/mysqld.cnf,在配置文件中注释掉BIND ADRESS这一项

你可能感兴趣的:(Python远程连接mysql并进行简单数据库操作)