我已经安装了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默认没有安全性所有
有什么想法吗?
答案 0 :(得分:6)
在2015年6月发布的MemSQL Ops中,您现在可以使用memsql-update-root-password
命令通过一个命令更改root密码。有关更多信息,请参阅以下链接:
我希望这有帮助!
答案 1 :(得分:5)
在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
答案 2 :(得分:1)
尝试
mysql --user=root --password=abc123 --host=127.0.0.1
or
mysql -u root -p abc123 -h 127.0.0.1
您可以使用以下命令更改root密码:
GRANT ALL ON *.* TO "root"@"%" IDENTIFIED BY 'password' WITH GRANT OPTION
答案 3 :(得分:0)
我在mysql中更改root用户的密码时发现了一个奇怪的事情,如下所示。
mysqladmin -u root password 'mypassword'
错误
mysqladmin: unknown variable 'database=mydatabase'
原因是在/etc/my.cnf文件中设置了mydatabase变量。我评论了那条线,然后一切正常。
我虽然在这个帖子中分享了这个。