@@ -93,12 +93,25 @@ _get_config() {
93
93
_start_server () {
94
94
local socket=$1 ; shift
95
95
result=0
96
- " $@ " --daemonize --skip-networking --socket= " ${socket} " || result= $?
96
+ %%SERVERSTARTUP%%
97
97
if [ ! " $result " = " 0" ]; then
98
98
_error " Unable to start server. Status code $result ."
99
99
fi
100
100
}
101
101
102
+ _wait_for_server () {
103
+ local mysql=( " $@ " )
104
+ for i in {30..0}; do
105
+ if echo ' SELECT 1' | " ${mysql[@]} " & > /dev/null; then
106
+ break
107
+ fi
108
+ sleep 1
109
+ done
110
+ if [ " $i " = 0 ]; then
111
+ _error " Unable to start server."
112
+ fi
113
+ }
114
+
102
115
_stop_server () {
103
116
local passfile=$1
104
117
local socket=$2
@@ -132,7 +145,7 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then
132
145
mkdir -p " $DATADIR "
133
146
134
147
_note " Initializing database"
135
- " $@ " --initialize-insecure
148
+ %%DATABASEINIT%%
136
149
_note " Database initialized"
137
150
138
151
if command -v mysql_ssl_rsa_setup > /dev/null && [ ! -e " $DATADIR /server-key.pem" ]; then
@@ -143,11 +156,15 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then
143
156
fi
144
157
145
158
SOCKET=" $( _get_config ' socket' " $@ " ) "
159
+ mysql=( mysql --no-defaults --protocol=socket -uroot -hlocalhost --socket=" ${SOCKET} " )
146
160
_note " Starting server"
147
161
_start_server " ${SOCKET} " " $@ "
148
- _note " Server started with."
162
+ if [ " ${MYSQL_MAJOR} " = " 5.5" ] || [ " ${MYSQL_MAJOR} " = " 5.6" ]; then
163
+ _note " Waiting for server startup"
164
+ _wait_for_server " ${mysql[@]} "
165
+ fi
166
+ _note " Server started."
149
167
150
- mysql=( mysql --protocol=socket -uroot -hlocalhost --socket=" ${SOCKET} " )
151
168
152
169
if [ -z " $MYSQL_INITDB_SKIP_TZINFO " ]; then
153
170
# sed is for https://bugs.mysql.com/bug.php?id=20545
@@ -176,7 +193,7 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then
176
193
-- or products like mysql-fabric won't work
177
194
SET @@SESSION.SQL_LOG_BIN=0;
178
195
179
- ALTER USER 'root'@'localhost' IDENTIFIED BY ' ${MYSQL_ROOT_PASSWORD} ' ;
196
+ %%PASSWORDSET%%
180
197
GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION ;
181
198
${rootCreate}
182
199
DROP DATABASE IF EXISTS test ;
219
236
done
220
237
221
238
if [ ! -z " $MYSQL_ONETIME_PASSWORD " ]; then
222
- " ${mysql[@]} " << -EOSQL
223
- ALTER USER 'root'@'%' PASSWORD EXPIRE;
224
- EOSQL
239
+ if [ " ${MYSQL_MAJOR} " = " 5.5" ]; then
240
+ _warn " MySQL 5.5 does not support PASSWORD EXPIRE (required for MYSQL_ONETIME_PASSWORD)"
241
+ else
242
+ " ${mysql[@]} " << -EOSQL
243
+ ALTER USER 'root'@'%' PASSWORD EXPIRE;
244
+ EOSQL
245
+ fi
225
246
fi
226
247
_note " Stopping server"
227
248
_stop_server " ${PASSFILE} " " ${SOCKET} "
0 commit comments