前记:html
毕业两年了,前两天换了份工做,由之前的传统行业跳到了互联网行业。以前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境。对于Linux+Tomcat(或其余容器)+Mysql这套以前没用用过。因此利用这周末的我在阿里云上49元搞了个linux(centos 64位)的服务器。mysql
刚开始先装了JDK1.6,安装了Tomcat6.0。这过程当中没有遇到太大的问题, 小问题也google一下就解决了。而周六晚上开始安装Mysql,因而到今天下午为止,终于ok了。linux
可能有人会问,阿里云linux主机不是有一键安装(http://help.aliyun.com/list/11108222.html?spm=5176.7224473.1997282749.12.vB3A4Z)吗,为何不用那个。缘由主要有:首先我这周末的时间比较充裕,其次我以为这些东西不着急的状况下仍是本身摸索着一点点部署比较好,毕竟是第一次学习,仍是不要省这个事儿了,大家觉的呢?不事后边我参考了一键安装中的方法,才解决个人问题,详细见后面的正文。sql
写这篇文章的目的就是在安装mysql的过程当中,遇到的问题,去网上搜,发现获得的答案多数都是你们互相转来转去的,因此想经过这篇文章记录本身实践中验证可行的一套的完整流程,给本身留个备份,也但愿能帮助到其余人。数据库
正文:vim
我在安装的过程当中,主要分为两个阶段,两种方法:centos
第一阶段:8月9号23点至8月10号凌晨3:30左右,采起的是rpm的安装方法,安装简单,可是老是出现各类问题,最终失败。tomcat
第二阶段:8月10号13点至8月10号16:00点左右,采用的仿制一键安装的方法,须要分析,最终安装仍是比较简单的,最终成功。bash
这两个阶段我都会介绍一下,以便供你们参考,或者选取序曲教训。服务器
对于第一阶段:
我主要参考的是这篇文章: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的安装不成功还没找到缘由,因此若是你们有实验过的,麻烦分享如下。至于更详细的原理,但愿你们能一块儿讨论。