在Mac OS X v10.6 (Snow Leopard)上,启动MySQL会出现以下错误:
服务器退出,没有更新PID文件
文件my.cnf
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
pid-file=/var/run/mysqld/mysqld.pid
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
如果你的系统有多个版本的MySQL,那么你很可能会遇到这个PID错误:
我们可以从杀死所有MySQL进程开始:
sudo killall mysqld
转到/usr/local,选择你想要的MySQL版本,然后为它提供MySQL权限。在我的情况下,我需要版本8。
sudo chown -R mysql mysql-8.0.21-macos10.15-x86_64
打开/usr/local/mysql-8.0.21-macos10.15-x86_64文件夹,启动SQL server:
sudo。/ mysql。服务器启动(输入您的笔记本电脑密码)
如果它给出下面的输出…PID问题解决了
sudo ./mysql.server start
Starting MySQL
.. SUCCESS!
请按照brew install mysql的说明安装mysql。
设置数据库以您的用户帐户运行:
对于MySQL 5.x:
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
要在另一个文件夹中设置基表,或者使用不同的用户运行mysqld,请查看mysqld_install_db的帮助:
mysql_install_db --help
查看MySQL文档:
4.4.3 mysql_install_db -初始化MySQL数据目录
2.10.4 MySQL初始帐户安全
对于MySQL 8.x:
unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
确保上面的数据目录/usr/local/var/mysql为空。必要时备份。
例如,要以“mysql”用户运行,你可能需要sudo:
sudo mysql_install_db ...options...
手动启动mysqld:
mysql.server start
注意:如果失败,您可能忘记运行上面的前两个步骤
这招对我很管用:
注意:这是一个硬重新安装。当所有其他选项都用尽时再使用。
在安装了Homebrew的Mac电脑上:
列出运行时存在的所有MySQL实例
brew services
通过运行删除每个实例
brew uninstall <instance_name>
删除/usr/local/var/mysql目录:
rm -rf /usr/local/var/mysql
使用Homebrew重新安装MySQL:
brew install mysql
brew install mysql@<version> #Optional
重新运行mysql。服务器启动:
mysql.server start