Python远程连接Ubuntu20.4下的Mariadb数据库进行操作


前言

环境:
1、Ubuntu20.4
2、Mariadb
3、python
Mariadb安装:ubuntu20.4安装 mariadb 最新版


一、ubuntu20.4安装mariadb10.5

1、更换数据源

sudo apt-get install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.5/ubuntu focal main'

更换数据源为清华源,如果在执行第一句命令时报错时,可执行sudo apt update进行更新。

2、安装mariadb

sudo apt update
sudo apt -y install mariadb-server
# 安装完成 默认自启动
# 如果没有 请用如下 查看
sudo systemctl status mariadb
# 开机自启动
sudo systemctl enable mariadb  --now

3、设置密码

sudo mysql_secure_installation

在这里插入图片描述

4、设置管理用户

输入 mysql -u root -p 进入mysql

在这里插入图片描述

# 设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
或
GRANT ALL PRIVILEGES on *.* TO 'root'@'%' IDENTIFIED BY '123456' with grant option;

# 设置 密码
SET PASSWORD FOR admin=PASSWORD('123456');
# 应用刷新
flush privileges;
# 退出
exit;

5、设置远程登录

  • 修改下面文件:
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
  • 把 bind-address=XXX 修改为 如下,表允许所有地址:
bind-address=0.0.0.0
  • 重启数据库:
sudo systemctl restart mariadb

6、修改端口

  • 修改文件中需要远程连接的端口:
sudo vim /etc/mysql/my.cnf
  • 去掉#号的注释,修改端口号:
#port                   = 3307
  • 其他命令:
# 重启
sudo systemctl restart mariadb
# 启动
sudo systemctl start mariadb
# 关闭
sudo systemctl stop mariadb
# 状态
sudo systemctl status mariadb

二、mariadb10.5建库建表

创建数据库

  • 我们通过下面的语句进行对数据库的相关操作:

查询数据库:show databases;(;表示我已输入完成,用在每一次的命令输入完成之后必须加上;)
创建数据库:create database 数据库名称;(一般不用中文)
删除数据库:drop database 数据库名;(不可恢复的)
使用数据库:use 数据库名称;

  • 创建成功:
    在这里插入图片描述

2.建表

注意:在建表之前需要使用下面命令选定数据库。

use 数据库名;

在这里插入图片描述

  • 建表:
create table test2 (id int,grade int)

在这里插入图片描述

  • 尝试插入数据:
    在这里插入图片描述

三、Python代码及环境准备

1、Python

  • 代码:
import socket
import sys
import struct
import time
import tcp
import threading
import _thread
import pymysql
import pymysql


#连接数据
def MySQLConnect():
    connection = pymysql.connect(
        host='局域网地址',  # IP,MySQL数据库服务器IP地址 后面换成局域网地址
        port=3307,  # 端口,默认3306,可以不输入
        user='root',  # 数据库用户名
        password='123456',  # 数据库登录密码
        database='ks',  # 要连接的数据库
        charset='utf8'  # 字符集,注意不是'utf-8'
    )
    return connection

#插入数据到数据库、增
def AddData(id,grade):
    # 连接数据库
    conn = MySQLConnect()
    # 使用cursor()方法创建一个游标对象cursor
    cursor = conn.cursor()
    # 插入数据库
    sql = "INSERT INTO test2(id,grade) VALUES (%s,%s); "
    # sql = "INSERT INTO distance(id,distance,time) VALUES (%s,%s,%s); "
    # sql = "INSERT INTO user(id,phone,sex,address) VALUES (%s,%s,%s,%s); "
    cursor.execute(sql, [id,grade])
    # 提交事务
    conn.commit()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    conn.close()
#删除数据
def DelData():
    # 连接数据库
    conn = MySQLConnect()
    # 使用cursor()方法创建一个游标对象cursor
    cursor = conn.cursor()
    # 读数据库
    cursor.execute('delete from test2 where id = 2')
    # cursor.execute(sql, [num, yb, wd, time])
    # 提交事务
    conn.commit()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    conn.close()
#修改数据
def UpData():
    # 连接数据库
    conn = MySQLConnect()
    # 使用cursor()方法创建一个游标对象cursor
    cursor = conn.cursor()
    # 读数据库
    cursor.execute('UPDATE test2 SET grade = 100 WHERE id =3 ')
    # cursor.execute(sql, [num, yb, wd, time])
    # 提交事务
    conn.commit()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    conn.close()
#查看数据、查
def ReadData():
    # 连接数据库
    conn = MySQLConnect()
    # 使用cursor()方法创建一个游标对象cursor
    cursor = conn.cursor()
    # 读数据库
    cursor.execute('select * from test2')
    aa = cursor.fetchall()
    print(aa)
    #cursor.execute(sql, [num, yb, wd, time])
    # 提交事务
    conn.commit()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    conn.close()

if __name__ == '__main__':

    try:
        # MySQLConnect()
        ReadData()
        AddData(3,64)
        # DelData()
        # UpData()
        ReadData()
        print("连接成功")
    except:
        print("连接失败")
        sys.exit(1)
  • 效果:
    在这里插入图片描述

2、环境

  • 关闭防火墙:

在开始进行远程连接时,我们需要关闭windows与unbuntu下的防火墙

  • unbuntu与windows需处于同一局域网下:

这里可以将虚拟机设置为桥接模式即可。


四、总结

此次的操作并不难,并且Mariadb数据库的操作与mysql的操作基本无异,我们需要注意的就是一定要关闭防火墙和确保windows与虚拟机处于局域网内即可。

五、参考资料

ubuntu20.4安装 mariadb 最新版
PYTHON远程连接LINUX系统上的MARIADB数据库

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

混子王江江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值