如何使用shell脚本访问mysql数据库?

时间:2011-04-27 18:55:28

标签: mysql database shell

有没有办法可以使用shell脚本访问MySQL数据库? 想在多个表上做一些选择和一些插入吗?

如果您可以提供一些示例代码,那将是非常棒的,因为我不熟悉脚本。

5 个答案:

答案 0 :(得分:6)

此链接似乎包含您想要的信息。

http://www.cyberciti.biz/faq/using-mysql-in-shell-scripts/

mysql -u user -p dbnane

答案 1 :(得分:4)

试试这个

#!/bin/bash
echo "show all tables"
mysql -uroot -p'password' dbname<<EOFMYSQL
show tables;
EOFMYSQL
echo "Count of all records"
mysql -uroot -p'password' dbname<<EOFMYSQL
select count(*) from tbname;
EOFMYSQL

答案 2 :(得分:2)

您可以使用shell脚本中的mysql command-line tool

答案 3 :(得分:0)

实际上,我是用Perl实现的。我编写了一个能够访问MySQL数据库的Perl脚本。

我所要做的只是将其包含在我的Perl脚本中:

# PERL MODULES USING
use DBI;
use DBD::mysql;

但请确保正确安装这些模块。我不知道怎么做,因为我的系统管理员为我做了。

您可以像这样访问数据库:

# MYSQL CONFIG VARIABLES
$platform = "mysql";
$host = "<your db server ip>";
$database = "<db name>";
$org_table = "<table name>";
$user = "<username>";
$pw = "<password>";

# DATA SOURCE NAME
$dsn = "dbi:$platform:$database:$host:$port";

# PERL DBI CONNECT
$connect = DBI->connect($dsn, $user, $pw);

现在假设你创建了一个查询字符串,然后你想执行它:

#SELECT THE ORG SHORT NAMES
$select_org = "SELECT id, short_name FROM $org_table";
$org_handle = $connect->prepare($select_org);

$org_handle will have the resultset.

答案 4 :(得分:0)

例如,选择name的{​​{1}}中的所有table tablename字段,然后将所有名称重定向到/tmp/all_name.txt。

database dbname

请注意,#!/bin/sh mysql -uuser_name -puser_pwd -h10.10.10.10 -A --default-character-set=utf8 \ -e "select name from dbname.tablename;" > /tmp/all_name.txt 不是-uuser_name-u user_name