我把da_admin和密码存储在my.cnf文件中。
现在,我在定制脚本中编写脚本,直接管理中的.sh:
创建数据库
#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正确工作。我对第四点有意见。
当我尝试:
mysql -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2 ) {$wpconfigdbuser} < mydb.sql 然后返回:no database selected
当我尝试:
mysql -uda_admin -p$(cat /usr/local/directadmin/conf/mysql.conf | grep pass | cut -d\= -f2 ) '{$wpconfigdbuser}' < mydb.sql 然后返回:unknow database‘{$wpconfigdbuser}’
@update我将尝试临时解决此问题,以任何方式输入此数据库。
[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我试着补充:
mysql --defaults-extra-file= /usr/local/directadmin/conf/XYZ.cnf $wpconfigdbuser < mydb.sql 跑完后:
mysql: unknow variable 'passwd=DHSDHSDHASD'发布于 2022-01-25 09:17:39
我将da_admin和密码存储在my.cnf文件中。. cat =‘cat 3’>
打错了?
更重要的是,在调用mysql时不需要提供密码参数。首先,将凭据放入文件的全部意义是,它们在mysql命令行中不显示(作为参数),在该命令行中,可以运行ps命令的任何人都可以看到它们!
为此,您应该将这些条目添加到单独的配置文件中,并使用[--defaults-extra-file][1]选项告诉mysql在启动时“读取”该文件:
$ cat XYZ.cnf
[mysql]
user=da_admin
password=P@$w0rd然后
#4
mysql --defaults-extra-file=XYZ.cnf $wpconfigdbuser < mydb.sql 注意:此命令行中没有用户名参数,也绝对没有密码参数。两者都是从指定的文件中读取的。
发布于 2022-01-25 15:40:45
密码可能有各种讨厌的字符;甚至不要考虑编写脚本,一种解析和传递密码的方法。
相反,使用mysql_config_editor设置mysql的登录。而且,它更安全。
https://dba.stackexchange.com/questions/306546
复制相似问题