#!/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
# 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.
#!/bin/bash
mysql_user="your_username" # should be in a secret store
mysql_pass="your_password" # should be in a secret store
mysql_host="localhost"
mysql_port="3306"
mysql_query="SHOW DATABASES;" # for example
mysql_result=$(timeout 5 mysql \
--host="${mysql_host}" \
--user="${mysql_user}" \
--password="${mysql_pass}" \
--port="${mysql_port}" \
-e "${mysql_query}")
for row in ${mysql_result[@]}; do
echo $row
done
6条答案
按热度按时间q3qa4bjr1#
此链接似乎包含您想要的信息。
http://www.cyberciti.biz/faq/using-mysql-in-shell-scripts/
ut6juiuv2#
试试这个
uqcuzwp83#
您可以从shell脚本使用
mysql
command-line tool。m528fe3b4#
实际上,我是用Perl实现的,我写了一个Perl脚本,可以访问MySQL数据库。
我所要做的就是在我的Perl脚本中包含以下代码:
但是要确保这些模块安装正确。我不知道该怎么做,因为我的系统管理员帮我安装了。
您可以像这样访问数据库:
现在假设您创建了一个查询字符串,然后要执行它:
zi8p0yeb5#
例如,选择
database dbname
的table tablename
中的所有name
字段,并将所有名称重定向到/tmp/all_name. txt。注意,
-uuser_name
不是-u user_name
、-puser_pwd not -p user_pwd
bcs8qyzn6#
我建议使用
--parameters
而不是-u
和-p
,因为它们是显式的,另外,默认的--port
是3306
,--host
是localhost
,所以如果您使用不同的--port
或--host
,您还需要指定这些值。我还建议在命令上设置timeout
,以防止在服务器由于任何原因没有响应时挂起:如果运行脚本的机器上没有安装MySQL,则需要安装MySQL客户端,具体过程因平台而异。例如:
Ubuntu:
窗口(通过Chocolatey):
MacOS:This SO link介绍了已经成功的安装方法