52 lines
2.3 KiB
Bash
Executable File
52 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#debug
|
|
set -x
|
|
#verbose
|
|
set -v
|
|
|
|
if [ ! -z "${DB}" ]; then
|
|
# disable existing database server in case of accidential connection
|
|
mysql -u root -e 'drop user travis@localhost; drop user root@localhost; drop user travis; create user super@localhost; grant all on *.* to super@localhost with grant option'
|
|
mysql -u super -e 'drop user root'
|
|
F=mysql-${DB}-linux-glibc2.5-x86_64
|
|
mkdir -p ${HOME}/mysql
|
|
P=${HOME}/mysql/${F}
|
|
if [ ! -d "${P}" ]; then
|
|
wget http://cdn.mysql.com/Downloads/MySQL-${DB%.*}/${F}.tar.gz -O - | tar -zxf - --directory=${HOME}/mysql
|
|
fi
|
|
if [ -f "${P}"/my.cnf ]; then
|
|
O="--defaults-file=${P}/my.cnf"
|
|
fi
|
|
if [ -x "${P}"/scripts/mysql_install_db ]; then
|
|
I=${P}/scripts/mysql_install_db
|
|
O="--defaults-file=${P}/my.cnf"
|
|
else
|
|
I=${P}/bin/mysqld
|
|
IO=" --initialize "
|
|
O="--no-defaults "
|
|
fi
|
|
${I} ${O} ${IO} --basedir=${P} --datadir=${HOME}/db-"${DB}" --log-error=/tmp/mysql.err
|
|
PWLINE=$(grep 'A temporary password is generated for root@localhost:' /tmp/mysql.err)
|
|
PASSWD=${PWLINE##* }
|
|
if [ -x ${P}/bin/mysql_ssl_rsa_setup ]; then
|
|
${P}/bin/mysql_ssl_rsa_setup --datadir=${HOME}/db-"${DB}"
|
|
fi
|
|
# sha256 password auth keys:
|
|
openssl genrsa -out "${P}"/private_key.pem 2048
|
|
openssl rsa -in "${P}"/private_key.pem -pubout -out "${P}"/public_key.pem
|
|
${P}/bin/mysqld_safe ${O} --ledir=/ --mysqld=${P}/bin/mysqld --datadir=${HOME}/db-${DB} --socket=/tmp/mysql.sock --port 3307 --innodb-buffer-pool-size=200M --lc-messages-dir=${P}/share --plugin-dir=${P}/lib/plugin/ --log-error=/tmp/mysql.err &
|
|
while [ ! -S /tmp/mysql.sock ]; do
|
|
sleep 2
|
|
done
|
|
cat /tmp/mysql.err
|
|
if [ ! -z "${PASSWD}" ]; then
|
|
${P}/bin/mysql -S /tmp/mysql.sock -u root -p"${PASSWD}" --connect-expired-password -e "SET PASSWORD = PASSWORD('')"
|
|
fi
|
|
mysql -S /tmp/mysql.sock -u root -e "create user ${USER}@localhost; create user ${USER}@'%'; grant all on *.* to ${USER}@localhost WITH GRANT OPTION;grant all on *.* to ${USER}@'%' WITH GRANT OPTION;"
|
|
sed -e 's/3306/3307/g' -e 's:/var/run/mysqld/mysqld.sock:/tmp/mysql.sock:g' .travis.databases.json > pymysql/tests/databases.json
|
|
echo -e "[client]\nsocket = /tmp/mysql.sock\n" > "${HOME}"/.my.cnf
|
|
else
|
|
cp .travis.databases.json pymysql/tests/databases.json
|
|
fi
|