Skip to content

Commit 0c9a509

Browse files
committed
Change db_initialized function to check against database instead of files
1 parent 753195b commit 0c9a509

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
44

55
## Unreleased
66

7+
Fix #715: Update `db_initialized?` to be based on database connection instead of file existence
8+
79
## 11.1.9 - *2024-12-09*
810

911
## 11.1.8 - *2024-11-18*

libraries/helpers.rb

+21-5
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,21 @@ def db_init
257257
end
258258

259259
def db_initialized?
260-
if v80plus
261-
::File.exist? "#{data_dir}/mysql.ibd"
262-
else
263-
::File.exist? "#{data_dir}/mysql/user.frm"
264-
end
260+
cmd = shell_out("test \"#{db_initialized_check_cmd}\" -gt 0", user: 'root')
261+
cmd.exitstatus == 0
262+
end
263+
264+
def db_initialized_check_cmd
265+
# If MySQL is running, mysqladmin ping will return 0 even with invalid credentials
266+
# if MySQL is not running, mysqladmin will return 1 even with valid credentials
267+
cmd = mysqladmin_bin
268+
cmd << ' --user=UNKNOWN_MYSQL_USER'
269+
cmd << ' ping > /dev/null 2>&1 &&'
270+
cmd << " #{mysql_client_bin} #{defaults_file}"
271+
cmd << ' --skip-column-names --batch'
272+
cmd << " --execute=\"SELECT count(*) FROM mysql.db WHERE db LIKE 'test%'\""
273+
return "scl enable #{scl_name} \"#{cmd}\"" if scl_package?
274+
cmd
265275
end
266276

267277
def mysql_install_db_bin
@@ -279,6 +289,12 @@ def mysql_install_db_cmd
279289
cmd
280290
end
281291

292+
def mysql_client_bin
293+
return "#{prefix_dir}/bin/mysql" if platform_family?('smartos')
294+
return 'mysql' if scl_package?
295+
"#{prefix_dir}/usr/bin/mysql"
296+
end
297+
282298
def mysqladmin_bin
283299
return "#{prefix_dir}/bin/mysqladmin" if platform_family?('smartos')
284300
return 'mysqladmin' if scl_package?

0 commit comments

Comments
 (0)