【问题标题】:How to change the root password after memsql install?memsql安装后如何更改root密码?
【发布时间】:2015-05-24 05:03:32
【问题描述】:

我已经安装了 MemSQL 社区版(单主机集群),一切运行良好。我需要允许远程访问数据库,但 MemSQL 安装用户 root 时没有密码。如果我在防火墙上打开 3306 端口,memSQL 很高兴允许任何人以 root 身份登录而无需密码。

我尝试通过以下方式更改root用户密码

mysqladmin -u root -h 127.0.0.1  password abc123

但我得到了错误

mysqladmin: unable to change password; error: 'Unknown system variable 'password''

我也尝试在以 root 身份连接后进行更改。所有这些都失败了:

mysql> SET PASSWORD = 'abc123';
ERROR 1193 (HY000): Unknown system variable 'PASSWORD'

mysql> SET PASSWORD = PASSWORD('abc123');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('abc123')' at line 1

mysql> SET PASSWORD = OLD_PASSWORD('abc123');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('abc123')' at line 1

所以我被困住了。 MemSQL 的文档在这个问题上也非常轻量级,而且他们似乎没有社区页面,我可以在其中询问这个问题。我认为这是我正在尝试做的非常简单的事情,不知道为什么这么难,而且我不知道为什么 MemSQL 根本没有默认安全性。

有什么想法吗?

【问题讨论】:

    标签: singlestore


    【解决方案1】:

    在 2015 年 6 月发布的 MemSQL Ops 中,您现在可以使用 memsql-update-root-password 命令通过一个命令更改 root 密码。有关详细信息,请参阅以下链接:

    我希望这会有所帮助!

    【讨论】:

    【解决方案2】:

    在 MemSQL 中要更改用户的密码,您应该使用 GRANT 命令:

    grant all on *.* to 'root'@'localhost' identified by 'password' with grant option;
    grant all on *.* to 'root'@'%' identified by 'password' with grant option;
    

    请参阅 GRANT 命令的手册以及配置集群安全性的非常详细的手册:

    http://docs.memsql.com/latest/ref/GRANT/

    http://docs.memsql.com/latest/admin/security/#configuring-password-security

    【讨论】:

    • 这个答案似乎有效,但并不完全正确。它只会更改集群主聚合器上的密码,这似乎将主聚合器与集群的其余部分隔离开来。根据文档 (docs.memsql.com/latest/admin/security/…),您应该使用他们的 CLI 通过 `memsql-ops memsql-list -q | 更改整个集群的密码。 xargs -n 1 memsql-ops memsql-update-root-password --no-confirmation -p 'newpass'`
    【解决方案3】:

    试试

    mysql --user=root --password=abc123 --host=127.0.0.1
    or
    mysql -u root -p abc123 -h 127.0.0.1
    

    参考:Mysql man page.

    您可以通过以下方式更改 root 密码:

    GRANT ALL ON *.* TO "root"@"%" IDENTIFIED BY 'password' WITH GRANT OPTION
    

    【讨论】:

      【解决方案4】:

      我在mysql中更改root用户密码时观察到一件奇怪的事情。

      mysqladmin -u root password 'mypassword'
      

      得到错误

      mysqladmin: unknown variable 'database=mydatabase'
      

      这是因为 mydatabase 变量已在 /etc/my.cnf 文件中设置。我注释掉了那行,然后一切正常。

      我想在这个帖子中分享这个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-06
        • 2015-12-14
        • 2017-08-18
        • 2010-09-17
        • 1970-01-01
        相关资源
        最近更新 更多