Linux1 在Linux(CentOS)上安装MySql详细记录
前记:
毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业。之前的公司一直在用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详细记录的更多相关文章
- Linux CentOS上安装 MySQL 8.0.16
前言: 因为我需要在我新安装的Linux CentOS系统服务器中安装和配置MySQL服务器,然而对于我们这种Linux使用小白而言在Linux系统中下载,解压,配置MySQL等一系列的操作还是有些耗 ...
- NoSql1 在Linux(CentOS)上安装memcached及使用
前言: 今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...
- 在Linux机器上安装MySQL
在Linux机器上安装MySQL,仔细认真些就没有问题. CentOS 7下MySQL 5.7安装.配置与应用_数据库技术_Linux公社-Linux系统门户网站 搞不定的话,直接删掉这个MySQL, ...
- 在centos上安装mysql
本文依然是用的xftp上传gz文件,然后在xShell上操作的,如果没有安装使用这两个文件的请查阅之前的博客. 1.将下载好的文件用xftp上传到对应的位置. 2.解压文件:tar -zvxf m ...
- Linux/UNIX 上安装 MySQL
Linux/UNIX 上安装 MySQL Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: MySQL - MySQL服务器.你需要该选项,除非你只想连 ...
- MySQL 8.x 新版本特性赶紧学!!Linux 服务器上安装 MySQL 8.x
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复[资料],即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板. 引言 ...
- windows10上安装mysql详细图文教程
在windows10上安装mysql详细图文教程 这篇文章主要介绍了在windows10上安装mysql详细图文教程,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧 环境:windw ...
- 如何在linux CentOS 上安装chrome 谷歌浏览器?
获得linux命令的root权限:http://blog.csdn.net/mddy2001/article/details/76521101. 更改密码在终端中输入:sudo passwd root ...
- 在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 ...
随机推荐
- 简单入门canvas - 通过刮奖效果来学习
一 .前言 一直在做PC端的前端开发,从互联网到行业软件.最近发现移动端已经成为前端必备技能了,真是不能停止学习.HTML5新增的一些东西,canvas是用的比较多也比较复杂的一个,简单的入门了一下, ...
- transtion:过渡动画
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Monaco; color: #4f5d66 } p.p2 { margin: 0.0px 0 ...
- webpack入门教程之Hello webpack(一)
webpack入门教程系列为官网Tutorials的个人译文,旨在给予想要学习webpack的小伙伴一个另外的途径.如有不当之处,请大家指出. 看完入门教程系列后,你将会学习到如下内容: 1.如何安装 ...
- Android学习探索之Java 8 在Android 开发中的应用
前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...
- redis 学习笔记(1)
redis持久化 snapshot数据快照(rdb) 这是一种定时将redis内存中的数据写入磁盘文件的一种方案,这样保留这一时刻redis中的数据镜像,用于意外回滚.redis的snapshot的格 ...
- 解决“chrome提示adobe flash player 已经过期”的小问题
这个小问题也确实困扰我许久,后来看到chrome吧里面有人给出了解决方案: 安装install_flash_player_ppapi, 该软件下载地址:http://labs.adobe.com/do ...
- 电信计费业务:预后融合OCS到底应该实扣还是虚扣?
引入OCS的初衷之一是为了让计费系统能够参与到用户的通讯控制中来,也就是所谓的实时信控.用户在没有余额时,通讯就会被停止,不会造成"天价欠费 ",一方面保障用户的利益,一方面也保障 ...
- windows 7(32/64位)GHO安装指南(U盘引导篇)~
上一篇我们说了怎么制作U盘启动盘,那么这一篇让我们来看看如何进行正确的U盘引导启动. 现在的个人计算机一般分为台式机和笔记本,由于各厂商的喜好不同(开玩笑的啦),所以对于主板的BIOS设置各所不同.进 ...
- Raspberry Pi(树莓派)上安装Raspbian(无路由器,无显示器)
一. 准备工作 1. 树莓派主板 型号:树莓派3 B型 处理器:四核64位ARM Cortex-A53 CPU 内核架构:ARMv8 2. 一张大于8G的TF卡(本人用的是32G的,也作为PiLFS用 ...
- 简单Linux命令学习笔记
1.查看进程 ps -ef | grep 关键字 /*关键字为服务名*/ netstat -unltp | grep 关键字 /*关键字为服务名或者是端口均可*/ 2.杀死进 ...