我在Ubuntu 10.10下新安装的mySQL服务器副本遇到了一些麻烦。我用apt安装并在那时提供了密码。安装很顺利,但服务器表现得非常奇怪。
首先,为了测试数据库,我用
创建了一个php文件mysql_connect("localhost", "root", "myPassword") or die(mysql_error());
其中myPassword是我在安装过程中询问时输入的。这给了我一个访问被拒绝的错误。我试图shell进入mySQL服务器以寻求我读到的解决方案。正常的语法不起作用,除了“拒绝访问”之外什么都没有,我不得不做
mysql -u root password myPassword
然而,它只是吐出一个参数和变量列表而不是mysql shell。所以在这一点上,我很难过;我在几年内没有通过命令行使用mySQL,但这种行为都不熟悉,我找不到与服务器交互的方法。
任何帮助都将不胜感激。
答案 0 :(得分:2)
提供密码的mysql命令行参数是-p
,而不是password
。你也应该留出空间。例如:
mysql -uroot -pmyPassword
如果您不想冒险泄露密码......
mysql -uroot -p
...会提示您输入密码并在输入时隐藏字符。
答案 1 :(得分:0)
如果您安装了apparmor(这是默认设置),当您超出ubuntu设置的狭义定义的默认值时,它可能会导致问题。
允许mysql接触的内容在此处定义:/etc/apparmor.d/abstractions/mysql
如果您已将套接字文件放在其他位置,则会收到拒绝访问的消息。
要更仔细地查看事情,请运行您的mysql客户端,如下所示:
strace -e file mysql <blah blah>
这将在stderr上打印出任何系统级文件操作。然后,您可以确切地查看导致权限错误的操作。如果您没有看到问题,可以使用-e network
来查看网络操作。