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

yizhihongxing

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日

相关文章

  • SpringBoot集成Sharding Jdbc使用复合分片的实践

    下面是SpringBoot集成Sharding Jdbc使用复合分片的实践攻略,分为以下几个步骤: 1. 引入Sharding Jdbc和依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-…

    database 2023年5月19日
    00
  • SQL Server创建数据库图文教程

    下面是“SQL Server创建数据库图文教程”的完整攻略。 1. 确认权限 在创建数据库之前,首先需要确认当前用户是否拥有创建数据库的权限。可以通过以下命令查询当前用户的权限: SELECT * FROM sys.fn_my_permissions(NULL, ‘SERVER’) WHERE permission_name = ‘CREATE ANY DA…

    database 2023年5月21日
    00
  • MySQL DELETE语法使用详细解析

    MySQL DELETE语法使用详细解析 DELETE语句常用于删除MySQL表中的一条或多条记录。在本文中,将为您详细介绍MySQL DELETE语法。 语法 以下是MySQL DELETE语法的基本结构: DELETE FROM table_name WHERE condition; 其中,table_name是要删除数据的表的名称,condition是…

    database 2023年5月22日
    00
  • .NET 6开发TodoList应用引入数据存储

    针对““.NET 6开发TodoList应用引入数据存储”的完整攻略,我提供如下解答,共分为以下几个部分: 概述 引入EF Core 建立数据模型 添加CRUD操作 示例说明 1. 概述 在.NET 6开发TodoList应用时,我们常常需要引入数据存储,这样才可以实现TodoList应用的功能。一般情况下,我们会选择使用EF Core来实现数据存储。 本文…

    database 2023年5月22日
    00
  • Oracle查看逻辑读、物理读资源占用排行的SQL语句

    当我们需要查看Oracle数据库中占用资源比较高的SQL语句时,可以通过查询逻辑读、物理读等IO资源占用排行来进行分析和优化。下面是查询逻辑读和物理读资源占用排行的SQL语句的详细攻略,包含以下步骤: 1. 获取系统级别的物理和逻辑 IO 统计信息 我们需要先获取系统级别的物理和逻辑IO统计信息,这可以通过如下SQL语句来获取: SELECT a.value…

    database 2023年5月21日
    00
  • 通过两种方式增加从库——不停止mysql服务

    本文将介绍通过两种方式增加MySql从库,而不需要停止MySql主服务。两种方式分别为基于GTID的复制和基于数据库备份的复制。 1. 基于GTID的复制 GTID是MySQL从5.6版本中引入的特性,用于在主从复制环境中解决多主复制冲突的问题。在增加从库时,使用GTID能够避免重复数据问题。 1.1 步骤一:启用GTID 在MySQL主服务器上,编辑my.…

    database 2023年5月22日
    00
  • C++连接mysql数据库并读取数据的具体步骤

    通过C++连接MySQL数据库并读取数据,我们需要按照以下步骤进行: 步骤一:安装MySQL C++ Connector 我们需要先从官方网站下载MySQL C++ Connector的安装包,然后根据自己的操作系统安装。 Windows:以管理员身份运行CMD,进入MySQL Connector C++ 安装文件目录,使用如下命令执行安装文件: shell…

    database 2023年5月22日
    00
  • java中throws与try…catch的区别点

    在Java中,异常处理是非常重要的一部分,它可以帮助程序员有效地处理程序在运行时出现的非法状态以及异常情况。在Java中,我们可以使用 throws 和 try…catch 两种方式来处理异常。两种方式都可以在方法中抛出异常,但是它们之间也有一些显著的区别。下面让我们一一来看看它们的区别点。 throws 和 try…catch 的作用 throws…

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