memsql安装后如何更改root密码?

How to change the root password after memsql install?

我已经安装了 MemSQL 社区版(单主机集群)并且一切正常。我需要允许远程访问数据库,但是 MemSQL 安装了没有密码的用户 root。如果我在防火墙上打开 3306 端口,memSQL 很乐意允许任何人以 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 默认为完全没有安全性。

有什么想法吗?

尝试

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

在 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

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

mysqladmin -u root password 'mypassword'

出现错误

mysqladmin: unknown variable 'database=mydatabase'

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

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

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

希望对您有所帮助!