日期:2014-05-16  浏览次数:20618 次

Linux下安装mysql

最近服务器上要用到mysql,在查看mysql自带的INSTALL-SOURCE,和在网上查找了很多样的资料,经过一番痛苦的折腾,终于总结出个还算可以的教程,贴上来备忘。

1、下载MySQL免安装版软件,下载地址:http://dev.mysql.com/downloads,
?这里我下载的是mysql-5.1.50-linux-i686-icc-glibc23.tar.gz

2、创建mysql组,建立mysql用户并加入到mysql组中。
???? (不同版本的Unix中,groupadd和useradd的语法可能会稍有不同。)
???? #groupadd mysql
???? #useradd -g mysql mysql
?
3、进入先前存放mysql压缩包文件的目录,我这里是/usr/mysql,将免安装版mysql解压缩,并在此目录下建立名为mysql的软链接。
?建不建软链接,根据实际需要,这个不是必需的。本人在这里并没有建立软链接。

?# cd /usr/mysql
?# tar zxvf mysql-5.1.50-linux-i686-icc-glibc23.tar.gz
?
?# ln -s mysql-5.1.50-linux-i686-icc-glibc23 mysql

4、接下来是第4步,网上很多资料包括官方示例里面都没有,但缺少这一步将导致后面的安装无法继续。上一步解压后,将多出一个mysql-5.1.50目录,进入该目录,使用configure 命令? 我在这里指定了安装目录为 /usr/mysql
?# cd mysql-5.1.50????? //如果使用软链接,cd mysql即可
?# ./configure --prefix=/usr/mysql
?
?在这一步时,出现了错误:
?
?configure: error: no acceptable C compiler found in $PATH
?
?google了一下,说是没有安装gcc组件的原因,网上说下载gcc安装包,手工装上,这里用了自己的解决办法:
?
?(在线安装gcc,输入以下命令即可,比较方便)
?
?# yum -y install gcc
?
?再次configure,又报出了错误:
?checking for termcap functions library… configure: error: No curses/termcap library found
?
?分析错误时,认为是缺少了,ncurses安装包,安装之:
?# yum -y install ncurses
?
?提示,发现该安装包已经是存在的,纠结了半天,终于找到原因,原来还要安装ncurses的开发包:
?(先前试过 yum -install ncurses-devel,不知道为什么不行)
?# yum -install ncurses ncurses-devel
?
?再次configure,终于成功。
?
?接下来make和make install:
?# make
?
?又报出错误:
?./depcomp: line 571: exec: g++: not found
?
?又是缺少了组件,再次安装:
?# yum intall gcc-c++
?
?之后make和make install正常,时间有点久,耐心点吧
?
5、添加MySQL配置文件。

?设置一个选项文件,使用support-files目录中的一个作为模板。在这个目录中有4个模板文件,是根据不同机器的内存定制的。

?# cp mysql/support-files/my-medium.cnf /etc/my.cnf
?
6、设定目录访问权限,用mysql_install_db创建MySQL授权表初始化,并设置mysql,root帐号访问权限。

?# cd mysql-5.1.50??????? //到mysql压缩包的解压缩目录

?# chown -R mysql .?????? //这里的mysql指的是用户 后面的.不能省略

?# chgrp -R mysql .

?//关键在这一步,很少能够一次成功,本人就没有成功。网上大多数都是同一文章转来转去,对此并没有说明。在这里备注一下:因为这里初始化数据库要用到下面的data目录,而data目录起初可能是不存在的,所以会导致失败。如果失败请按指定的路径创建data目录并确定权限没问题后重试,一般就可成功
?# scripts/mysql_install_db –user=mysql????

?# chown -R root .

?//这里的data目录可能会有所变化,像我在装的时候就没有data目录,而且默认的配置文件里指定的是var目录:/usr/mysql/var 但是var目录也不存在,需要手工创建。当然这个名称可以手工修改,只要与文件夹对应即可,手工创建时注意权限问题,不然会初始化数据库不成功,我就是在这卡了不少时间
?# chown -R mysql data?
?
?注意:以上命令中的”.”符号不能少
?
?
7、运行mysql。

?# bin/mysqld_safe –user=mysql

?(我的bin目录是在/usr/mysql,configure时指定的,具体看你情况)
?
?如果没有问题的话,应该会出现类似这样的提示:

?100906 10:44:54 mysqld_safe Logging to ‘/usr/local/mysql/data/localhost.localdomain.err’.

?100906 10:44:54 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

?注意:如果光标停留在提示下闪烁,其实已经启动成功了,关闭当前shell终端,重新开启一个shell终端即可

?如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,Log文件的通常在/etc/my.cnf中配置,大多数问题是权限设置不正确引起的。

?
?至此,mysql安装启动成功。

?

8、使用mysql
?安装完成后,可以用root用户登录,默认密码为空,直接进入即可:
??# mysql -u root -p
?该命令可能要到bin目录下执行才可以,那是因为还没有添加环境变量:
??# vi /etc/profile
?在profile文件中添加下面两行:
??PATH=/usr/mysql/bin:$PATH
??export PATH
?然后wq保存,现在你就可以方便的使用mysql命令了。
?
?为了安全,可以修改root用户密码:
?# /usr/mysql/bin/mysqladmin -uroot password newpassword
?
?如果要远程登录,别忘了把用户的host改成‘%’,并且确认防火墙已经开放3306端口

?

9、配置mysql为服务方式,自动启动?
?# cp? /usr/mysql/mysql-5.1.58/support-files/mysql.server /etc/rc.d/init.d/mysql
?# chmod 700 /etc/rc.d/init.d/mysql
?# chkconfig --add mysql
?# chkconfig --level 3 mysql on
?
?手动启动服务:
?# service mysql start
?手动停止服务:
?# service mysql stop
?手动重启服务:
?# service mysql restart