Jquery中文網 www.afdoqc.live
Jquery中文網 >  腳本編程  >  shell  >  正文 Linux shell操作mysql數據庫的方法

Linux shell操作mysql數據庫的方法

發布時間:2014-11-27   編輯:www.afdoqc.live
本文介紹下,在linux中使用shell操作mysql數據庫的方法,通過具體的例子來學習,有需要的朋友,可以參考下。

在shell編程中,經常會遇到連接、操作mysql數據庫的情況,本文分享幾種方法,大家一起學習研究。

一,方法1
 

復制代碼 代碼示例:
mysql -uuser -ppasswd -e"insert LogTable values(...)" 

優點:語句簡單
缺點:支持的sql相對簡單

二,方法2
需要一個sql腳本,名字為update.sql,例如:
 

復制代碼 代碼示例:
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:
 

復制代碼 代碼示例:
use chbdb;
source update.sql

然后,執行命令:
 

復制代碼 代碼示例:
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腳本,格式如下:
 

復制代碼 代碼示例:
#!/bin/bash
mysql -u* -h* -p* <<EOF
    Your SQL script.
EOF

例如:
 

復制代碼 代碼示例:
#!/bin/bash
mysql -uroot  -ppassword <<EOF
   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,然后執行命令:
 

復制代碼 代碼示例:
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表批量插入數據
一例mysql數據庫備份的shell腳本
mysql數據庫備份常用命令示例
ubuntu下mysql配置
忘記MySql的root密碼的解決方法
Linux下指定數據庫數據配置主主同步的實例
mysql忘記root密碼的恢復方法
ubuntu下重置mysql root密碼的方法
從源碼開始搭建MySQL主從服務器的簡單配置
MySQL 忘記密碼的解決辦法

[關閉]
英格兰足球队