2020/5/20

程序员是没有女朋友的~~

声明:这篇文章是我第一次安装MySQL,主要记录了安装的艰辛过程,内容很凌乱,不适合作为参考。

CentOS 6.10安装MySQL一直出问题,换了各种不同的版本,装了又卸载,卸载了又继续重装,心累~~

问题一:最开始安装的MySQL5.7.30,能够顺利安装,但是在hive中配置了mysql驱动后,hive一直不能正常使用,不知道哪里出了问题,有可能是mysql权限的问题,一直解决不好。

    于是我想着换个版本低一点的MySQL试试。

问题二:换了个低版本的,启动mysql服务,错误提示 ---->  mysqld :未被识别的服务。查了一下原因,是因为配置文件 /etc/init.d 中不存在 mysqld 命令。

    按照网上的解决办法:1) 使用    “find  / -name mysql.server”  命令全盘搜索找到mysql.server 文件

              2)copy mysql.server  到  /etc/init.d  下,重命名为 mysqld。

    但是!!!

    

    什么也找不到~~

    我再查原因:

    

    显示我根本就没有安装msyql。

    啥原因啊?我明明就用 rpm  -ivh Mysql-*****.rpm 安装了呀!

    再查原因,说是 MySQL 里面的安装文件是有依赖关系的,如果安装顺序不正确,文件无法正常安装。妈蛋,那我重新安装再试试。

    先说说安装文件如下:

    

    其中 server 是服务器,client 是客户端,devel是安装PHP等依赖于Mysql的组件包。

    embedded是MySQL的嵌入式版本,shared是共享库,shared-compat是为了兼容老版本的共享库。test是测试组件。

    但是,我把上面的所有文件都安装完了,使用 rpm -qa | grep mysql  命令,还是什么都找不到。

    继续!

    原来是要用 rpm  -qa |grep  -i mysql  命令。算是可以找到文件了:

      

    原因是 Linux 区分大小写,给 grep 命令加上 -i  匹配大小写即可。

    其实,只需要安装 server 和 client 即可。

看到很多MySQL的安装教程,都是要先创建mysql用户和用户组,这是为啥呢?

首先,作为我个人学习而言,创建MySQL用户和用户组是可选的,非必要的,直接使用当前用户也是ok的。

这样做的目的是提高系统的安全性,当别人黑了你的数据库的时候,别人得到的权限是这个mysql账号,而不是root账号。

作为一个初学者,刚开始学习就迎面袭来这么多问题,实在是太不友好了~~

但是,从这些大大小小的问题中,我感觉自己也一点一点地积累到了很多东西!

我觉得应该先熟悉一下MySQL的默认安装路径,找什么文件也方便一点:

    

Linux下MySQL启动方式 了解一下:

    1) mysqld   

  • 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root
  • 一般的,我们通过这种方式手动的调用mysqld,如果不是出去调试的目的,我们一般都不这样做。这种方式如果启动失败的话,错误信息只会从终端输出,而不是记录在错误日志文件中,这样,如果mysql崩溃的话我们也不知道原因,所以这种启动方式一般不用在生产环境中,而一般在调试(debug)系统的时候用到。

    2)mysqld_safe 

  • 启动mysql服务器:./mysqld_safe --defaults-file=/etc/my.cnf --user=root &
  • mysqld_safe是一个启动脚本,该脚本会调用mysqld启动,如果启动出错,会将错误信息记录到错误日志中,mysqld_safe启动mysqld和monitor mysqld两个进程,这样如果出现mysqld进程异常终止的情况,mysqld_safe会重启mysqld进程。

    3) mysql.server

    service mysql.server    start  /  stop  /  status
    mysql.server 同样是一个启动脚本,调用mysqld_safe 脚本,它的执行文件在$MYSQL_BASE/share/mysql/mysql.server 和 support-files/mysql.server。

    4)mysqld_multi

    多实例启动,配置不同的端口和配置文件。

继续吧~~

    

    继续报错。

    

    说让删了 /var/lock/subsys/mysql  文件。但是还是不行:

    

先不管了,先来了解一下什么是 PID文件吧!

    PID 即 Process ID,进程ID。MySQL pid 文件记录的是当前mysqld 进程的pid。

    1、未指定pid文件时,pid文件默认名为   主机名.pid, 存放的路径在默认 MySQL的数据目录。通过mysqld_safe 启动MySQL时,mysqld_safe 会检查pid 文件,如果pid文件不存在,不做处理;如果文件存在且pid 已占用,则报错 “ A   mysqld process already exists”;如果文件存在,但 pid 未占用,则删除 pid 文件。

    2、查看 MySQL 的源码可以知道,mysqld 启动后会通过 create_pid_file 函数新建 pid 文件,通过 getpid() 获取当前进程 pid 并将 pid 写入 pid 文件。

    3、因此,通过 mysqld_safe 启动时, MySQL pid 文件的作用是:在数据文件是同一份,但端口不同的情况下,防止同一个数据库被启动多次。

继续~~这里补充一下 MySQL卸载的步骤:

    1)找到以rpm包安装的MySQL

    

    2)rpm  -e  命令卸载。    --nodeps  去除依赖关系。

    

    3)查看残余MySQL文件

    

    4)将这些文件删除

    

在重新安装 MySQL-server 的时候,发现报错如下:

    

    说系统中已经存在了my.cnf 文件。那么my.cnf 文件是个什么文件呢?

    它是Linux中 Mysql 的配置文件,一般会在 /etc/my.cnf ,  /etc/mysql/my.cnf

    既然新的配置文件被改成了 my-new.cnf  ,那我想着就要改一下。

