如果我做" mysqld --initialize-insecure",初始化后登录就可以了,但如果省略"不安全",那将是安全初始化,之后我需要一个密码才能登录,但我还没有设置任何密码。
菜单data-directory-initialization-mysqld表示"无论平台如何,都使用--initialize用于“默认安全”安装(即包括生成随机初始root密码)。在这种情况下,密码被标记为已过期,您需要选择一个新密码。"
我认为这就是问题,mysql初始化超级管理帐户" root"使用"随机密码"并且"标记为已过期",我需要"选择一个新的",但是如何?
我应该尝试" mysqld --initialize -p' mypassword' "或者我应该在初始化后输入一些其他的prompt子句吗?
这个问题真的困扰我(两次,经过长时间的解决方案搜索,我放弃了最后一次),确实我不需要安全模式来提供数据只是为了在本地测试我的应用程序,但我还是喜欢了解如何初始化安全root帐户以进一步使用。
我不确定在阅读manu之后我遗失了什么,并再次谷歌4小时。
谢谢。
答案 0 :(得分:4)
您只需使用root
用户和使用--initialize
选项时生成的指定密码登录。来自https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html:
使用--initialize但不是--initialize-insecure,服务器生成随机密码,将其标记为已过期,并写入显示密码的消息:
[Warning] A temporary password is generated for root@localhost: iTag*AfrH5ej
登录后,您可以使用ALTER USER
更改密码。仍然来自https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html:
启动服务器。有关说明,请参见第2.10.2节“启动服务器”。
连接到服务器:
[...]
- 识别 醇>
连接后,分配新的root密码:
的MySQL> ALTER USER' root' @' localhost'通过' new_password';