日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

shell mysql_shell操作mysql

發布時間:2025/3/15 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell mysql_shell操作mysql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#!/bin/bash

#mysql.sh

mysql='mysql -uroot -ptogest'

sql='show databases;use togest_sy_department;show tables;'

$mysql -e "$sql"

mysql -uroot -ptogest --tee="mysql.log"

shell操作mysql

在shell開發中,很多時候我們需要操作mysql數據庫(比如:查詢數據、導出數據等),但是我們又無法進入mysql命令行的環境,就需要在 shell環境中模擬mysql的環境,使用mysql相關命令,本文總結幾種shell操作mysql的方法,供大家參考。方案1

[python] view plaincopy

mysql -uuser -ppasswd -e"insert LogTable values(...)"

優點:語句簡單

缺點:支持的sql相對簡單

方案2

準備一個sql腳本,名字為update.sql,例如:

[python] view plaincopy

CREATE TABLE user (

id varchar(36) NOT NULL COMMENT '主鍵',

username varchar(50) NOT NULL COMMENT '用戶名',

password varchar(50) NOT NULL COMMENT '用戶密碼',

createdate date NOT NULL COMMENT '創建時間',

age int(11) NOT NULL COMMENT '年齡',

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用戶信息表';

DROP TABLE IF EXISTS visit_log;

CREATE TABLE visit_log (

id varchar(36) character set utf8 NOT NULL,

type int(11) NOT NULL,

content text character set utf8 NOT NULL,

createdate date NOT NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='訪問日志';

新建一個update_mysql.sh,內容如下:

[python] view plaincopy

use chbdb;

source update.sql

然后執行如下命令:

[python] view plaincopy

cat update_mysql.sh | mysql --user=root -ppassword

優點:支持復雜的sql腳本

缺點:

1> 需要兩個文件:update.sql和update_mysql.sh

2> 一旦中間出錯,之后腳本就不會執行,例如:

如果第一張表已經存在,則會報出如下異常:

ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists

然后腳本退出,第二張表也就無法創建。方案3

新建一個shell腳本,格式如下:

[python] view plaincopy

#!/bin/bash

mysql -u-h -p* <

Your SQL script.

EOF

例如:

[python] view plaincopy

#!/bin/bash

mysql -uroot -ppassword <

use chbdb;

CREATE TABLE user (

id varchar(36) NOT NULL COMMENT '主鍵',

username varchar(50) NOT NULL COMMENT '用戶名',

password varchar(50) NOT NULL COMMENT '用戶密碼',

createdate date NOT NULL COMMENT '創建時間',

age int(11) NOT NULL COMMENT '年齡',

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用戶信息表';

優點:

1>支持復雜的sql腳本

2>無需其它額外文件

缺點:

1> 表名、字段不能使用單引號,需要修改原有sql語句

2> 一旦中間出錯,之后腳本就不會執行,例如:

如果第一張表已經存在,則會報出如下異常:

ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists

然后腳本退出,第二張表也就無法創建。方案4

準備一個sql腳本,如update.sql,然后執行如下命令:

[python] view plaincopy

mysql -uroot -ppassword < update.sql

優點:支持復雜的sql腳本

缺點:

1> 一旦中間出錯,之后腳本就不會執行,例如:

如果第一張表已經存在,則會報出如下異常:

ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists

然后腳本退出,第二張表也就無法創建。

大家知道在mysql命令行中使用source命令,即使中間出錯,后續腳本也會繼續執行,但是如上幾種方式,均無法解決該問題,如果大家有好的建議,請回復,謝謝。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的shell mysql_shell操作mysql的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。