装个Mysql怎么就这么难?的更多相关文章

  1. 电商项目面试题 及mysql面试题 太难没啥用

    需要按照功能点把系统拆分,拆分成独立的功能.单独为某一个节点添加服务器.需要系统之间配合才能完成整个业务逻辑.叫做分布式.集群:同一个工程部署到多台服务器上.优点:1.把模块拆分,使用接口通信,降低模 ...

  2. 因为曾经装过Mysql导致再次装时windows无法启动MySQL服务报错1067的解决方法

    找到这里 MySQL右击属性 检查这里的可执行文件的路径是否正确,因为我这里显示的是原先的文件夹所以会一直启动失败,修改一下 这里你去百度经验 windows服务修改可执行文件路径 网址https:/ ...

  3. MySQL 主从复制原理不再难

    上篇我们分析过 Binlog 日志的作用以及存储原理,感兴趣的可以翻阅: 一文带你了解 Binlog 日志 Binlog 日志主要作用是数据恢复和主从复制.本身就是二进制格式的日志文件,网络传输无需进 ...

  4. Mac 装Sequel pro 连接 Mysql 8.0 失败、登录不了、loading问题

    最近都没更新博客,零零散散的笔记也都没整理,so 觉得还是不放上来了. 高兴的是入手了期待好久的水果机,开始了各种捣鼓,好想大撸一下代码啊.... 回到正轨,刚装了mysql8.0, 想装下mysql ...

  5. 第一次把mysql装进docker里碰到的各种问题

    最近电脑经常关机要关好长时间,老是需要长按电源键强行关机.也不知道是怎么回事. 后来查看关机时的日志,发现是mysql停不掉.这可闹心了!怎么办?上网搜了搜也没有找到什么好的解决办法.总不能每次关机都 ...

  6. ubuntu 12.04 mysql转移目录后 无法 启动

    http://www.boyunjian.com/do/article/snapshot.do?uid=com.iteye.xgbjmxn%2Fblog%2F1208086(转,)     我是用ap ...

  7. (三)—Linux文件传输与mysql数据库安装

    文件传输工具使用    为了速成,关于linux系统的学习都先放一放,用到哪个知识点就查哪个,这里想在linux下装一些服务练练手,最先想到的就是装个mysql数据库试试. 因为我用的是虚拟机下的li ...

  8. 关于mysql 和Oracle的一大堆麻烦问题的解决方案

    [INS-20802] Oracle Net Configuration Assistant 失败 在百度上找了半天并没有找到可靠的解决方案,最后是可以安装完成的,之后我 通过SQL Plus连接就报 ...

  9. centos编译安装mysql

    groupadd mysql #添加mysql组useradd -g mysql -s /sbin/nologin mysql #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系 ...

随机推荐

  1. 水题大战Vol.3 B. DP搬运工2

    水题大战Vol.3 B. DP搬运工2 题目描述 给你\(n,K\),求有多少个\(1\)到\(n\) 的排列,恰好有\(K\)个数\(i\) 满足\(a_{i-1},a_{i+1}\) 都小于\(a ...

  2. 什么是P,NP和NPC问题?

    P问题,NP问题,NPC问题?这些都是计算机科学领域,关于算法方面的术语.在认识这些术语之前,建议同学们先认真学习一下算法的时间复杂度,因为算法的时间复杂度与P,NP和NPC问题高度相关. 什么是P问 ...

  3. 救救孩子吧,到现在还搞不懂TCP的三次握手四次挥手

    本文在个人技术博客同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩...   前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧.彻 ...

  4. VScode+PicGo+Github+jsdelivr使用图床书写Markdown

    本文讲述使用Github作为图床,VScode搭配Picgo插件书写Markdown,并使用jsdelivr进行CDN加速的配置流程. 准备阶段 首先进行以下准备工作,都很简单,不再赘述. 注册Git ...

  5. xss-labs 通关学习笔记

    xss-labs 学习 By:Mirror王宇阳 time:2020/04/06 level1 我们进入到这个页面之后,快速关注到几个点,Xss注重的输入点,这里的输入点首先在URL栏中找到了name ...

  6. 编译u-boot时候,make distclean 出现rm:无法删除,****是一个目录

    今天在编译u-boot的时候,make distclean,出现了rm:无法删除 "include/asm-arm/arch": 是一个目录.经过查看网友的解决办法,已经解决了. ...

  7. PyTorch学习笔记及问题处理

    1.torch.nn.state_dict(): 返回一个字典,保存着module的所有状态(state). parameters和persistent_buffers都会包含在字典中,字典的key就 ...

  8. ominigraffle实践之画精美流程图+自动导出Xcode工程类图

    背景 在平常阅读各种文章时,注意到有的文章中流程图做得特别漂亮.特别羡慕.于是去搜索了下,发现mac平台好评很高的是一款名为ominigraffle的软件.这款软件不仅可以画图,还可以导出Xcode工 ...

  9. MPI组操作

    进程组的创建 MPI_Comm_Group int MPI_Comm_group( MPI_Comm comm, MPI_Group *group ); 把相同的通信子进程放到一个组内. #inclu ...

  10. seo排名顾问不仅仅是关键词排名

    http://www.wocaoseo.com/thread-246-1-1.html SEO顾问是什么,应该做什么工作呢,是不是主要做关键词的优化推广呢?做seo顾问入门的人,或者想聘请seo顾问的 ...