无法通过 EC2 上的脚本自动连接到 RDS?
Сan't automatically connect to RDS via the script on EC2?
我使用 terraform 来创建基础设施。在亚马逊。我在 ec2 用户数据上使用脚本,连接到 rds.But 这个脚本不起作用。
#! /bin/bash
yum update -y
yum install -y httpd
service httpd start
usermod -a -G apache centos
chown -R centos:apache /var/www
yum install -y mysql php php-mysql
systemctl enable httpd.service
cd /var/www/html/
echo "[mysql]" > ~/.my.cnf
echo "user = myuser" >> ~/.my.cnf
echo "password = passworddata" >> ~/.my.cnf
chmod 600 ~/.my.cnf
cd database/
mysql -h db_server_address < script.sql
systemctl restart httpd.service
/var/log/cloud-init-output.log
错误 1045 (28000):拒绝用户访问 'root'@'10.0.1.91'(使用密码:NO)
应用程序无法连接到数据库,因为没有创建架构。
但是,当我在实例中手动执行它时,一切正常 fine.I 明白脚本并不完美,但问题是什么,为什么脚本不从 ~/.my.cnf?
可能没有加载env变量从/root加载数据,使用:
mysql --defaults-file=~/.my.cnf -h db_server_address < script.sql
我使用 terraform 来创建基础设施。在亚马逊。我在 ec2 用户数据上使用脚本,连接到 rds.But 这个脚本不起作用。
#! /bin/bash
yum update -y
yum install -y httpd
service httpd start
usermod -a -G apache centos
chown -R centos:apache /var/www
yum install -y mysql php php-mysql
systemctl enable httpd.service
cd /var/www/html/
echo "[mysql]" > ~/.my.cnf
echo "user = myuser" >> ~/.my.cnf
echo "password = passworddata" >> ~/.my.cnf
chmod 600 ~/.my.cnf
cd database/
mysql -h db_server_address < script.sql
systemctl restart httpd.service
/var/log/cloud-init-output.log 错误 1045 (28000):拒绝用户访问 'root'@'10.0.1.91'(使用密码:NO)
应用程序无法连接到数据库,因为没有创建架构。 但是,当我在实例中手动执行它时,一切正常 fine.I 明白脚本并不完美,但问题是什么,为什么脚本不从 ~/.my.cnf?
可能没有加载env变量从/root加载数据,使用:
mysql --defaults-file=~/.my.cnf -h db_server_address < script.sql