xml edits
This commit is contained in:
parent
72db4fe9ba
commit
c64c3acc1a
4 changed files with 119 additions and 12 deletions
|
|
@ -84,24 +84,55 @@ rm -f dayzmod1.9.0.tar
|
|||
dbPass=$(</dev/urandom tr -dc _A-Z-a-z-0-9 | head -c8)
|
||||
srvID=${PWD##*/}
|
||||
dbID=server_${srvID}
|
||||
mysqlServerID=2
|
||||
|
||||
# Panel DB connection (where gsp_mysql_servers / gsp_mysql_databases live)
|
||||
panelDB=panel
|
||||
panelPrefix=gsp_
|
||||
panelHost=mysql.iaregamer.com
|
||||
panelPort=3307
|
||||
panelUser=remoteuser
|
||||
panelPass=Pkloyn7yvpht!
|
||||
|
||||
# Resolve target game DB server/profile from panel metadata (default: mysql_server_id=2 -> MySQL 5.7)
|
||||
mysqlProfile=$(mysql -N -B -u${panelUser} -p${panelPass} -h${panelHost} -P${panelPort} -e "SELECT mysql_ip,mysql_port,COALESCE(NULLIF(mysql_admin_user,''),'root'),mysql_root_passwd FROM ${panelDB}.${panelPrefix}mysql_servers WHERE mysql_server_id = ${mysqlServerID} LIMIT 1")
|
||||
|
||||
if [ -z "${mysqlProfile}" ]; then
|
||||
echo "ERROR: Could not resolve mysql server profile id ${mysqlServerID} from ${panelDB}.${panelPrefix}mysql_servers"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
IFS=$'\t' read -r mysqlHost mysqlPort mysqlAdminUser mysqlAdminPass <<EOF
|
||||
${mysqlProfile}
|
||||
EOF
|
||||
|
||||
mysqlPort=${mysqlPort:-3306}
|
||||
|
||||
# sed -i "s/dayz_dayzmod/${dbID}/g" 1.9.0_fresh.sql
|
||||
|
||||
sed -i "s/Host = .*/Host = mysql.iaregamer.com/g" cfg/hiveext.ini
|
||||
sed -i "s/Port = .*/Port = 3307/g" cfg/hiveext.ini
|
||||
sed -i "s/Host = .*/Host = ${mysqlHost}/g" cfg/hiveext.ini
|
||||
sed -i "s/Port = .*/Port = 3306/g" cfg/hiveext.ini
|
||||
sed -i "s/Database = .*/Database = ${dbID}/g" cfg/hiveext.ini
|
||||
sed -i "s/Username = .*/Username = ${dbID}/g" cfg/hiveext.ini
|
||||
sed -i "s/Password = .*/Password = ${dbPass}/g" cfg/hiveext.ini
|
||||
sed -i "s/Port = .*/Port = ${mysqlPort}/g" cfg/hiveext.ini
|
||||
|
||||
mysql -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -e "CREATE DATABASE IF NOT EXISTS ${dbID}"
|
||||
mysql -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -e "GRANT ALL ON ${dbID}.* TO '${dbID}'@'localhost' IDENTIFIED BY '${dbPass}'"
|
||||
mysql -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -e "GRANT ALL ON ${dbID}.* TO 'dayzhivemind'@'%' IDENTIFIED BY 'Pkloyn7yvpht!'"
|
||||
mysql -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -e "GRANT ALL ON ${dbID}.* TO '${dbID}'@'%' IDENTIFIED BY '${dbPass}'"
|
||||
mysql -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -e "FLUSH PRIVILEGES;"
|
||||
mysql --force -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -D ${dbID} < 1.9.0_fresh.sql
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "CREATE DATABASE IF NOT EXISTS \`${dbID}\`"
|
||||
|
||||
mysql -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -e "DELETE FROM panel.gsp_mysql_databases WHERE db_user = '${dbID}'"
|
||||
mysql -uremoteuser -pPkloyn7yvpht! -hmysql.iaregamer.com -P3307 -e "INSERT INTO panel.gsp_mysql_databases(mysql_server_id, home_id, db_user, db_passwd, db_name, enabled) VALUES (2,${srvID},'${dbID}','${dbPass}','${dbID}',1)"
|
||||
# MySQL 5.7/8 compatible user creation + grants
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "CREATE USER IF NOT EXISTS '${dbID}'@'localhost' IDENTIFIED BY '${dbPass}'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "CREATE USER IF NOT EXISTS '${dbID}'@'%' IDENTIFIED BY '${dbPass}'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "CREATE USER IF NOT EXISTS 'dayzhivemind'@'%' IDENTIFIED BY 'Pkloyn7yvpht!'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "GRANT ALL ON \`${dbID}\`.* TO '${dbID}'@'localhost'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "GRANT ALL ON \`${dbID}\`.* TO '${dbID}'@'%'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "GRANT ALL ON \`${dbID}\`.* TO 'dayzhivemind'@'%'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "FLUSH PRIVILEGES;"
|
||||
|
||||
# Import with compatibility flags for routines/events under binary logging
|
||||
mysql --force --init-command="SET SESSION sql_mode=''; SET SESSION log_bin_trust_function_creators=1;" -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -D ${dbID} < 1.9.0_fresh.sql
|
||||
|
||||
mysql -u${panelUser} -p${panelPass} -h${panelHost} -P${panelPort} -e "DELETE FROM ${panelDB}.${panelPrefix}mysql_databases WHERE db_user = '${dbID}'"
|
||||
mysql -u${panelUser} -p${panelPass} -h${panelHost} -P${panelPort} -e "INSERT INTO ${panelDB}.${panelPrefix}mysql_databases(mysql_server_id, home_id, db_user, db_passwd, db_name, enabled, db_mysql_ip, db_mysql_port, db_admin_user, db_admin_passwd) VALUES (${mysqlServerID},${srvID},'${dbID}','${dbPass}','${dbID}',1,'${mysqlHost}','${mysqlPort}','${mysqlAdminUser}','${mysqlAdminPass}')"
|
||||
|
||||
# Create alsoRun.bat -----------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -72,8 +72,60 @@ wget http://files.iaregamer.com/addons/arma2Addons.tar.gz .
|
|||
wget http://files.iaregamer.com/addons/epochmod-1.0.7.1.tar.gz .
|
||||
tar -zxvf arma2Addons.tar.gz
|
||||
tar -zxvf epoch_mod.tar.gz
|
||||
chmod +x setup_db.sh
|
||||
./setup_db.sh
|
||||
|
||||
#Create Database ---------------------------------------
|
||||
|
||||
dbPass=$(</dev/urandom tr -dc _A-Z-a-z-0-9 | head -c8)
|
||||
srvID=${PWD##*/}
|
||||
dbID=server_${srvID}
|
||||
mysqlServerID=2
|
||||
|
||||
# Panel DB connection (where gsp_mysql_servers / gsp_mysql_databases live)
|
||||
panelDB=panel
|
||||
panelPrefix=gsp_
|
||||
panelHost=mysql.iaregamer.com
|
||||
panelPort=3307
|
||||
panelUser=remoteuser
|
||||
panelPass=Pkloyn7yvpht!
|
||||
|
||||
# Resolve target game DB server/profile from panel metadata (default: mysql_server_id=2 -> MySQL 5.7)
|
||||
mysqlProfile=$(mysql -N -B -u${panelUser} -p${panelPass} -h${panelHost} -P${panelPort} -e "SELECT mysql_ip,mysql_port,COALESCE(NULLIF(mysql_admin_user,''),'root'),mysql_root_passwd FROM ${panelDB}.${panelPrefix}mysql_servers WHERE mysql_server_id = ${mysqlServerID} LIMIT 1")
|
||||
|
||||
if [ -z "${mysqlProfile}" ]; then
|
||||
echo "ERROR: Could not resolve mysql server profile id ${mysqlServerID} from ${panelDB}.${panelPrefix}mysql_servers"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
IFS=$'\t' read -r mysqlHost mysqlPort mysqlAdminUser mysqlAdminPass <<EOF
|
||||
${mysqlProfile}
|
||||
EOF
|
||||
|
||||
mysqlPort=${mysqlPort:-3306}
|
||||
|
||||
sed -i "s/dayzhivemind/${dbID}/g" epoch.sql
|
||||
|
||||
sed -i "s/Host = .*/Host = ${mysqlHost}/g" cfg/hiveext.ini
|
||||
sed -i "s/Database = .*/Database = ${dbID}/g" cfg/hiveext.ini
|
||||
sed -i "s/Username = .*/Username = ${dbID}/g" cfg/hiveext.ini
|
||||
sed -i "s/Password = .*/Password = ${dbPass}/g" cfg/hiveext.ini
|
||||
sed -i "s/Port = .*/Port = ${mysqlPort}/g" cfg/hiveext.ini
|
||||
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "CREATE DATABASE IF NOT EXISTS \`${dbID}\`"
|
||||
|
||||
# MySQL 5.7/8 compatible user creation + grants
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "CREATE USER IF NOT EXISTS '${dbID}'@'localhost' IDENTIFIED BY '${dbPass}'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "CREATE USER IF NOT EXISTS '${dbID}'@'%' IDENTIFIED BY '${dbPass}'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "GRANT ALL ON \`${dbID}\`.* TO '${dbID}'@'localhost'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "GRANT ALL ON \`${dbID}\`.* TO '${dbID}'@'%'"
|
||||
mysql -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -e "FLUSH PRIVILEGES;"
|
||||
|
||||
# Import with compatibility flags for routines/events under binary logging
|
||||
mysql --force --init-command="SET SESSION sql_mode=''; SET SESSION log_bin_trust_function_creators=1;" -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -D ${dbID} < epoch.sql
|
||||
mysql --force --init-command="SET SESSION sql_mode=''; SET SESSION log_bin_trust_function_creators=1;" -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -D ${dbID} < add_events.sql
|
||||
mysql --force --init-command="SET SESSION sql_mode=''; SET SESSION log_bin_trust_function_creators=1;" -u${mysqlAdminUser} -p${mysqlAdminPass} -h${mysqlHost} -P${mysqlPort} -D ${dbID} < update1071.sql
|
||||
|
||||
mysql -u${panelUser} -p${panelPass} -h${panelHost} -P${panelPort} -e "DELETE FROM ${panelDB}.${panelPrefix}mysql_databases WHERE db_user = '${dbID}'"
|
||||
mysql -u${panelUser} -p${panelPass} -h${panelHost} -P${panelPort} -e "INSERT INTO ${panelDB}.${panelPrefix}mysql_databases(mysql_server_id, home_id, db_user, db_passwd, db_name, enabled, db_mysql_ip, db_mysql_port, db_admin_user, db_admin_passwd) VALUES (${mysqlServerID},${srvID},'${dbID}','${dbPass}','${dbID}',1,'${mysqlHost}','${mysqlPort}','${mysqlAdminUser}','${mysqlAdminPass}')"
|
||||
|
||||
rm *.sh
|
||||
rm *.gz
|
||||
|
|
|
|||
|
|
@ -52,6 +52,10 @@ $install_queries[0] = array(
|
|||
`db_passwd` varchar(50) NOT NULL,
|
||||
`db_name` varchar(50) NOT NULL,
|
||||
`enabled` int(11) NOT NULL,
|
||||
`db_mysql_ip` varchar(255) NULL,
|
||||
`db_mysql_port` int(11) NULL,
|
||||
`db_admin_user` varchar(64) NULL,
|
||||
`db_admin_passwd` varchar(255) NULL,
|
||||
PRIMARY KEY (`db_id`),
|
||||
UNIQUE KEY (`mysql_server_id`,`db_name`),
|
||||
UNIQUE KEY (`mysql_server_id`,`db_user`)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
-- GSP migration: persist MySQL connection profile snapshot in gsp_mysql_databases
|
||||
-- Run this against the panel database (adjust prefix if needed).
|
||||
|
||||
ALTER TABLE `gsp_mysql_databases`
|
||||
ADD COLUMN `db_mysql_ip` varchar(255) NULL AFTER `enabled`,
|
||||
ADD COLUMN `db_mysql_port` int(11) NULL AFTER `db_mysql_ip`,
|
||||
ADD COLUMN `db_admin_user` varchar(64) NULL AFTER `db_mysql_port`,
|
||||
ADD COLUMN `db_admin_passwd` varchar(255) NULL AFTER `db_admin_user`;
|
||||
|
||||
-- Backfill from gsp_mysql_servers for existing rows.
|
||||
UPDATE `gsp_mysql_databases` d
|
||||
JOIN `gsp_mysql_servers` s ON s.mysql_server_id = d.mysql_server_id
|
||||
SET d.db_mysql_ip = s.mysql_ip,
|
||||
d.db_mysql_port = s.mysql_port,
|
||||
d.db_admin_user = COALESCE(NULLIF(s.mysql_admin_user, ''), 'root'),
|
||||
d.db_admin_passwd = s.mysql_root_passwd
|
||||
WHERE d.db_mysql_ip IS NULL
|
||||
OR d.db_mysql_port IS NULL
|
||||
OR d.db_admin_user IS NULL
|
||||
OR d.db_admin_passwd IS NULL;
|
||||
Loading…
Add table
Add a link
Reference in a new issue