想要更改mysql root的密码,但收到错误

时间:2011-03-05 09:28:58

标签: mysql macos

我使用macports安装Mysql5。但是当我尝试为root帐户创建密码时,我收到了这个错误:

sh-3.2# /opt/local/lib/mysql5/bin/mysqladmin  -u root password 123456
/opt/local/lib/mysql5/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (61)'
Check that mysqld is running and that the socket: '/opt/local/var/run/mysql5/mysqld.sock' exists!

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

检查mysql守护程序是否正在运行

ps aux | grep mysqld

如果是,你应该看到类似的东西:

mysql    28290  1.1  2.7 340496 56812 ?        Sl   Jul31 348:27 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock

如果幸运的话,您会看到--socket参数指定套接字文件的确切位置。如果它与mysql客户端正在寻找的路径不同(/opt/local/var/run/mysql5/mysqld.sock),那么您可以手动指定它作为命令行参数之一。

另外,您应该检查/etc/my.cnf是否存在并且设置正确,这是一个示例my.cnf:

[mysqld]
user=mysql_owner
datadir=/path/to/datadir/mysql
socket=/path/to/datadir/mysql/mysql.sock
skip-innodb

[mysql.server]
user=mysql_owner
basedir=/path/to/datadir

[client]
user=mysql_owner
socket=/path/to/datadir/mysql/mysql.sock

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

希望这会有所帮助,如果您仍有问题,请解决问题

答案 1 :(得分:0)

检查您的发行版的默认套接字是什么。您还可以使用以下方法在TCP4上尝试连接:

/opt/local/lib/mysql5/bin/mysqladmin -h 127.0.0.1 -u root -p secret

或者,如果您找到了套接字的路径(在mysql的配置文件中),您可以使用以下内容:

/opt/local/lib/mysql5/bin/mysqladmin --socket=/tmp/mysql.sock -u root -p secret