Я новичок в amazon ec2. Я запускаю экземпляр t2.micro с ubuntu и в пользовательских данных публикую сценарий для установки mysql сервера и создания схемы и пользователя et c. Я делаю это так, как я экспериментирую с автоматическим масштабированием. Попытка этого сценария работает после создания экземпляра через командную строку. Но через userdata mysql не может подключиться, показывает эту ошибку: Не удается подключиться к локальному MySQL серверу через сокет '/var/run/mysqld/mysqld.sock'
Это из-за безопасности groups еще не применен, поэтому никакой процесс не может подключиться к этому порту.
Пожалуйста, дайте мне знать
Сценарий выглядит так
#cloud-boothook
#!/bin/bash
apt update &
process_id=$!
wait $process_id
# Install DB Server
export DEBIAN_FRONTEND=noninteractive
debconf-set-selections <<< 'mysql-server mysql-server/root_password password password'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password password'
apt-get install mysql-server -y &
process_id=$!
#echo "waiting $(timstamp)" >> /var/log/script-out
wait $process_id
#echo "waiting done $(timstamp)" >> /var/log/script-out
#wait for installation to complete
sleep 120
# Secure DB Server
mysql --user="root" --password="password" -e "DELETE FROM mysql.user WHERE User=''" 1>>/var/log/script-out 2>>/var/log/script-out
#echo "1 done" >> /var/log/script-out
mysql --user="root" --password="password" -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')" 1>>/var/log/script-out 2>>/var/log/script-out
#echo "2 done" >> /var/log/script-out
mysql --user="root" --password="password" -e "DROP DATABASE IF EXISTS test" 1>>/var/log/script-out 2>>/var/log/script-out
#echo "3 done" >> /var/log/script-out
mysql --user="root" --password="password" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" 1>>/var/log/script-out 2>>/var/log/script-out
#echo "4 done" >> /var/log/script-out
mysql --user="root" --password="password" -e "FLUSH PRIVILEGES" 1>>/var/log/script-out 1>>/var/log/script-out 2>>/var/log/script-out
# Configure OWN Cloud Schema and usermysql --user="root" --password="password" -e "CREATE DATABASE owncloud" 1>>/var/log/script-out 2>>/var/log/script-out
#echo "5 done" >> /var/log/script-out
mysql --user="root" --password="password" -e "CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'password'"
mysql --user="root" --password="password" -e "CREATE USER 'owncloud'@'%' IDENTIFIED BY 'password'"
mysql --user="root" --password="password" -e "GRANT ALL PRIVILEGES ON *.* to owncloud@localhost IDENTIFIED BY 'password' WITH GRANT OPTION"
mysql --user="root" --password="password" -e "GRANT ALL PRIVILEGES ON *.* to owncloud@'%' IDENTIFIED BY 'password' WITH GRANT OPTION"
mysql --user="root" --password="password" -e "FLUSH PRIVILEGES"
# Override mysql to user ec2 host private ip
service mysql stop &
process_id=$!
wait $process_id
echo "#Override the mysql server ip address to private ipv4" >> /etc/mysql/mysql.conf.d/mysqld.cnf
echo "bind_address=$(hostname -I)" >> /etc/mysql/mysql.conf.d/mysqld.cnf
service mysql start &
process_id=$!
wait $process_id```