Skip to content

Commit 52d44be

Browse files
committed
Merge pull request #536 from apenney/mysql_install
Handle changing the datadir properly.
2 parents c397688 + c2d02ff commit 52d44be

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

manifests/server/install.pp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,24 @@
66
name => $mysql::server::package_name,
77
}
88

9+
# Build the initial databases.
10+
if $mysql::server::override_options['mysqld'] and $mysql::server::override_options['mysqld']['datadir'] {
11+
$mysqluser = $mysql::server::options['mysqld']['user']
12+
$datadir = $mysql::server::override_options['mysqld']['datadir']
13+
14+
exec { 'mysql_install_db':
15+
command => "mysql_install_db --datadir=${datadir} --user=${mysqluser}",
16+
creates => "${datadir}/mysql",
17+
logoutput => on_failure,
18+
path => '/bin:/sbin:/usr/bin:/usr/sbin',
19+
require => Package['mysql-server'],
20+
}
21+
22+
if $mysql::server::restart {
23+
Exec['mysql_install_db'] {
24+
notify => Class['mysql::service'],
25+
}
26+
}
27+
}
28+
929
}

spec/acceptance/mysql_server_spec.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,4 +285,20 @@ class { 'mysql::server':
285285
end
286286
end
287287

288+
describe 'creates the appropriate databases when datadir is set' do
289+
tmpdir = default.tmpdir('mysql')
290+
it 'sets up mysql' do
291+
pp = <<-EOS
292+
class { 'mysql::server':
293+
override_options => { 'mysqld' => { 'datadir' => '#{tmpdir}/mysql' }},
294+
}
295+
EOS
296+
shell("mkdir -p #{tmpdir}; chown -R mysql:mysql #{tmpdir}")
297+
apply_manifest(pp, :catch_failures => true)
298+
end
299+
300+
describe file("#{tmpdir}/mysql/mysql") do
301+
it { should be_directory }
302+
end
303+
end
288304
end

spec/acceptance/nodesets/default.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ HOSTS:
22
centos-64-x64:
33
roles:
44
- master
5+
- default
56
platform: el-6-x86_64
67
box : centos-64-x64-vbox4210-nocm
78
box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box

0 commit comments

Comments
 (0)