使用puppet作为一个流浪提供者和puppetlabs-mysql module(2.2.3)我无法在一个数据库上导入一个sql转储,该数据库有根用户,没有密码。
这是我正在使用的傀儡代码:
class { '::mysql::server': }
mysql::db { 'foo':
user => 'root',
password => '',
host => 'localhost',
sql => '/vagrant/dump.sql',
}
这是盒子:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.3 LTS
Release: 12.04
Codename: precise
$ puppet --version
3.3.2
这是错误:
Error: Could not prefetch mysql_grant provider 'mysql': Execution of '/usr/bin/mysql -NBe SELECT CONCAT(User, '@',Host) AS User FROM mysql.user' returned 1: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
最佳答案
不要使用root
用户创建数据库,mysql::db
类型不适用于此。相反,请指定一个新的用户/密码,以后可以始终使用root
访问数据库:
class { '::mysql::server': }
mysql::db { 'foo':
user => 'foo',
password => 'bar',
host => 'localhost',
sql => '/vagrant/dump.sql',
}