繁体   English   中英

连接到mysql db并执行查询并将结果导出到变量-bash脚本

[英]connect to mysql db and execute query and export result to variable - bash script

我想连接到mysql databse并执行一些查询并将其结果导出到varibale,而所有这些都需要完全由bash脚本完成

我有一个代码段,但不起作用。

#!/bin/bash

BASEDIR=$(dirname $0)
cd $BASEDIR

mysqlUser=n_userdb
mysqlPass=d2FVR0NA3
mysqlDb=n_datadb

result=$(mysql -u $mysqlUser -p$mysqlPass -D $mysqlDb -e "select * from confs limit 1")

echo "${result}" >> a.txt

有什么问题 ?

通过使用正确的密码在聊天中解决该问题。

如果您还想只获取数据-NB mysql-NB (或--skip-column-names--batch )一起使用。

另外,脚本需要用引号括起来的变量扩展名,否则用户名/密码会出现问题,其中包含外壳程序特有的字符。 此外,大写变量名通常为系统变量保留。

#!/bin/sh

basedir=$(dirname "$0")

mysqlUser='n_userdb'
mysqlPass='d2FVR0NA3'
mysqlDb='n_datadb'

cd "$basedir" &&
mysql -NB -u "$mysqlUser" -p"$mysqlPass" -D "$mysqlDb" \
      -e 'select * from confs limit 1' >a.txt 2>a-err.txt

不过,理想情况下,您将使用my.cnf文件配置用户名和密码。

见例如

做这个:

result=$(mysql -u $mysqlUser -p$mysqlPass -D $mysqlDb -e "select * from confs limit 1" | grep '^\|' | tail -1)

Bash的$()语句在处理包含多行的变量时遇到麻烦,因此上述hack只抓住了有趣的部分:数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM