2

有一个正在运行的 github 线程(它似乎已关闭并且已经完成了一堆提交/合并)。

尽管 VirtualBox 和 Vagrant 还不到 2 周:*编辑:我仍然看到与 /root/.my.cnf 相关的错误。

我将 mysql 和 stdlib 模块更新为 master。

# MySQL Server
class { 'mysql::server':
    config_hash => {
       'root_password' => 'foobah'
    }
 }

#class { 'mysql::server': } have tried it like this to try not having a root password. But it still attempted to use the /root/.my.cnf file. 

mysql::db { 'data_base':
    user     => 'user',
    password => 'pass',
    host     => 'localhost',
    grant    => ['all'],
    charset => 'utf8',
}

每当它以root身份执行创建数据库等命令时,我都会得到:

err: /Stage[main]//Mysql::Db[data_base]/Database[data_base]/ensure: change from absent to present failed: Execution of '/usr/bin/mysql --defaults-file=/root/.my.cnf -NBe create database `data_base` character set utf8' returned 1: Could not open required defaults file: /root/.my.cnf
Fatal error in defaults handling. Program aborted
4

2 回答 2

2

是的,这是一个订购问题(在开发我自己的(工作的)Ubuntu mysql 清单后,我更清楚要寻找什么)。

需要 mysql::db 部分:

require => File['/root/.my.cnf'],

修订并添加:

# MySQL Server
class { 'mysql::server':
    config_hash => {
       'root_password' => 'foobah'
    }
}

mysql::db { 'data_base':
    user     => 'user',
    password => 'pass',
    host     => 'localhost',
    grant    => ['all'],
    charset => 'utf8',
    require => File['/root/.my.cnf'],
}
于 2013-01-04T22:01:13.477 回答
0

我很好奇,基于提到 /root/.my.cnf 的错误——这个文件的权限是什么?你能粘贴这个命令的输出吗?

stat /root/.my.cnf && lsattr /root/.my.cnf

这听起来像是权限可能是问题,但我需要先查看权限才能知道,因为这现在无法重现。此外,目前并不重要,但可能随着我们进一步深入研究;您正在运行哪个版本的 Puppet?

于 2013-01-04T02:34:21.373 回答