首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash脚本、板条箱和导入示例数据库

问Bash脚本、板条箱和导入示例数据库
EN

Database Administration用户
提问于 2022-01-25 07:44:46
回答 2查看 44关注 0票数 0

我把da_admin和密码存储在my.cnf文件中。

现在,我在定制脚本中编写脚本,直接管理中的.sh:

创建数据库

代码语言:javascript
复制
#1
/usr/bin/mysqladmin -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2 ) create ${wpconfigdbuser};
#2
echo "CREATE USER ${wpconfigdbuser} IDENTIFIED BY '${dbpass}';" | mysql -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2 );
#3
echo "GRANT ALL PRIVILEGES ON ${wpconfigdbuser}.* TO ${wpconfigdbuser} IDENTIFIED BY '${dbpass}';" | mysql -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2);
#4
mysql -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2 ) $wpconfigdbuser < mydb.sql 

#1 #2 #3正确工作。我对第四点有意见。

当我尝试:

代码语言:javascript
复制
mysql -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2 ) {$wpconfigdbuser} < mydb.sql 

然后返回:no database selected

当我尝试:

代码语言:javascript
复制
mysql -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2 ) '{$wpconfigdbuser}' < mydb.sql 

然后返回:unknow database‘{$wpconfigdbuser}’

@update我将尝试临时解决此问题,以任何方式输入此数据库。

代码语言:javascript
复制
[root@s1 ~]# mv XYZ.cnf /usr/local/directadmin/conf
[root@s1 ~]# cat /usr/local/directadmin/conf/XYZ.cnf
[mysql]
user=da_admin
passwd=asdasdasd
    [root@s1 ~]# nano /usr/local/directadmin/scripts/custom/domain_create_post.sh

我试着补充:

代码语言:javascript
复制
mysql --defaults-extra-file= /usr/local/directadmin/conf/XYZ.cnf $wpconfigdbuser  <  mydb.sql  

跑完后:

代码语言:javascript
复制
 mysql: unknow variable 'passwd=DHSDHSDHASD'
EN

回答 2

Database Administration用户

回答已采纳

发布于 2022-01-25 09:17:39

我将da_admin和密码存储在my.cnf文件中。. cat =‘cat 3’>

打错了?

更重要的是,在调用mysql时不需要提供密码参数。首先,将凭据放入文件的全部意义是,它们在mysql命令行中不显示(作为参数),在该命令行中,可以运行ps命令的任何人都可以看到它们!

为此,您应该将这些条目添加到单独的配置文件中,并使用[--defaults-extra-file][1]选项告诉mysql在启动时“读取”该文件:

代码语言:javascript
复制
$ cat XYZ.cnf
[mysql]
user=da_admin
password=P@$w0rd

然后

代码语言:javascript
复制
#4
mysql --defaults-extra-file=XYZ.cnf  $wpconfigdbuser  <  mydb.sql 

注意:此命令行中没有用户名参数,也绝对没有密码参数。两者都是从指定的文件中读取的。

票数 0
EN

Database Administration用户

发布于 2022-01-25 15:40:45

密码可能有各种讨厌的字符;甚至不要考虑编写脚本,一种解析和传递密码的方法。

相反,使用mysql_config_editor设置mysql的登录。而且,它更安全。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/306546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档