1 |
### RPM external mysql-deployment 0.0.1
|
2 |
|
3 |
Source: /tmp/mysql-deployment.sh
|
4 |
Requires: mysql
|
5 |
# Let's fake the fact that we have perl (DBI) so that rpm does not complain.
|
6 |
Provides: mysql-deployment.sh
|
7 |
|
8 |
%prep
|
9 |
cat << \EOF > /tmp/mysql-deployment.sh
|
10 |
#!/bin/bash
|
11 |
set -e
|
12 |
|
13 |
if [ -z ${VO_CMS_SW_DIR} ]; then
|
14 |
echo "+++ Your CMS environment is not setup, missing VO_CMS_SW_DIR environment"
|
15 |
exit 1
|
16 |
fi
|
17 |
if [ -z ${MYSQL_ROOT} ]; then
|
18 |
echo "+++ Your CMS MYSQL environment is not setup, MYSQL_ROOT environment"
|
19 |
exit 1
|
20 |
fi
|
21 |
MYSQL_PATH=$MYSQL_ROOT/mysqldb
|
22 |
if [ ! -d ${MYSQL_PATH} ]; then
|
23 |
echo "+++ Making ${MYSQL_PATH} directory ..."
|
24 |
mkdir -p ${MYSQL_PATH}
|
25 |
fi
|
26 |
MYSQL_PORT=3316
|
27 |
MYSQL_SOCK=$MYSQL_PATH/mysql.sock
|
28 |
MYSQL_PID=$MYSQL_PATH/mysqld.pid
|
29 |
MYSQL_ERR=$MYSQL_PATH/error.log
|
30 |
|
31 |
pid=`ps -u ${LOGNAME} | grep mysqld_safe | grep -v grep | tail -1 | awk '{print $1}'`
|
32 |
if [ ! -z ${pid} ]; then
|
33 |
echo "CMS MySQL server is already running ..."
|
34 |
else
|
35 |
echo "+++ Installing CMS MySQL accounts and DBs ..."
|
36 |
$MYSQL_ROOT/bin/mysql_install_db --datadir=$MYSQL_PATH --port=$MYSQL_PORT --socket=$MYSQL_SOCK
|
37 |
|
38 |
echo "+++ Start up CMS MySQL daemon on port ${MYSQL_PORT} ..."
|
39 |
$MYSQL_ROOT/bin/mysqld_safe --datadir=$MYSQL_PATH --port=$MYSQL_PORT \
|
40 |
--socket=$MYSQL_SOCK --log-error=$MYSQL_ERR --pid-file=$MYSQL_PID &
|
41 |
#--socket=$MYSQL_SOCK --log-error=$MYSQL_ERR --skip-networking --pid-file=$MYSQL_PID &
|
42 |
sleep 10
|
43 |
|
44 |
# create CMS MySQL root account
|
45 |
echo "+++ Creating MySQL default root account ..."
|
46 |
echo "+++ Account for localhost"
|
47 |
$MYSQL_ROOT/bin/mysqladmin --port=$MYSQL_PORT --socket=$MYSQL_SOCK -u root password "cms"
|
48 |
echo "+++ Account for `hostname`"
|
49 |
$MYSQL_ROOT/bin/mysqladmin --port=$MYSQL_PORT --socket=$MYSQL_SOCK -u root -h `hostname` password "cms"
|
50 |
|
51 |
# create CMS MySQL DBS account
|
52 |
echo "+++ Creating MySQL default dbs account ..."
|
53 |
$MYSQL_ROOT/bin/mysql --socket=$MYSQL_SOCK -uroot -pcms mysql -e "CREATE USER dbs@localhost IDENTIFIED BY 'cmsdbs'"
|
54 |
$MYSQL_ROOT/bin/mysql --socket=$MYSQL_SOCK -uroot -pcms mysql -e "UPDATE user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y' where User='dbs';"
|
55 |
fi
|
56 |
|
57 |
EOF
|
58 |
chmod a+x /tmp/mysql-deployment.sh
|
59 |
mkdir -p %{i}/bin
|
60 |
|
61 |
%build
|
62 |
|
63 |
%install
|
64 |
cp /tmp/mysql-deployment.sh %{i}/bin
|
65 |
cp /tmp/mysql-deployment.sh $RPM_SOURCE_DIR
|
66 |
|
67 |
%post
|
68 |
%{relocateConfig}/bin/mysql-deployment.sh
|
69 |
|