运行 mysql_install_db 后无法连接

运行 mysql_install_db 后无法连接

我正在初始化一个新的数据库,但无法连接到它——它说 root 没有被授权。我假设创建一个空白/新的数据库将允许本地主机上的 root 进行连接。我应该如何连接到新初始化的数据库?

> service mysql stop
> mysql_install_db --user=mysql --datadir=/ebs/db/mysql
> service mysql start

> mysqladmin -u root password ********
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

其中的“datadir”确实/etc/mysql/my.cnf指向了正确的位置,而且我没有看到任何其他可能产生影响的选项。

答案1

在我看来,这只是一个简单的拼写错误。错误信息中的“(using password: NO)”语句暴露了漏洞,这意味着您正在运行的命令无法识别您提供的密码。我假设“keufEdBe”是您的 root 密码。

请尝试以下操作:

mysqladmin -u root -p

然后系统会提示您以交互方式输入密码。如果您确实想在命令行中输入密码(不推荐,因为它将以纯文本形式存储在您的 shell 历史文件中),您可以使用以下命令:

mysqladmin -u root --password=*******

根据经验,MySQL 命令假定您使用的帐户没有密码,除非您明确使用 -p 或 --password 选项。后一个选项允许您在命令行上指定密码,但需要 = 符号。

我建议查看内置帮助,它将允许您查看所有可用选项以及使用 -u 与 --user 和 -p 与 --password 之间的语法差异:

mysqladmin --help | less

我建议在此处将命令连接到 less 或 more,因为此命令的帮助屏幕很长。或者,您可以直接运行它并在终端程序中向上滚动以查看输出的第一页,其中包含所有选项及其说明和语法。

答案2

你要做的是:

$ sudo mysql_install_db
$ sudo service mysql start
$ sudo mysql_secure_installation
$ mysql -u root -p

我认为mysql_install_db现在正在安装一个随机密码,并且必须用 重置mysql_secure_installation

另一个选择是运行:

/var/lib/dpkg/info/mysql-server-5.5.postinst configure

请注意,脚本名称可能会根据您安装的版本而改变。

这已在 Ubuntu 上测试过,但应该适用于任何基于 Debian 的发行版。

答案3

请检查您的数据库以查找初始数据库中的用户。

service mysql restart --skip-grant-tables --skip-networking

尝试登录数据库:

mysql -u root -p

然后按 ENTER

mysql> use mysql;
mysql> select * from user;

检查您是否有用户?如果没有,那就是原因。您可以添加 root 用户。您可以在以下位置找到操作说明: http://www.helpfromfriend.com/database/mysql/how-to-recreate-root-account-in-mysql/

相关内容