我正在尝试在mac os 10.6上使用Homebrew by brew安装MySQL 5.1.52。

一切都很顺利,我也成功地使用mysql_install_db。 然而,当我试图连接到服务器使用:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'

我得到:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: connect to server at 'localhost' 
failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'

我尝试访问mysqladmin或mysql使用-u root - root以及, 但是有没有密码都不行。

这是全新机器上的全新安装,据我所知,新安装必须在没有根密码的情况下访问。我还试过:

/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation

但我也得到了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

当前回答

如果mysql已经安装

完全停止mysql。

mysql。服务器停止<——可能需要根据您的版本进行编辑 Ps -ef | grep mysql <——列出名称中包含mysql的进程 kill [PID] <——按PID终止进程

删除文件。上面的说明很好。我将添加:

Sudo find /。mysql - name“* *” 根据你的判断,rm -rf这些文件。请注意,许多程序都有mysql的驱动程序,您不想删除它们。例如,不要删除PHP安装目录中的内容。删除它自己的mysql目录中的东西。

安装

希望你有自制的。如果没有,请下载。

我喜欢以root用户运行brew,但我认为您不必这样做。编辑2018:你不能再以root用户运行brew了

Sudo brew更新 Sudo brew install cmake <——mysql的依赖关系,有用 Sudo brew install openssl <——依赖于mysql,有用 Sudo brew info mysql <—撇过这个…它让你知道接下来会发生什么 Sudo brew install mysql -with-embedded用嵌入式服务器安装mysql。告诉你什么时候完成(我的安装花了10分钟)

后来

sudo chown -R mysql /usr/local/var/mysql/ <——mysql不为我工作,直到我运行这个命令 sudo mysql。Server start <——同样,确切的语法可能有所不同 在mysql (http://dev.mysql.com/doc/refman/5.7/en/create-user.html)中创建用户。请记住为root用户添加密码。

其他回答

尝试授予权限命令mysql

只是在之前的回答中添加一些东西-当从MySql 5.6升级到MySql 8.0时,我遵循了这里提供的步骤来进行干净的卸载,但我得到了以下错误

2019-11-05T07:57:31.359304Z 0 [ERROR] [MY-000077] [Server] /usr/local/Cellar/mysql/8.0.18/bin/mysqld: Error while setting value 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2019-11-05T07:57:31.359330Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/var/mysql is unusable. You can remove all files that the server added to it.
2019-11-05T07:57:31.359413Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-11-05T07:57:31.359514Z 0 [Note] [MY-010120] [Server] Binlog end

我花了些时间才想明白。在这里找到了一个线索: https://discourse.brew.sh/t/clean-removal-of-mysql/2251

因此,我的问题的关键是在卸载后删除/usr/local/etc/my.cnf文件。 在完成最后一步之后,MySql终于开始工作了。

家酿

首先,确保安装了自制程序 运行brew doctor,解决任何homebrew想要你解决的问题 运行brew install mysql 运行brew services重启mysql 运行mysql。服务器启动 运行mysql_secure_installation

好吧,我也遇到过同样的问题,但我已经解决了。由于某种原因,mysql_secure_installation脚本在使用Homebrew安装mysql时不能开箱即用,所以我手动安装了。在CLI中输入:

mysql -u root

这样你就可以进入mysql了。现在执行以下操作(取自mysql_secure_installation):

UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'
DROP DATABASE test;
FLUSH PRIVILEGES;

现在退出并返回mysql: mysql -u root -p

我认为如果已经安装了旧版本的mysql,就会出现这种情况。我也遇到了同样的问题,上面的解决方案对我都不起作用。我是这样安排的:

使用brew的remove & cleanup命令,卸载launchctl脚本,然后删除mysql目录在/usr/local/var,删除我现有的/etc/my.cnf(留给你,如果它适用)和launchctl plist

更新plist的字符串。还要注意,您的备用安全脚本目录将基于您正在安装的MySQL版本。

循序渐进:

brew remove mysql

brew cleanup

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo rm -rf /usr/local/var/mysql

然后我从头开始:

installed mysql with brew install mysql ran the commands brew suggested: (see note: below) unset TMPDIR mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp Start mysql with mysql.server start command, to be able to log on it Used the alternate security script: /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation Followed the launchctl section from the brew package script output such as, #start launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist #stop launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

注意:啤酒清理的——force位也会清理过时的酒桶,这是一个新的自制啤酒功能。

注意第二点:一个评论者说第二步不是必需的。我不想测试它,所以是YMMV!