版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、 先要卸载原先装的mysql以及软件包1. 查找以前是否装有mysql命令:rpm -qa|grep -i mysql可以看到如下图的所示:说明之前安装了:MySQL-client-5.5.25a-1.rhel5MySQL-server-5.5.25a-1.rhel52. 停止mysql服务、删除之前安装的mysql删除命令:rpm -e nodeps 包名# rpm -ev MySQL-client-5.5.25a-1.rhel5# rpm ev -nodeps MySQL-server-5.5.25a-1.rhel53. 查找之前老版本mysql的目录、并且删除老版本mysql的文件和
2、库命令find / -name mysql查找结果如下:rootlocalhost # find / -name mysql/var/lib/mysql/var/lib/mysql/mysql/usr/lib64/mysql删除对应的mysql目录rm -rf /var/lib/mysqlrm -rf /var/lib/mysqlrm -rf /usr/lib64/mysql具体的步骤如图:查找目录并删除4. 注意:卸载后/etc/f不会删除,需要进行手工删除 rm -rf /etc/f5. 再次查找机器是否安装mysqlrpm -qa|grep -i mysql无结果,说明已经卸载
3、彻底、接下来直接安装mysql即可/var/lib/mysql/ #数据库目录2/usr/share/mysql #配置文件目录3/usr/bin &
4、#160; #相关命令目录4/etc/init.d/mysql #启动脚本二、 安装mysql数据库(所用的版本为mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz)1. 创建mysql用户和用户组A:用root用户登录系统,在root用户主目录下创建mysql用户和用户
5、组2. 拷贝mysql包a) 切换用户,进入刚创建的mysql用户主目录,b) 将mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz拷贝到mysql用户的主目录下。c) 解压mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz文件到mysql用户主目录下($tar -zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz)d) 解压成功之后,进入mysql目录查看,为了简单,将解压后的目录重命名为mysql-5.7.133. 安装数据库a) 进入 /home/mysql/mysql-5
6、.7.13/目录下,在此目录下创建文件夹data,作为mysql的数据目录,修改所属用户和用户组,并修改其权限。 b) 进入 /home/mysql/mysql-5.7.9/bin 执行下列命令mysqlCentOSSeven bin$ ./mysql_install_db -user=mysql -basedir=/home/mysql/ -datadir=/home/mysql/mysql-5.7.13/data出现错误信息:2015-11-19 06:49:00 WARNING mysql_install_db is deprecated. Please c
7、onsider switching to mysqld -initialize2015-11-19 06:49:07 ERROR The bootstrap log isn't empty:2015-11-19T14:49:01.888730Z 0 ERROR Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'c) 提示mysql_install_db 命令已弃用,使用mysqld mysqllocalhost bin$ ./mysqld -user=mysql -base
8、dir=/home/mysql/ -datadir=/home/mysql/mysql-5.7.132015-11-19T14:50:18.145225Z 0 Warning Changed limits: max_open_files: 1024 (requested 5000)2015-11-19T14:50:18.145526Z 0 Warning Changed limits: table_open_cache: 431 (requested 2000)2015-11-19T14:50:20.812061Z 0 Note Shutting down plugin 'binlog
9、'2015-11-19T14:50:20.813161Z 0 Note 4. 配置文件a) 进入root用户主目录,执行下列语句:cd /home/mysql/mysql-5.7.13/support-filesmv my-f /etc/fcp mysql.server /etc/init.d/mysqlb) 通过命令 vim /etc/init.d/mysql 编辑mysql文件,修改下面的两项basedir=/home/mysql/mysql-5.7.13datadir= /home/mysql/mysql-5.7.13/data5. 配置环境变量a) 切换到m
10、ysql用户主目录下b) 编辑 .bash_profile,通过命令(vi .bash_profile)在其中加入export MYSQL_HOME=/home/mysql/mysql-5.7.13export PATH=$PATH:$MYSQL_HOME/bin 6. 添加开机服务chkconfig -add mysqlchkconfig mysql on7. 启动mysql在mysql用户主目录执行命令service mysql start三、 问题解决1. 问题描述:MySQL server PID file could not be found! 或mysql PID file not
11、 found and Cant connect to MySQL through socket mysql.sock 问题解决:这篇文章主要介绍了MySQL下PID文件丢失的相关错误的解决方法,具体的提示可能会是"mysql PID file not found and Cant connect to MySQL through socket mysql.sock",需要的朋友可以参考下今天同事A找到我,说是Mysql server X的负载很高,查询很慢。他自己捣鼓了一阵未果后,我们一起看了下。rootredhat var# uname -aLinux xxx 2.6.1
12、8-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linuxrootredhat var# mysql -u root -p -e “select version();”+-+| version() |+-+| 5.1.32-log |+-+同事A的操作:A一看mysql server有问题第一反应是重启mysql server,囧!o()但是又使用了错误的命令rootredhat var# /var/lib/mysql/libexec/mysqld restart -操作100708 14:43:53
13、 ERROR Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!100708 14:43:53 ERROR Aborting100708 14:43:53 Note /var/lib/mysql/libexec/mysqld: Shutdown complete发现问题后,他又想起来应该是用下面的命令重启rootredhat var# service mysql restart -操作MySQL manager or server P
14、ID file could not be found! FAILEDStarting MySQL.CTRL+C取消这时候rootredhat var# ps aux | grep mysql可以看到,系统又启动了一个Mysql进程,但是过一会后,会自动消失,这时候看日志可以发现以下错误:100708 15:26:52 ERROR Can't start server: Bind on TCP/IP port: Address already in use100708 15:26:52 ERROR Do you already have another mysqld server run
15、ning on port: 30017 ?100708 15:26:52 ERROR Aborting然后后面我们一起看。首先我用client工具连接,发现mysql正常。web应用连接数据库也正常只是查询很慢。其次我在命令下面,连接:rootredhat var# mysql -u root -p提示:Enter password:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)这时候同事A提醒我,可以重启服务没关系。囧,o()o,他
16、在建议我重启解决问题。好吧,如他所愿。于是我先:rootredhat var# service mysql stopMySQL is running but PID file could not be found然后去mysql data dir下面查看,果然没有pid file。这时候我的第一反应是配置文件不对,导致不能正常停止和重启。由于server是好的,因此我没有急着去比较以前备份的/etc/f.bak和/etc/f。我们先查找负载高的原因。因为命令行下无法进入mysql,在client下使用复制代码代码如下:show processlist;可以看到里面有很多locked的查询,其中
17、等待时间最久的一个是一个select查询,显示正在sending data,然后其余都是locked。猜想是sending data的线程占用了“所有的分配给mysql的资源”,导致后来的线程全部挂起,由于“查询(线程)是依次执行的”,后面locked的线程一直在等待前面sending data的线程结束。(这一段是猜想的)sending data的这个线程U是一个select 查询,这个select对6张表进行了连接(公司的一个实习生提交的一个查询),其中有两张表的数据量在10w左右,另外有张data表数据量在 1000w左右,另外还有sum(distinct ) ,group by,ord
18、er by 可以想象下不知道要到何年何月这个查询才能执行完。这个sending data的慢查询的processid为799,当机立断运行复制代码代码如下:kill 799然后再运行复制代码代码如下:show processlist;可以看到前面locked的线程在一个个依次执行,后面还有好多个跟线程U类似的select线程,全部kill掉后,被堵塞的别的正常的几个Update,select,insert操作很快就执行完了。而后,web应用恢复正常,速度变快。返回linux命令行,使用rootredhat var# top<shift+m 按内存使用排序><1 显示cpu使用
19、情况>这时候可以发现server负载恢复正常。下面解决无法正常关闭重启的情况。也就是因为前面同事的误操作引起的ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)和MySQL manager or server PID file could not be found! FAILED的错误。我前面不是怀疑是配置文件里面有什么无法识别的参数选项么。通过rootredhat var# diff /etc/f /etc/f.bak发现,配置文
20、件没有问题。#我的server的hostname,mysql pid文件默认名字为hostname.pid,如果没有在/etc/f里面指定特定和pid filename和pid file path的话,这个文件是跟mysql数据在一起的。rootredhat var# diff /etc/f /etc/f.bak这时候通过#切换到mysql data dir(mysql的数据文件目录下)#你们的mysql data dir或许跟我的不一样哦,我的是/var/lib/mysql/var/rootredhat var# cd /var/lib/mysql/var/获取mysql用户运行的mysql
21、进程的 pid,然后导入到hostname.pid文件里面rootredhat var# echo ps aux | grep mysql | grep "user=mysql" | grep -v "grep" | awk 'print $2'>> redhat.pid#注意这里的redhat.pid跟hostname相关,这里是我的hostname.pid将文件的属主和属主组改为mysql:mysqlrootredhat var# chown mysql:mysql redhat.pid然后运行rootredhat var
22、# mysql -u root -p还是会提示:Enter password:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)rootredhat var# ls /tmp | grep sock果然没有mysql.sock这个文件但是这时候运行rootredhat var# service mysql status显示MySQL running (10949) OK 恩,pid file文件恢复正常,然后运行rootredhat va
23、r# service mysql restartShutting down MySQL. OK Starting MySQL. OK 这时候再运行rootredhat var# ls /tmp | grep sock可以发现重启后,/tmp下有了mysql.sock这个文件。大家可以搜索下mysql.sock的用途以及使用产生等等。同事A的 操作 导致pid 文件丢失, 操作 导致mysql.sock文件丢失,大家感兴趣可以去vi mysqld脚本和server mysql脚本,然后导致service mysql status/stop/start/restart运行异常,导致命令行下mysql -u root -p登录mysql异常。That's all.2. 问题描述:MySQL server PID file could not be found!失败Starting MySQL.The server quit without updating PID file (/usr/local/mysql/da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双方自愿离婚协议书七篇
- 二人合伙协议书2025
- 自发性多汗症病因介绍
- 广东省佛山市南海区、三水区2023-2024学年九年级上学期期末数学试题
- 《电机技术应用》课件 3.3.3 直流电机的制动
- (立项备案方案)压制封头项目立项申请报告
- (2024)欢乐世界旅游开发项目可行性研究报告申请备案编制(一)
- 2023年天津市高考语文模拟试卷
- 江苏省盐城市建湖县汉开书院学校2023-2024学年七年级上学期第二次月考道德与法治试题(原卷版)-A4
- 2023年乙烯冷箱产品项目融资计划书
- 墙体构造设计
- 数字油画-社团活动记录课件
- 燃气红外线辐射采暖技术交底
- 工会工作政协提案范文
- 液压系统课件(完整)课件
- 调节池及反应池施工方案与技术措施
- 气象医疗——日干支断病刘玉山
- 确定如何10kV架空线路档距
- 宜家家居 客户关系管理分析示例ppt课件
- 国际象棋启蒙教育PPT课件
- 基坑工程专项施工方案
评论
0/150
提交评论