Установка MYSQL в EC2 через пользовательские данные - PullRequest
0 голосов
/ 09 января 2020

Я новичок в 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```


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...