186
186
char create_line[50];
187
187
MYSQL *mysql_db = NULL;
188
int rc = SLURM_ERROR;
189
#ifdef MYSQL_NOT_THREAD_SAFE
190
slurm_mutex_lock(&mysql_lock);
192
if(!(mysql_db = mysql_init(mysql_db)))
193
fatal("mysql_init failed: %s", mysql_error(mysql_db));
195
if(mysql_real_connect(mysql_db, db_info->host, db_info->user,
196
db_info->pass, NULL, db_info->port, NULL, 0)) {
197
snprintf(create_line, sizeof(create_line),
198
"create database %s", db_name);
199
if(mysql_query(mysql_db, create_line)) {
200
fatal("mysql_real_query failed: %d %s\n%s",
190
while(rc == SLURM_ERROR) {
192
#ifdef MYSQL_NOT_THREAD_SAFE
193
slurm_mutex_lock(&mysql_lock);
195
if(!(mysql_db = mysql_init(mysql_db)))
196
fatal("mysql_init failed: %s", mysql_error(mysql_db));
198
if(mysql_real_connect(mysql_db,
199
db_info->host, db_info->user,
201
db_info->port, NULL, 0)) {
202
snprintf(create_line, sizeof(create_line),
203
"create database %s", db_name);
204
if(mysql_query(mysql_db, create_line)) {
205
fatal("mysql_real_query failed: %d %s\n%s",
206
mysql_errno(mysql_db),
207
mysql_error(mysql_db), create_line);
209
mysql_close_db_connection(&mysql_db);
211
info("Connection failed to host = %s "
212
"user = %s pass = %s port = %u",
213
db_info->host, db_info->user,
214
db_info->pass, db_info->port);
215
#ifdef MYSQL_NOT_THREAD_SAFE
216
slurm_mutex_unlock(&mysql_lock);
218
error("mysql_real_connect failed: %d %s\n",
201
219
mysql_errno(mysql_db),
202
mysql_error(mysql_db), create_line);
220
mysql_error(mysql_db));
204
mysql_close_db_connection(&mysql_db);
206
info("Connection failed to host = %s "
207
"user = %s pass = %s port = %u",
208
db_info->host, db_info->user,
209
db_info->pass, db_info->port);
210
223
#ifdef MYSQL_NOT_THREAD_SAFE
211
224
slurm_mutex_unlock(&mysql_lock);
213
fatal("mysql_real_connect failed: %d %s\n",
214
mysql_errno(mysql_db),
215
mysql_error(mysql_db));
226
if(rc == SLURM_ERROR)
217
#ifdef MYSQL_NOT_THREAD_SAFE
218
slurm_mutex_unlock(&mysql_lock);
220
return SLURM_SUCCESS;
223
232
extern int *destroy_mysql_db_info(mysql_db_info_t *db_info)