有没有办法可以使用shell脚本访问MySQL数据库? 想在多个表上做一些选择和一些插入吗?
如果您可以提供一些示例代码,那将是非常棒的,因为我不熟悉脚本。
答案 0 :(得分:6)
答案 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