在Snow Leopard上,启动MySQL会出现以下错误:
服务器退出而不更新PID文件
[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
Run Code Online (Sandbox Code Playgroud)
Tom*_*art 268
尝试找到带有后缀".err"的日志文件,应该有更多信息.它可能在:
/usr/local/var/mysql/your_computer_name.local.err
这可能是权限问题
检查是否有任何mysql实例正在运行
ps -ef | grep mysql
如果是,你应该停止它,或者杀死这个过程
kill -9 PID
在PID
上一个命令的输出上显示的用户名旁边的数字
检查所有权 /usr/local/var/mysql/
ls -laF/usr/local/var/mysql /
如果它是root
你的所有者应该改变它mysql
或your_user
sudo chown -R mysql/usr/local/var/mysql/
svs*_*svs 195
你有没有按照说明进行操作brew install mysql
?
设置数据库以与您的用户帐户一起运行:
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Run Code Online (Sandbox Code Playgroud)
要在另一个文件夹中设置基表,或使用其他用户运行mysqld,请查看以下帮助mysqld_install_db
:
mysql_install_db --help
Run Code Online (Sandbox Code Playgroud)
并查看MySQL文档:
例如,要运行用户"mysql",您可能需要/usr/local/var/mysql
:
unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Run Code Online (Sandbox Code Playgroud)
手动启动mysqld:
sudo mysql_install_db ...options...
Run Code Online (Sandbox Code Playgroud)
注意:如果失败,您可能忘记运行上面的前两个步骤
ukl*_*viu 126
我在我的Mac机器上遇到了同样的问题(正确地遵循了建议的所有安装步骤brew install
).
删除错误文件为我修复了它:
sudo rm -rf /usr/local/var/mysql/dev.work.err
(dev.work
是我的主机名)
这工作是因为dev.work.err
拥有_mysql:wheel
而不是我自己的用户名.列出错误文件可能也会修复它.
小智 90
重启后我遇到了同样的问题.以下是我修复它的方法:
sudo chown -R _mysql /usr/local/var/mysql
Run Code Online (Sandbox Code Playgroud)
mik*_*oop 31
这对我有用......
检查所有正在运行的MySQL进程:
$ ps aux | grep mysql
USER PID %CPU %MEM
_mysql 5970 0.0 0.4 ...
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令终止上面命令中列出的所有进程:
$ sudo kill -9 [PID]
Run Code Online (Sandbox Code Playgroud)
替换[PID]
为上面列表中的单个PID,例如5970
.
对第一个命令看到的所有行都这样做.
然后你可以再次启动你的MySQL服务器:
mysql.server start
Run Code Online (Sandbox Code Playgroud)
cos*_*r11 25
尝试在错误关闭后启动msql时,可能会发生此错误.
看一下mysql错误日志文件.如果它提到"检查你是否已经有另一个使用相同数据或日志文件的mysqld进程".,那么你需要正确关闭该过程.
查看运行mysql的进程,使用以下命令: lsof -i:3306
您的输出应如下所示:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 4249 username 17u IPv4 0x7843d9d130469c0b 0t0 TCP localhost:mysql (LISTEN)
Run Code Online (Sandbox Code Playgroud)
kill -15 4249
Kill -15向进程发送一个siganl以释放它锁定的所有资源并在之后终止该进程.
mysql.server start
jar*_*ith 24
我的错误文件告诉我,该端口可能正被另一个进程使用,但只是运行sudo mysql.server start
修复了我的问题.
use*_*355 16
如果没有人帮助你,只需删除文件夹/usr/local/var/mysql
,然后再次安装mysql brew reinstall mysql
.
小智 15
我最近遇到过这个问题,但它之前有效,然后停止了.
这是因为我最初mysql.server
是以root身份而不是以自己身份开始的.
修复是删除错误的日志文件(由其拥有_mysql
).再次启动它就通过了.
use*_*355 15
尝试删除ib_logfile0
和ib_logfile1
文件,然后再次运行mysql
rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1
Run Code Online (Sandbox Code Playgroud)
这个对我有用.
Gab*_*abe 10
对我有用的解决方案如下:https://serverfault.com/questions/334284/cant-create-pid-file-on-mysql-server-permission-denied
改变我的一些权限似乎可以解决问题.我正在使用OS X 10.8.2运行2012年中期的Macbook Air,并且使用自制软件安装了mysql.
chmod 0755 /var
chown root:wheel /var/tmp
sudo chmod 0771 /usr/local/var/mysql/*
Run Code Online (Sandbox Code Playgroud)
对我来说,我不得不重新安装mysql
brew reinstall mysql
Run Code Online (Sandbox Code Playgroud)
然后在下面启动要立即启动mysql并在登录时重新启动:
brew services start mysql
Run Code Online (Sandbox Code Playgroud)
尝试在MacOS X 10.7.5上进行升级时,我遇到了这个问题.
不幸的是,mysql也从5.5.14升级到5.6.10.尝试新的,没有工作.
我决定回到原来的设置并做了一个
brew switch mysql 5.5.14
Run Code Online (Sandbox Code Playgroud)
这并没有解决问题.在其他地方,我读到并做了这个,瞧!一切都回来了:)
cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
Run Code Online (Sandbox Code Playgroud)
对我来说,修复很简单:
top
Run Code Online (Sandbox Code Playgroud)
表明mysqld已经在运行了
sudo killall mysqld
Run Code Online (Sandbox Code Playgroud)
然后允许该过程开始
我正在使用,
我使用自制软件安装MySQL('brew install mysql').它安装了几个依赖项,然后是mysql.
当我试图启动时,
west$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).
Run Code Online (Sandbox Code Playgroud)
我跑了这个命令,
west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db
Run Code Online (Sandbox Code Playgroud)
和MySQL的工作原理.
请注意,您需要从mysql目录的顶级(IE,usr/local/Cellar/mysql/5.5.25)运行mysql_install_db.直接在/ scripts目录中运行它并没有为它提供足够的上下文来运行它.
小智 7
对我来说,解决方案是覆盖/更正/ etc/my/cnf中的数据目录.
我使用自述文件中提供的指示从源代码构建了MySQL 5.5.27:
# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions
# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
Run Code Online (Sandbox Code Playgroud)
mysqld_safe在没有解释的情况下终止了自己.运行/etc/init.d/mysql.server start
导致错误:
"服务器退出而不更新PID文件"
我注意到安装说明中有些奇怪的东西.它的所有权已更改为mysql的目录"data",但不是"var"; 这是不寻常的,因为多年来我必须确保var目录是mysql可写的.所以我手动运行chown -R mysql /usr/local/mysql/var
然后尝试再次启动它.仍然没有运气.但更糟糕的是,var目录中没有.err文件 - 它位于"数据"目录中!所以scripts/mysql_install_db在/ usr/local/mysql/var中设置了camp,但是应用程序的其余部分似乎想在/ usr/local/mysql/data中完成它的工作!
所以我刚编辑了/etc/my.cnf并在[mysqld]部分下面添加了一个指令,明确地将mysql的数据目录指向var(正如我通常所期望的那样),并且在这样做之后,mysqld启动了精细.要添加的指令如下所示:
datadir =/usr/local/mysql/var
为我工作.希望它对你有所帮助.
这对我有用:
在带有 Homebrew 的 Mac 上:
通过运行列出所有存在的 mysql 实例
$ brew services
Run Code Online (Sandbox Code Playgroud)
通过运行删除每个实例
$ brew uninstall <instance_name>
Run Code Online (Sandbox Code Playgroud)
删除/usr/local/var/mysql中的Mysql目录:
$ rm -rf /usr/local/var/mysql
Run Code Online (Sandbox Code Playgroud)
使用自制软件重新安装 mysql:
$ brew install mysql
$ brew install mysql@<version> #Optional
Run Code Online (Sandbox Code Playgroud)
重新运行 mysql.server start
$ mysql.server start
Run Code Online (Sandbox Code Playgroud)
如果你的系统有多个版本的 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 服务器
(输入您的笔记本电脑密码)如果它给出以下输出... PID 问题已解决
sudo ./mysql.server start
@xxxx-M-R0SU support-files $ sudo ./mysql.server start Starting MySQL .. SUCCESS!
小智 5
似乎MySQL进程正在运行,因此您无法使用该端口。您可以使用以下命令检查正在运行的MySQL进程:
ps auxf | grep MySQL的
如果得到任何MySQL进程,请使用kill -9 PID杀死该进程ID,然后尝试启动MySQL。
以安全模式启动Mysql
/usr/local/mysql/bin/mysqld_safe start
Run Code Online (Sandbox Code Playgroud)
要么
在MAC上结束Activity Monitor应用程序中的任何mysql
或mysqld
任务(或其他).
或者检查你的错误
tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
Run Code Online (Sandbox Code Playgroud)
在此处发布的一些答案的帮助下,我能够找到问题
首先我跑
sudo -i
所以我可以有root访问权限。
比我删除了 xxxx.err 文件
rm -rf /usr/local/mysql/data/xxxx.err
在我以安全模式启动 MySQL 之后
/usr/local/mysql/bin/mysqld_safe start
会尝试启动,会因为出错退出……会新建一个xxx.err文件,需要阅读一下才能看到出错原因
tail -f /usr/local/mysql/data/mysqld.local.err
在我的情况下,由于某种原因,它缺少一些文件夹和文件/var/log/
夹内的文件......所以我创建了两个
cd /var/log
mkdir mysql
touch mysql-bin.index
创建新文件后,您需要更改权限
chown -R _mysql /var/log/mysql
采取所有这些步骤后,我的数据库立即开始工作......
希望这可以帮助这里的其他人......关键是阅读错误并记录并找出错误所在......
归档时间: |
|
查看次数: |
553862 次 |
最近记录: |