`

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics