Skip to content

Commit

Permalink
Change db_initialized function to check against database instead of f…
Browse files Browse the repository at this point in the history
…iles
  • Loading branch information
tomkrouper committed Dec 11, 2024
1 parent 753195b commit d00081e
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.

## Unreleased

Fix #715: Update `db_initialized?` to be based on database connection instead of file existence

## 11.1.9 - *2024-12-09*

## 11.1.8 - *2024-11-18*
Expand Down
26 changes: 21 additions & 5 deletions libraries/helpers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -257,11 +257,21 @@ def db_init
end

def db_initialized?
if v80plus
::File.exist? "#{data_dir}/mysql.ibd"
else
::File.exist? "#{data_dir}/mysql/user.frm"
end
cmd = shell_out("test \"#{db_initialized_check_cmd}\" -gt 0", user: 'root')
cmd.exitstatus == 0
end

def db_initialized_check_cmd
# If MySQL is running, mysqladmin ping will return 0 even with invalid credentials
# if MySQL is not running, mysqladmin will return 1 even with valid credentials
cmd = mysqladmin_bin
cmd << " --user=UNKNOWN_MYSQL_USER"
cmd << " ping > /dev/null 2>&1 &&"
cmd << " #{mysql_client_bin} #{defaults_file}"
cmd << " --skip-column-names --batch"
cmd << " --execute=\"SELECT count(*) FROM mysql.db WHERE db LIKE 'test%'\""
return "scl enable #{scl_name} \"#{cmd}\"" if scl_package?
cmd
end

def mysql_install_db_bin
Expand All @@ -279,6 +289,12 @@ def mysql_install_db_cmd
cmd
end

def mysql_client_bin
return "#{prefix_dir}/bin/mysql" if platform_family?('smartos')
return 'mysql' if scl_package?
"#{prefix_dir}/usr/bin/mysql"
end

def mysqladmin_bin
return "#{prefix_dir}/bin/mysqladmin" if platform_family?('smartos')
return 'mysqladmin' if scl_package?
Expand Down

0 comments on commit d00081e

Please sign in to comment.