在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
我必须在安全模式下检查我的错误文件,以找到根本原因:
Rm -f /usr/local/var/mysql/*.err
mysqld_safe开始
猫mysql / * .err
这显示了升级例程中的一个错误。我试着修复它,但我在网上找不到足够的信息。在那之后,我放弃了,并手动导出数据库:
mysql。server start——upgrade=MINIMAL,因此服务器将启动
mysqldump不会工作,因为它会尝试运行完整的升级,但你可以使用Sequel Pro, phpMyAdmin等来导出。
停止服务器,将mysql文件夹重命名为mysql。坏了,并做一个干净的安装,以获得一个新的mysql文件夹。
启动MySQL,手动导入前面导出的.sql文件。
请按照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
注意:如果失败,您可能忘记运行上面的前两个步骤
在这里发布的一些答案的帮助下,我找到了这个问题
我先跑
sudo -我
所以我有根权限。
然后我删除了xxxx。犯错文件:
Rm -rf /usr/local/mysql/data/xxxx.err
当我在SafeMode中创建MySQL后,
/usr/local/mysql/bin/mysqld_safe开始
它将尝试启动并因为错误而退出…一个新的xxx。Err文件将被创建,你需要读取它来查看错误的原因:
Tail -f /usr/local/mysql/data/mysqld.local.err
在我的情况下,由于某种原因,它在/var/log/文件夹中缺少一些文件夹和文件…所以我创建了两个:
cd /var/log
mkdir mysql
触摸mysql-bin.index
创建新文件后,您需要更改权限:
chown -R _mysql /var/log/mysql
当所有这些步骤都采取后,我的数据库立即开始工作……
关键是要读取错误和日志,并找到错误的地方……