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

1.linux服务器 安装mysql:

 apt-get install mysql-server #Root用户安装mysql以及相关服务
 apt-get install mysql-client
 apt-get install libmysqlclient-dev

安装mysql—server 要设置登录用户的密码。

如果在监听状态则表示安装成功。

netstat -tap | grep mysql 

2.登录到数据库

mysql -u root -p  


3.查看数据库

Show databases; 


4.MySQL创建登录用户:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '1234' WITH GRANT OPTION; 

创建用户、密码及权限范围 第一个 admin为用户名 @后为适用的主机,‘%’表示所有电脑都可以访问连接,第二个为密码

flush privileges;

立即生效。
6.查看系统数据库有没有刚刚创建的用户信息。

use mysql;
SELECT DISTINCT CONCAT('User: [', user, '''@''', host, '];') AS USER_HOST FROM user; 

7.查看端口
mysql端口一般为3306。

show global variables like 'port';

8.查看端口,如果端口是开着的,但是还是连不上。

netstat -an | grep 3306

经过查看网上相关问题解决方案我发现3306端口绑定的IP地址是本地的127.0.0.1 ,那我们就在配置文件中注释掉BIND ADRESS这一项(此文件权限是readonly,用vim不能保存,用vi编辑,然后esc>shift+:>!wq就能保存了

vi /etc/mysql/mysql.conf.d/mysqld.cnf

然后重启sql服务

/etc/init.d/mysql restart

再检查下3306端口
netstat -an | grep 3306  再去端口扫描下3306就是开启状态。

9.接下来就是通过py文件连接到服务器的MYSQL,python2连接mysql的库MySQLdb,python3 连接mysql的库是PYmysql,我们以python3为例。 如果没有就安装 pip install pymysql

10. create databases

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()
# 关闭数据库连接

11.增删改查操作;

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连接方式。

另外Pycharm携带了轻量级的数据库,如sqllite。

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值