前记

    毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业。之前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境。对于Linux+Tomcat(或其他容器)+Mysql这套之前没用用过。所以利用这周末的我在阿里云上49元搞了个linux(centos 64位)的服务器。

刚开始先装了JDK1.6,安装了Tomcat6.0。这过程中没有遇到太大的问题, 小问题也google一下就解决了。而周六晚上开始安装Mysql,于是到今天下午为止,终于ok了。

可能有人会问,阿里云linux主机不是有一键安装(http://help.aliyun.com/list/11108222.html?spm=5176.7224473.1997282749.12.vB3A4Z)吗,为什么不用那个。原因主要有:首先我这周末的时间比较充裕,其次我觉得这些东西不着急的情况下还是自己摸索着一点点部署比较好,毕竟是第一次学习,还是不要省这个事儿了,你们觉的呢?不过后边我参考了一键安装中的方法,才解决我的问题,详细见后面的正文。

写这篇文章的目的就是在安装mysql的过程中,遇到的问题,去网上搜,发现得到的答案多数都是大家互相转来转去的,所以想通过这篇文章记录自己实践中验证可行的一套的完整流程,给自己留个备份,也希望能帮助到其他人。

 正文

我在安装的过程中,主要分为两个阶段,两种方法:

第一阶段:8月9号23点至8月10号凌晨3:30左右,采取的是rpm的安装方法,安装简单,但是总是出现各种问题,最终失败。

第二阶段:8月10号13点至8月10号16:00点左右,采用的仿制一键安装的方法,需要分析,最终安装还是比较简单的,最终成功。

这两个阶段我都会介绍一下,以便供大家参考,或者选取序曲教训。

对于第一阶段:

我主要参考的是这篇文章:http://www.ouropera.net/?p=308  ,记住我说的是参考,因为这些文章只是别人的,未必完全适合你,所以我觉得使用的过程中最好抱着一种随时都会怀疑的态度,这篇文章不行,就看看别的文章的步骤。下面是我的步骤:

步骤1:我按照网上大多人的做法,先去mysql官网http://dev.mysql.com/downloads/mysql/下载MySQL-client-5.6.20-1.rhel5.x86_64.rpm、MySQL-server-5.6.20-1.rhel5.x86_64.rpm、MySQL-devel-5.6.20-1.rhel5.x86_64.rpm这三个文件,并且通过FileZilla的sftp服务上传到我的linux云服务器上(目录随自己的喜欢)。

步骤2:我现在服务器上执行"rpm -qa"查看本机已经安装东西,确认没有mysql。

步骤3:我在文件所在目录执行"rpm -ivh  MySQL-client-5.6.20-1.rhel5.x86_64.rpm MySQL-server-5.6.20-1.rhel5.x86_64.rpm MySQL-devel-5.6.20-1.rhel5.x86_64.rpm"这个命令,进行安装.

步骤4:上面的安装很简单吧,我发现都成功之后,我就执行"service mysql start"这个命令,也可以试试"service mysqld start"命令,于是我的噩梦就开始了,我现在已经记不清错误出现的先后顺序了,但主要包括以下几种:

    纠结1:Starting MySQL..The server quit without updating PID file (/var/lib/mysql/XXX.pid)

纠结2:我的/etc/my.cnf没有。

纠结3:我的/var/lib/mysql/  下面没有mysql.sock

等等。。。。我记不清了

步骤4:实际上从我出现第一个问题开始,我的主要做法就是先围绕这个错误搜索文章,基本上把这些文章浏览一遍之后,再综合比较靠谱的试一下, 我觉得这样做事的成功率是比较高的,也是对自己理解问题的关键是有好处的,但是那天晚上就是在我已经屡试不爽的解决方式下,居然越高越无头绪,到时有些命令越敲越熟啊,比如:

1.top命令

2.ps -ef|grep mysql

3.根据2中的结果,获取进程id,然后强杀kill -9 进程id

4.卸载: rpm -ev  MySQL-client-5.6.20-1.rhel5.x86_64.rpm

步骤5:直到睡觉前,我绝望的将安装的mysql卸载掉,同时也形成了这样几个简单的结论:

1.用rpm安装的方式本来在/etc下面就不会产生my.cnf。

2.mysql.sock是在mysql启动成功后,根据my.cnf中配置的socket配置的文件位置生成。

3.我基本放弃了rpm这种安装方式。

对于第二阶段:

我周日中午起来后,吃完早饭,然后仔细想了下,我看了下阿里提供的一键安装目录,如下:

我肯定打开的是最新版的install_mysql-5.6.15.sh,获得的内容如下:

    注意:对于这两个图片所展示的步骤我做了如下总结:

步骤1:首先他先判断当前机器是64位还是32位,然后利用wget去一个阿里的地址上下载对应的安装文件。PS:我的是64位的,同时我发现下载的这个文件其实就是官网上tar.gz版本,所以没什么不一样。

步骤2:然后利用tar命令进行解压缩。

步骤3:在利用mv命令移动到安装目录下。 这里边主要有三个目录:

/alidata/server/mysql/

                      /alidata/server/mysql/data/

                      /alidata/log/mysql

                      PS:经过我的实践,我们需要提前建立好类似的三个文件夹,不然就会在安装的最后,报没有找到这三个目录的错误。所以根据我自己的情况,我之前在安装tomcat时,放到了根目录下我自己创建的/myself_setted下面。所以我想把mysql也放在这个                       目录下,后边详细再说,这也就需要我将自己定义的三个文件夹的目录替换掉原文件中的那三个目录,仔细一点,其实需要替换的地方并不多。当然你如果完全按照阿里定义的文件夹建立也可以

步骤4:定义3中文件夹的全下,还做了一些不需要我们修改的事情。

步骤5: 定义/etc/my.cnf中的内容,仔细发现并没有需要我们替换的。

===================================================分割线:下面是我经过上边的分析,最终执行的步骤=======================================================

经过对上边的分析,最终我的安装步骤如下:

步骤1:建立三个文件夹,以替换上边的三个文件夹,如下(我想对应关系大家应该可以看明白哈):

/myself_setted/server/mysql5.6.15/

                      /myself_setted/server/mysql5.6.15/data/

                      /myself_setted/log/mysql5.6.15/  

步骤2:将上边的三个文件夹目录在阿里原来的install_mysql-5.6.15.sh中替换掉之前阿里默认的,注意,上边已经说了,如果你不在意,直接按照原来文件中阿里定义的三个文件夹的结构也是可以的。

步骤3:利用FileZilla的sftp服务将新定义好的install_mysql-5.6.15.sh文件上传到linux服务器中。

步骤4:用cd定位到.sh所在的文件夹目录,执行"./install_mysql-5.6.15.sh"命令即可。

步骤5:在步骤4中我当时点击回车执行命令的时候立即报了如下错误:/bin/bash^M: bad interpreter: No such file or directory

我根据http://blog.csdn.net/esther0401/article/details/7361496中的解决方式如下:

1.vim install_mysql-5.6.15.sh

2.一般模式下输入":set ff?",进行查看,发现时dos的

3.一般模式下输入"set ff=unix",就ok了

然后在执行步骤4中的命令,就会看到下载各种文件,然后安装。

步骤6:安装速度很快,会在最后显示:Starting Mysql ......SUCCESS之类。

PS:停止:service mysqld stop ;  启动:service mysqld start;

步骤7:然后输入命令"mysql",正常情况下就应该显示mysql的欢迎页面了。但是我在这里又爆了一个错误:-bash: /usr/bin/mysql: No such file or directory

然后我根据网上搜索的结果,得到了如下结论,就是默认的是 /usr/bin/mysql,而我的是 /myself_setted/server/mysql5.6.15/bin/mysql,

所以在执行以下的连接命令"ln -s  /myself_setted/server/mysql5.6.15/bin/mysql  /usr/bin/"即可解决。

步骤8:经过前面的7步已经发现可以了。但是我还需要在本机远程连接我的mysql,所以我还需要在mysql中做这样的处理:

show databases;

use mysql;

show tables;    --用user表

select host,user,password from user;

update user set host='%' where user='root' and host='localhost';

flush privileges;

重启服务即可。

***2015年3月10日针对上述步骤8进行修正: 上述步骤虽让可以解决远程链接mysql的问题,但会出现本地看不到远程建立的数据库,原因是因为root@localhost这个user不存在了,所以根本的解决方式是:

例如:grant all  on test.* to lionbule@'%' identified by 'hello1234';

新增密码为‘hello234’的用户lionbule对test库拥有所有操作权限,并不限制lionbule用户的登陆IP

所以,根据我们的需要我们可以依次输入如下命令:

grant all  on *.* to root@'%' identified by '';  (最后是两个单引号哈)

flush privileges;

总结:针对上文的内容,我提供的只是一套我试验过的确实可行的方案。对于做事儿,我一直秉承着先及格再优秀,我想我已经及格了,对于优秀,我还需要努力啊。其实我目前对于rpm的安装不成功还没找到原因,所以如果大家有实验过的,麻烦分享以下。至于更详细的原理,希望大家能一起讨论。

Linux1 在Linux(CentOS)上安装MySql详细记录的更多相关文章

  1. Linux CentOS上安装 MySQL 8.0.16

    前言: 因为我需要在我新安装的Linux CentOS系统服务器中安装和配置MySQL服务器,然而对于我们这种Linux使用小白而言在Linux系统中下载,解压,配置MySQL等一系列的操作还是有些耗 ...

  2. NoSql1 在Linux(CentOS)上安装memcached及使用

    前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...

  3. 在Linux机器上安装MySQL

    在Linux机器上安装MySQL,仔细认真些就没有问题. CentOS 7下MySQL 5.7安装.配置与应用_数据库技术_Linux公社-Linux系统门户网站 搞不定的话,直接删掉这个MySQL, ...

  4. 在centos上安装mysql

    本文依然是用的xftp上传gz文件,然后在xShell上操作的,如果没有安装使用这两个文件的请查阅之前的博客. 1.将下载好的文件用xftp上传到对应的位置. 2.解压文件:tar  -zvxf  m ...

  5. Linux/UNIX 上安装 MySQL

    Linux/UNIX 上安装 MySQL Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: MySQL - MySQL服务器.你需要该选项,除非你只想连 ...

  6. MySQL 8.x 新版本特性赶紧学!!Linux 服务器上安装 MySQL 8.x

    我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复[资料],即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板. 引言 ...

  7. windows10上安装mysql详细图文教程

    在windows10上安装mysql详细图文教程   这篇文章主要介绍了在windows10上安装mysql详细图文教程,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧 环境:windw ...

  8. 如何在linux CentOS 上安装chrome 谷歌浏览器?

    获得linux命令的root权限:http://blog.csdn.net/mddy2001/article/details/76521101. 更改密码在终端中输入:sudo passwd root ...

  9. 在linux(CentOS-6.7_x86_64)上安装mysql成功记录

    查看linux服务器的yum源设置: [root@hadoop03 yum.repos.d]# cd /etc/yum.repos.d [root@hadoop03 yum.repos.d]# ll ...

随机推荐

  1. Asp.net Core中使用Session

    前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...

  2. 札记:android手势识别,MotionEvent

    摘要 本文是手势识别输入事件处理的完整学习记录.内容包括输入事件InputEvent响应方式,触摸事件MotionEvent的概念和使用,触摸事件的动作分类.多点触摸.根据案例和API分析了触摸手势T ...

  3. KMP算法求解

    // KMP.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using namespac ...

  4. 再谈CAAnimation动画

    CAAnimaton动画分为CABasicAnimation & CAKeyframeAnimation CABasicAnimation动画, 顾名思义就是最基本的动画, 老规矩先上代码: ...

  5. C++中的引用

    一,C++中引用的基础知识 1.引用的基本概念 1.所谓的引用其实就是对变量起“别名”.引用和变量对应得是相同的内存,修改引用的值,变量的值也会改变,和指针类似. 2.引用在定义的时候必须要初始化,初 ...

  6. 用scikit-learn学习DBSCAN聚类

    在DBSCAN密度聚类算法中,我们对DBSCAN聚类算法的原理做了总结,本文就对如何用scikit-learn来学习DBSCAN聚类做一个总结,重点讲述参数的意义和需要调参的参数. 1. scikit ...

  7. Android -- 真正的 高仿微信 打开网页的进度条效果

    (本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...

  8. 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~

    前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...

  9. 微信小程序前端源码逻辑和工作流

    看完微信小程序的前端代码真的让我热血沸腾啊,代码逻辑和设计一目了然,没有多余的东西,真的是大道至简. 废话不多说,直接分析前端代码.个人观点,难免有疏漏,仅供参考. 文件基本结构: 先看入口app.j ...

  10. 海康网络摄像机YV12转换为BGR,由opencv Mat显示 (转)

    我使用的是海康DS-2CD852MF-E, 200万,网络摄像机,已经比较老了,不过SDK在海康官网下载的,开发流程都差不多. 海康摄像机回调解码后的视频数据格式为YV12,顺便说一下YV12的数据格 ...