如何复制没有权限的文件加。mysql的data文件夹不能复制
时间:2010-05-06
来源:互联网
安装完lamp server后。
测试mysql可以正常重启等。
故障重现步骤
1、使用mysql自带配置文件,提升mysql性能
cd /etc/mysql/
sudo gzip -d my-large.cnf.gz
sudo cp my.cnf my.cnf.bk
sudo service mysql restart //确认mysql还活着
mysql -u root -p //真的活着,然后退出crtl+d
sudo cp my-large.cnf my.cnf
sudo service mysql stop
sudo service mysql start //悲剧了。
2、尝试恢复my.cnf
sudo service mysql start //依旧悲剧,mysql再也启动不起来了(无任何mysql相关错误日志),可使用mysqld_safe启动。
后来发现问题主要出在my-large.cnf中需要添加一条参数
user = mysql
若在重启mysql前加上了这条则,一切太平。没有加就重启服务的话。。。那就悲剧了。。感觉这个问题出在mysql的启动脚本里。现在还没找到解决的办法,有兄弟能提供些解决的线索吗?
作者: zhuwz 发布时间: 2010-05-06
作者: kamui0523 发布时间: 2010-05-06
作者: zhuwz 发布时间: 2010-05-07
在init.d中的mysql启动项和早期的版本不一样了。(文件的时间是由于我手工编辑了脚本想echo点信息出来导致时间变更,在故障前后这个脚本没有变动)
lrwxrwxrwx 1 root root 21 2010-05-06 22:38 mysql -> /lib/init/upstart-job
实际的启动配置文件好像变成了下面这个。
/etc/init/mysql.conf
文件内容如下(该文件在启动前后也无变动)
# MySQL Service
description "MySQL Server"
author "Mario Limonciello <[email protected]>"
start on (net-device-up
and local-filesystems)
stop on runlevel [016]
respawn
env HOME=/etc/mysql
umask 007
pre-start script
#Sanity checks
[ -r $HOME/my.cnf ]
[ -d /var/run/mysqld ] || install -m 755 -o mysql -g root -d /var/run/mysqld
LC_ALL=C BLOCKSIZE= df --portability /var/lib/mysql/. | tail -n 1 | awk '{ exit ($4<4096) }'
end script
exec /usr/sbin/mysqld
post-start script
while ! /usr/bin/mysqladmin --defaults-file=$HOME/debian.cnf ping
do
sleep 1
done
exec $HOME/debian-start
end script
###############################
/etc/mysql$ ls -l|grep debian-start
-rwxr-xr-x 1 root root 1198 2010-04-14 01:04 debian-start
/etc/mysql/debian-start文件如下(又包含了/usr/share/mysql/debian-start.inc.sh)
#!/bin/bash
#
# This script is executed by "/etc/init.d/mysql" on every (re)start.
#
# Changes to this file will be preserved when updating the Debian package.
#
source /usr/share/mysql/debian-start.inc.sh
MYSQL="/usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf"
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
MYUPGRADE="/usr/bin/mysql_upgrade --defaults-extra-file=/etc/mysql/debian.cnf"
MYCHECK="/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf"
MYCHECK_SUBJECT="WARNING: mysqlcheck has found corrupt tables"
MYCHECK_PARAMS="--all-databases --fast --silent"
MYCHECK_RCPT="root"
# The following commands should be run when the server is up but in background
# where they do not block the server start and in one shell instance so that
# they run sequentially. They are supposed not to echo anything to stdout.
# If you want to disable the check for crashed tables comment
# "check_for_crashed_tables" out.
# (There may be no output to stdout inside the background process!)
echo "Checking for corrupt, not cleanly closed and upgrade needing tables."
(
upgrade_system_tables_if_necessary;
check_root_accounts;
check_for_crashed_tables;
) >&2 &
exit 0
####################################
查看了/var/run/mysqld、/var/run。也没有sock文件和pid文件。
运行
mysql respawn/post-start, (post-start) process 1010
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root 1010 0.3 0.1 4088 588 ? Ss 17:41 0:00 /bin/sh -e /proc/self/fd/11
steam 1110 0.0 0.1 7616 904 pts/0 S+ 17:41 0:00 grep --color=auto 1010
感觉是由于使用了错误的帐号启动了mysql服务导致服务启动过程出错,在添加了user=mysql参数后,也无法再次成功启动了。这个让我很诧异。启动脚本均未受变动。/var/lib/mysql中似乎也没异常出现。
如果这个是服务mysql服务脚本的问题的话还好。若是服务管理本身的问题。。那么很多其他服务应该也会遇到相关问题的。
最后由 zhuwz 编辑于 2010-05-07 9:47,总共编辑了 1 次
作者: zhuwz 发布时间: 2010-05-07
用/etc/init.d/mysql status,杀掉显示的进程就可以重启mysql了
用diff对比了下my.cnf和my-large.cnf,有很多出入,不过我对mysql没什么特殊要求,你有兴趣自己研究把,呵呵
另外linux不存在悲剧的事情,大部分情况都是可以修复的.
作者: kamui0523 发布时间: 2010-05-07
恩也正在试着看,其实my-large.cnf中只要添加user=mysql这个参数后,mysql就不会出现错误了。出现错误的原因应该还是使用错误的用户启动过一次服务。我即使手工kill掉那个进程,虽然mysql status显示running了。但是实际还是没有mysqld这个进程存在,mysql无法登录。
作者: zhuwz 发布时间: 2010-05-07
/etc/init.d/mysql status后杀掉显示的进程,重启成功
再不行你把ps -ef中显示的mysql进程也杀掉
作者: kamui0523 发布时间: 2010-05-07
作者: zhuwz 发布时间: 2010-05-07
作者: Ulinux-Future 发布时间: 2010-07-05
作者: xuwu125 发布时间: 2010-07-05
在以前的ubuntu server不加也可以启动。10.04不加就无法启动了。必须以mysql用户启动mysqld
作者: zhuwz 发布时间: 2010-07-09
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28