Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Puppet MySQL禁用不带密码的root用户登录_Mysql_Puppet_Puppetlabs Mysql - Fatal编程技术网

Puppet MySQL禁用不带密码的root用户登录

Puppet MySQL禁用不带密码的root用户登录,mysql,puppet,puppetlabs-mysql,Mysql,Puppet,Puppetlabs Mysql,在过去的几个小时里,我已经针对puppetlabs mysql模块的相关问题讨论了好几个线程,以解决我的问题 使用此模块在我的代理节点上安装MySQL将启用根用户登录,无需任何密码。但是我看到已经为root用户设置了凭据,并且可以使用这些凭据登录 我应该在清单中做些什么来禁用MySQL无密码根登录 应用舱单 class { '::mysql::server': root_password => 'rootpassword', override_options => {

在过去的几个小时里,我已经针对puppetlabs mysql模块的相关问题讨论了好几个线程,以解决我的问题

使用此模块在我的代理节点上安装MySQL将启用根用户登录,无需任何密码。但是我看到已经为root用户设置了凭据,并且可以使用这些凭据登录

我应该在清单中做些什么来禁用MySQL无密码根登录

应用舱单

class { '::mysql::server':
  root_password    => 'rootpassword',
  override_options => { 'mysqld' => { 'max_connections' => '1024' } }
}

您所说的无密码登录很可能是将密码保存在一个文件夹中

因此,通过将$mysql::server::create_root_my_cnf设置为false,可以禁用此功能

class { '::mysql::server':
  root_password    => 'rootpassword',
  create_root_my_cnf => false,
  override_options => { 'mysqld' => { 'max_connections' => '1024' } }
}

您所说的无密码登录很可能是将密码保存在一个文件夹中

因此,通过将$mysql::server::create_root_my_cnf设置为false,可以禁用此功能

class { '::mysql::server':
  root_password    => 'rootpassword',
  create_root_my_cnf => false,
  override_options => { 'mysqld' => { 'max_connections' => '1024' } }
}

我也有同样的问题,对我来说,创建一个简单的~root/.my.cnf文件修复了这个问题。将以下内容添加到root.my.cnf文件:

[client]
password="mysql root user password here"

这允许puppet再次连接到mysql。Puppet将用它自己生成的配置覆盖这个文件。

我也遇到了同样的问题,对我来说,创建一个简单的~root/.my.cnf文件修复了这个问题。将以下内容添加到root.my.cnf文件:

[client]
password="mysql root user password here"

这允许puppet再次连接到mysql。Puppet随后将使用其自己生成的配置覆盖此文件。

它可能会设置
'root'@'localhost'
的密码,而不是
'root'@%
谢谢@ptierno。对清单部分有什么想法吗?只需使用mysql_用户资源:(对格式错误表示抱歉)
mysql_用户{'root@%':确保=>present,password_hash=>mysql_password('rootpassword'),}
它可能设置了
'root'@'localhost'
的密码,而不是
'root'@%'
谢谢@ptierno。对清单部分有什么想法吗?只需使用mysql_用户资源:(对格式错误表示抱歉)
mysql_用户{'root@%':确保=>present,password_hash=>mysql_password('rootpassword'),}
Yes,这是正确的。该清单将在我的root(shell)用户下创建.my.cnf。这意味着,它会提示其他shell用户输入mysql root密码。我试过你的例子。很有效,谢谢。但问题是,它会在进一步的用户db创建上抛出一个错误。猜测上面有更多线程,
错误:未能应用目录:执行“/usr/bin/mysql-NBe SELECT CONCAT(User,@',Host)作为mysql中的用户。User”返回1:Error 1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:NO)
My manifest,
class{'::mysql::server':root_password=>'rootpassword',create_root_my_cnf=>false,override_options=>{'mysqld'=>{'max_connections'=>'1024'}}}mysql::db{'mydb':user=>'user',pass=>'pass',host=>'localhost',grant=>['SELECT'],}
此外,我还尝试了您的第一个清单示例,
mysql\u用户{'root@%':确保=>present,password\u hash=>mysql\u password('rootpassword'),}
。它确实在某种程度上起作用,我认为它不创建文件,创建没有任何密码的mysql root用户。这意味着我不能仅使用
mysql
命令登录,而是使用
mysql-u root-p
接受空密码。这样,它在创建任何其他用户、数据库组合时不会抛出错误。是的,这是正确的。这是正确的清单将在我的根目录(shell)下创建.my.cnf用户。这意味着,它会提示其他shell用户输入mysql根密码。我已经尝试过你的示例。它是有效的,谢谢。但问题是,它会在进一步的用户db creations上抛出一个错误。我猜上面还有更多线程,
error:Failed to application catalog:Execution of'/usr/bin/mysql-NBe SELECT CONCAT(user,@',Host)作为mysql的用户。User'返回1:1045(28000)错误:用户'root'@'localhost'(使用密码:否)
My manifest,
class{':mysql::server':root\u password=>'rootpassword',create\u root\u My\u cnf=>false,override\u options=>{'mysqld'=>{'max\u connections'=>'1024}}mysql::db{'mydb':user=>'user',password=>'pass',host=>'localhost',grant=>['SELECT','UPDATE'],}
此外,我还尝试了您的第一个清单示例,
mysql\u用户{'root@%':确保=>存在,密码\u散列=>mysql\u密码('rootpassword'),}
。它确实在某种程度上起作用,我认为它不创建文件,创建没有任何密码的mysql root用户。这意味着我不能仅使用
mysql
命令登录,而是使用
mysql-u root-p
接受空密码。这样,它在创建任何其他用户、数据库组合时不会抛出错误。