shell脚本连接、读写、操作mysql数据库实例

Shell连接、读写、操作MySQL

前置条件

在使用过程中需要安装mysql-client,可以使用以下命令完成:

sudo apt-get install mysql-client

另外,还需要安装以下软件包:

  • mysql
sudo apt-get install mysql-server
  • mysql-connector-python
pip install mysql-connector-python

连接MySQL数据库

连接MySQL数据库,需要使用以下命令:

$ mysql -h <host> -u <username> -p

其中:

  • -h <host>:指定连接的MySQL主机
  • -u <username>:指定连接的MySQL用户
  • -p:指定需要输入密码进行连接

示例:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19-0ubuntu5 (Ubuntu)

...

mysql>

连接成功后,可以在终端输入show databases;命令来查看当前数据库列表。

读取数据

读取MySQL数据库,需要先连接到相应的数据库,然后使用SELECT命令查询数据。

示例:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19-0ubuntu5 (Ubuntu)

...

mysql> use mydatabase;
Database changed
mysql> SELECT * FROM mytable;
+----+--------+-----------+
| id | name   | age       |
+----+--------+-----------+
|  1 | Alice  |        21 |
|  2 | Bob    |        25 |
|  3 | Charlie|        32 |
+----+--------+-----------+
3 rows in set (0.00 sec)

写入数据

写入MySQL数据库,需要先连接到相应的数据库,然后使用INSERT命令插入数据。

示例:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19-0ubuntu5 (Ubuntu)

...

mysql> use mydatabase;
Database changed
mysql> INSERT INTO mytable (name, age) VALUES ('David', 28);
Query OK, 1 row affected (0.01 sec)

操作MySQL

操作MySQL数据库,需要先连接到相应的数据库,然后使用相应的命令进行操作。

创建表

示例:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19-0ubuntu5 (Ubuntu)

...

mysql> use mydatabase;
Database changed
mysql> CREATE TABLE user (
    ->   id INT NOT NULL AUTO_INCREMENT,
    ->   name VARCHAR(50) NOT NULL,
    ->   age INT NOT NULL,
    ->   PRIMARY KEY (id)
    -> );
Query OK, 0 rows affected (0.02 sec)

修改表

示例:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19-0ubuntu5 (Ubuntu)

...

mysql> use mydatabase;
Database changed
mysql> ALTER TABLE user ADD COLUMN gender VARCHAR(10) DEFAULT 'unknown';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

删除表

示例:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19-0ubuntu5 (Ubuntu)

...

mysql> use mydatabase;
Database changed
mysql> DROP TABLE user;
Query OK, 0 rows affected (0.01 sec)

示例代码

#!/bin/bash 
HOST="127.0.0.1" 
USER="root" 
PASS="password" 
DB="mydatabase" 

mysql --user=$USER --password=$PASS --host=$HOST $DB << EOF 
    SELECT * FROM mytable; 
EOF
import mysql.connector

cnx = mysql.connector.connect(user='root', password='password',
                              host='127.0.0.1',
                              database='mydatabase')

cursor = cnx.cursor()

query = ("SELECT * FROM mytable")

cursor.execute(query)

for (id, name, age) in cursor:
  print("{} - {} - {}".format(id, name, age))

cursor.close()
cnx.close()

以上就是Shell脚本连接、读写、操作MySQL数据库实例的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:shell脚本连接、读写、操作mysql数据库实例 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Android编程操作嵌入式关系型SQLite数据库实例详解

    Android编程操作嵌入式关系型SQLite数据库实例详解 什么是SQLite数据库 SQLite是一种轻型的关系型数据库。与其他数据库不同,SQLite是嵌入式的数据库,它不需要独立的服务器进程或配置,而直接读取或写入普通文件。这使得SQLite非常适用于需要轻量级、快速、可靠的数据存储和检索的场景,包括Android应用。 在Android中使用SQL…

    database 2023年5月22日
    00
  • CentOS 6.3下安装部署Oracle服务器图文教程

    CentOS 6.3下安装部署Oracle服务器图文教程 简介 在CentOS 6.3上安装、部署Oracle服务器,是一项相对困难的任务,但本文将给出一份详细的安装部署攻略,供大家参考。 1. 安装Linux系统 在CentOS官网下载CentOS 6.3的ISO镜像,然后使用U盘启动盘或虚拟机安装CentOS系统。 2. 准备Oracle安装文件 从Or…

    database 2023年5月22日
    00
  • 在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误

    要在Oracle数据库中查看一个SQL语句的执行时间和SP2-0027错误,需要以下步骤: 打开SQL*Plus命令行界面。 在SQL*Plus命令行界面中输入以下命令: SET TIMING ON; SET AUTOTRACE TRACEONLY; 其中,SET TIMING ON命令用于开启计时器,SET AUTOTRACE TRACEONLY命令用于开…

    database 2023年5月21日
    00
  • Java使用强大的Elastisearch搜索引擎实例代码

    首先,使用 Elasticsearch 搜索引擎需要安装 Elasticsearch 并在 Java 项目中添加 Elasticsearch 客户端库,通常是 Elasticsearch 的 Java API 客户端:elasticsearch-rest-client。 使用 Elasticsearch 的 Java API 客户端需要建立 Client 实…

    database 2023年5月22日
    00
  • Mysql 字符集不一致导致连表异常的解决

    MySQL字符集不一致可能会导致连表异常、数据显示乱码等问题。为了解决这种问题,我们可以按照以下攻略进行处理: 1.确认 MySQL 当前字符集 我们可以使用以下 SQL 语句来查看 MySQL 当前字符集: show variables like ‘character_set%’; 执行结果中,我们需要关注以下变量: character_set_clien…

    database 2023年5月21日
    00
  • Mysql 数据库 基础代码

    — 创建数据库 CREATE DATABASE book; — 创建作者表 CREATE TABLE authors( Id int not NULL, — 作者编号 Fname VARCHAR(10), — 姓 Lname VARCHAR(12), — 名 Sex CHAR(2), Sage int ); — 创建图书表 CREATE tabl…

    MySQL 2023年4月13日
    00
  • Mysql事物锁等待超时Lock wait timeout exceeded;的解决

    Mysql事物锁等待超时是指在Mysql的事务处理过程中,一个事务因为获取锁等待超时而被阻塞,这种情况会导致事务无法执行而出现异常。下面来详细讲解一下如何解决这个问题。 什么是Mysql事物锁等待超时 MySQL的事务隔离级别是通过锁机制来实现的,这个锁机制包括表级锁和行级锁两种,其中行级锁是通过InnoDB存储引擎来实现的。 当多个事务对同一行记录进行修改…

    database 2023年5月18日
    00
  • Android中操作SQLite数据库快速入门教程

    标题:Android中操作SQLite数据库快速入门教程 简介 SQLite是一种轻型的数据库管理系统,它可以嵌入到Android应用程序中,用于管理应用程序中的数据。在Android中,我们可以通过使用SQLiteOpenHelper类或直接使用SQLiteDatabase类来操作SQLite数据库。本文将详细讲解如何在Android应用程序中使用SQLi…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部