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就能保存了

扫描二维码关注公众号,回复: 4650351 查看本文章
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。

猜你喜欢

转载自blog.csdn.net/xk_coder/article/details/84644045