我刚买了一台新的MacBook Pro(OS X 10.8.2),并在尝试让MySQL设置就可以了。 到目前为止,我已经能够得到它安装,但我不能让我的根用户访问(或与此有关的任何用户)。 我打算用这对Python
,我的其他电脑上我只使用MySQL(无MAMP),我更愿意保持这种方式。
作为参考,我做了以下内容:
$ alias mysql=/usr/local/mysql/bin/mysql $ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start $ alias mysqladmin=/usr/local/mysql/bin/mysqladmin
当我输入mysql
或mysql -u root -p
它给了我这样的:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
要么
ERROR 1045 (28000): Access denied for user 'jmitch'@'localhost' (using password: NO)
根据我使用的措辞
MySQL是在我的系统运行的偏好。 谢谢您的帮助。
也许更新更新改写root密码包。
要恢复它:
停止的mysqld守护程序。
$ sudo service mysqld stop
转到MySQL的/ bin目录
$ cd /usr/bin
启动一个MySQL守护进程使用此选项:
$ sudo mysqld_safe --skip-grant-tables
打开另一个终端,然后打开一个mysql会话执行此:
$ mysql
mysql> use mysql;
see Note1 below for next line.
mysql> UPDATE user SET password=PASSWORD('YOUR_NEW_PASSWORD_HERE') WHERE user = 'root';
mysql> exit;
现在杀mysqld_safe的过程,并重启mysqld正常:
$ sudo service mysqld start
注1: password
是在表中的列名mysql.user
之前的5.7版本。 此后它成为authentication_string
。 相应地更改您的更新语句。
在Mac OSX 10.9小牛我在support-files目录,而不是mysqld_safe的服务脚本中使用的“mysql.server的”脚本。
$sudo ./mysql.server stop
$sudo ./mysql.server start --skip-grant-tables
$ mysql
mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD('YOUR_NEW_PASSWORD_HERE') WHERE user = 'root';
mysql> exit;
$sudo ./mysql.server stop
$sudo ./mysql.server start
我有一个类似的问题,试图通过对山狮的终端接入MAMP的MySQL的。
该--no-默认标志解决了这个问题对我来说。
/Applications/MAMP/Library/bin/mysql --no-defaults -u root -proot -h localhost
我想补充的是,MySQL的5.7简单地改变authentication_string列不起作用。 这是因为MySQL从未真正使用这些值根认证,它采用了插件。 至于我可以告诉这个插件会验证你也是在主机账户根(所以你必须须藤的mysql -u root用户)。
我能得到这个工作的唯一方法是运行以下命令:
UPDATE mysql.user
SET authentication_string=PASSWORD(''), plugin=''
WHERE mysql.user = 'root';
还应当指出的是,5.7的官方MySQL文档从来没有提到这一点。 继本文档的信让你无处可言。