-1

我在 Ubuntu 10.10 下新安装的 mySQL 服务器副本遇到了一些严重问题。我当时安装了 apt 并提供了密码。安装很顺利,但是服务器的行为很奇怪。

首先,为了测试数据库,我创建了一个 php 文件

mysql_connect("localhost", "root", "myPassword") or die(mysql_error());

其中 myPassword 是我在安装过程中询问时输入的密码。这给了我一个拒绝访问错误。我试图进入 mySQL 服务器以寻求我读到的解决方案。正常的语法不起作用,除了“访问被拒绝”之外,我不得不做

mysql -u root password myPassword

但是,它不是 mysql shell,而是输出参数和变量的列表。所以在这一点上,我很难过;几年来我没有通过命令行使用过 mySQL,但是这种行为都不熟悉,而且我找不到与服务器交互的方法。

任何帮助,将不胜感激。

4

2 回答 2

2

用于提供密码的 mysql 命令行参数是-p,而不是password。您还应该省略空格。例如:

mysql -uroot -pmyPassword

如果您不想冒密码被泄露的风险...

mysql -uroot -p

...将提示您输入密码并在您键入时隐藏字符。

于 2012-04-26T01:31:23.480 回答
0

如果您安装了 apparmor(这是默认设置),那么当您超出 ubuntu 设置的狭义默认设置时,它可能会导致问题。

mysql允许接触的东西在这里定义:/etc/apparmor.d/abstractions/mysql

如果您将套接字文件放在其他地方,您将收到拒绝访问的消息。

要更仔细地查看事物,请像这样运行您的 mysql 客户端:

strace -e file mysql <blah blah>

这将打印出 stderr 上的任何系统级文件操作。然后,您可以准确查看导致权限错误的操作。如果您没有看到问题,您可以-e network改用,查看网络操作。

于 2012-04-26T01:40:45.183 回答