当前位置: 首页 > news >正文

linux执行mysql表_linux shell命令执行sql(mysql入门)

今天做个linux下的shell操作数据库的入门例子

1.shell文件内容:

#!/bin/bash

HOSTNAME="11.8.8.87"

PORT="3306"

USERNAME="root"

PASSWORD="root"

DBNAME="testa"

TABLENAME="test"

use_db_sql="use ${DBNAME}"

mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${use_db_sql}"

insert_sql="insert into ${TABLENAME} values('7','mike','123456')"

mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"

主机地址:11.8.8.87

端口:3306  数据库:testa 表:test

2.test表结构:

mysql> desc test;

+----------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+----------------+

| t_id | int(24) | NO | PRI | NULL | auto_increment |

| username | varchar(32) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

+----------+-------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

3.我这里命名shell文件名为:mysqltestshell,在windows上编辑后上传到linux服务器上,

修改权限:chmod +x

mysqltestshell

执行./mysqltestshell,

报错:-bash:

./mysqltestshell: /bin/bash^M: bad interpreter: No such file or

directory

解决办法:

vi

mysqltestshell

然后用命令 :set ff?

可以看到dos或unix的字样.

如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看.

4.运行结果

请自觉忽略乱码情况(此处只是测试),可以看到新增了一条记录

mysql> select * from test;

+------+----------+----------------------+

| t_id | username | password |

+------+----------+----------------------+

| 1 | 娴璇 | 娴璇瀵鐮 |

| 2 | ?? | 娴璇瀵鐮 |

| 3 | ?? | 忙碌?猫炉?氓炉?莽聽? |

| 4 | ?? | ???? |

| 5 | ?? | ???? |

| 6 | ?? | ???? |

| 7 | mike | 123456 |

+------+----------+----------------------+

7 rows in set (0.00 sec)

----------------------------------------------------------补充----------------------------------------------------------------

mysql

-hhostname -Pport -uusername -ppassword

-e

相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。

#!/bin/bash

HOSTNAME="192.168.111.84"  #数据库信息

PORT="3306"

USERNAME="root"

PASSWORD=""

DBNAME="test_db_test"  #数据库名称

TABLENAME="test_table_test"  #数据库中表的名称

#创建数据库

create_db_sql="create database IF NOT EXISTS ${DBNAME}"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} -e "${create_db_sql}"

#创建表

create_table_sql="create table IF NOT EXISTS ${TABLENAME} (

name varchar(20), id int(11) default 0 )"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} ${DBNAME} -e "${create_table_sql}"

#插入数据

insert_sql="insert

into ${TABLENAME} values('billchen',2)"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} ${DBNAME} -e "${insert_sql}"

#查询

select_sql="select *

from ${TABLENAME}"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} ${DBNAME} -e "${select_sql}"

#更新数据

update_sql="update

${TABLENAME} set id=3"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} ${DBNAME} -e "${update_sql}"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} ${DBNAME} -e "${select_sql}"

#删除数据

delete_sql="delete

from ${TABLENAME}"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} ${DBNAME} -e "${delete_sql}"

mysql -h${HOSTNAME}

-P${PORT}  -u${USERNAME}

-p${PASSWORD} ${DBNAME} -e "${select_sql}"

相关文章:

  • python 数组逆序重放_OpenJudge计算概论-找最大数序列
  • python爬虫处理滑块验证_python爬虫基础(9:验证识别之滑块验证)
  • qmediaplayer进度_QMediaPlayer的duration问题
  • java timer定时执行一次_Java Timer(定时调用、实现固定时间执行)
  • java字串数组_java字符串数组
  • java swing 拖拽文件夹_Java Swing 鼠标拖放文件 代码1
  • java treemap 降序排序_Java TreeMap 升序|降序排列
  • java 流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序
  • java 多层结构故障_多层构架在实践中一些问题
  • java项目提高安全性_Java线程安全与程序性能
  • mysql 获取真是执行计划_Oracle 从缓存里面查找真实的执行计划
  • mysql 越文_mysql数据库乱码之保存越南文乱码解决方法_MySQL
  • java发布_java项目发布的方式
  • python分享的代码怎么写_【图片】分享一段功能非常简陋的python代码实现下载free种【pt吧】_百度贴吧...
  • android js调用java_如何在Android平台上使用JS直接调用Java方法
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • canvas绘制圆角头像
  • Fabric架构演变之路
  • Java比较器对数组,集合排序
  • js数组之filter
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mysql 数据库四种事务隔离级别
  • Rancher-k8s加速安装文档
  • react 代码优化(一) ——事件处理
  • 关于 Cirru Editor 存储格式
  • 排序算法学习笔记
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 手机端车牌号码键盘的vue组件
  • 我是如何设计 Upload 上传组件的
  • 我与Jetbrains的这些年
  • - 转 Ext2.0 form使用实例
  • PostgreSQL之连接数修改
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​linux启动进程的方式
  • ###C语言程序设计-----C语言学习(6)#
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (补)B+树一些思想
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)winform之ListView
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .Net MVC + EF搭建学生管理系统
  • .net 按比例显示图片的缩略图
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .Net转前端开发-启航篇,如何定制博客园主题