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

文章目录

  • 前言
  • 一、ubuntu20.4安装mariadb10.5
    • 1、更换数据源
    • 2、安装mariadb
    • 3、设置密码
    • 4、设置管理用户
    • 5、设置远程登录
    • 6、修改端口
  • 二、mariadb10.5建库建表
    • 创建数据库
    • 2.建表
  • 三、Python代码及环境准备
    • 1、Python
    • 2、环境
  • 四、总结
  • 五、参考资料


前言

环境:
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

Python远程连接Ubuntu20.4下的Mariadb数据库进行操作_第1张图片

4、设置管理用户

输入 mysql -u root -p 进入mysql

Python远程连接Ubuntu20.4下的Mariadb数据库进行操作_第2张图片

# 设置权限
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 数据库名称;

  • 创建成功:
    Python远程连接Ubuntu20.4下的Mariadb数据库进行操作_第3张图片

2.建表

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

use 数据库名;

Python远程连接Ubuntu20.4下的Mariadb数据库进行操作_第4张图片

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

Python远程连接Ubuntu20.4下的Mariadb数据库进行操作_第5张图片

  • 尝试插入数据:
    Python远程连接Ubuntu20.4下的Mariadb数据库进行操作_第6张图片

三、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)
  • 效果:
    Python远程连接Ubuntu20.4下的Mariadb数据库进行操作_第7张图片

2、环境

  • 关闭防火墙:

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

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

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


四、总结

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

五、参考资料

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

你可能感兴趣的:(数据库,python,mariadb)