你的位置:首页 > 数据库

[数据库]Linux下编译安装mysql


安装环境:VMware9(桥接模式) + Linux bogon 2.6.32-642.3.1.el6.x86_64(查看linux版本信息:uname -a)

先给出MySQL For Linux 源码下载地址,是xx.tar.zg格式的,如下: http://www.filewatcher.com/m/mysql-5.0.45.tar.gz.24433261.0.0.html 

 

一、源码包安装mysql。       

-------------预备工作----------      

1:假如下载的文件名为:mysql-5.0.45.tar.gz      

2:copy到 /usr/local/software下(软件包统一放置到该目录下)      

3:groupadd mysql #添加mysql组      

4:useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统

mkdir -p /usr/local/mysql #创建MySQL安装目录

mkdir -p /usr/local/mysql/var #创建MySQL数据库存放目录

chown -R mysql:mysql /usr/local/mysql/var #设置MySQL数据库目录权限

chown -R mysql:mysql /usr/local/mysql #设置MySQL数据库目录权限      

5:cd /usr/local/software #进入到该目录         

 

-----------------------编译过程-----------------------     

 6:tar -zxvf mysql-5.0.45.tar.gz #解压后,在该目录下会出现一个同名的文件夹       

7:cd /usr/local/software/mysql-5.0.45       

8:./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=latin1      

注意(参数讲解):

--prefix=/usr/local/mysql ==> 指定mysql的安装目录。

--with-charset=utf8 ==> 指定mysql的默认字符集

--with-collation=utf8_general_ci ==> 指定mysql的默认字符集

--with-extra-charsets=latin1 ==> 添加额外的编码,为了省事,一般就写all了

9:make      

10:make install      

11:cp support-files/my-medium.cnf /etc/my.cnf #拷贝配置文件。如果/etc/my.cnf已存在,则先备份,再删除      

12:vi /etc/my.cnf #将log-bin=mysql-bin注释掉(关闭binlog日志)        

 

----------------------------安装并初步配置mysql--------------------------       

13:cd /usr/local/mysql       

14:bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var #安装系统数据库   

15:bin/mysqld_safe --user=mysql &  #启动mysql服务        

 

 -----------------------------------------更改mysql的root用户密码----------------------------      

16:bin/mysqladmin -uroot password 123456 #在mysql正常启动的情况下,更改root用户的登录密码       

17:bin/mysql -uroot -p #输入此命令后,会提示你输入root用户密码123456      

18:show databases; #如果查出所有数据库,说明mysql数据库已经成功安装。        

 

------------------------------------------------------把mysql加入到系统服务中(开机自启动)-------------------------------------       

19:cp  /usr/local/mysql/share/mysql/mysql.server  /etc/init.d/mysqld                   

chkconfig --add  mysqld #加入到系统服务中,就可以通过service mysqld start|stop|status|restart等进行管理,很是方便,就不用再到/usr/local/mysql5.0.45/bin/启动mysql了。

注意: mysql.server ==>该脚本主要用于使用系统V-style运行目录的系统的启动和关闭,它通常安装到mysql下。mysql.server脚 本调用mysqld_safe来启动服务器。        

 

------------------------------------------------------------------配置 mysql环境变量------------------------------------------------      

20:cd /root #回到你的个人主目录,我这里是用root登陆的              

cp .bashrc .bashrc.bak #备份一下吧             

 vi .bashrc              

在最后加入:export PATH=/usr/local/mysql/bin:$PATH:.              

source ~/.bashrc #回到终端再输入此命令,以使刚修改的起作用,~代表用户主目录 source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令。

         注:该命令通常用命令“.”来替代。 如:source .bash_rc 与 . .bash_rc 是等效的。 注意:source命令与shell scripts的区别是, source 在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或 alias等等)的命令写进 scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量 时,要用source 命令。              

env #查看一下是否生效(显示系统中已存在的环境变量)      

21:此是用来替换20步的一种方法             

 cp /usr/local/mysql/bin/mysql   /usr/bin/mysql  #把mysql常用的工具目录加入到系统变量目录中去,自己选择性加,这样做主要是可以直接运行该工具,而不需要切换到该 目录下,类似于添加环境变量了。

 

        ------------------------------------------------------------------------------- 让Linux开放3306端口-------------------------------------------       

22:service iptables stop #关闭防火墙              

      vi /etc/sysconfig/iptables #编辑防火墙配置             

     -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT             

      service iptables start #开启防火墙         

 

------------------------------------------------------------------------------- 给root用户开启mysql远程访问权限--------------------------------------------      

23:shutdown -hr now #重启虚拟机。             

ps -ef | grep mysql #查看mysql是否已随开机启动,或者输入:service mysqld status。             

mysql -uroot -p #进入mysql,并输入密码。              

grant all on *.* to root@'%' identified by '123456';              #grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";             

 flush privileges; #为了开发方便,可以让root用户具有远程访问的权限(%就是允许远程登录的意思)              

#最后,再附上一个很好用的mysql客户端,http://download.csdn.net/source/924456  

 

二、默认的mysql数据库目录是 /usr/local/mysql/var        

我们在安装时指定了安装目录为/usr/local/mysql,除了在这里安装所要的文件外,还有一部分用户常用的,可执行二进制文件被放到了/usr/bin中,其实,在/usr/local/mysql/bin下,全都有这些命令了,之所以要在/usr/bin中把那几个命令考过来,就是为了方便,相当于设置环境变量了,你可以echo $PATH一下,里面一定有/usr/bin这个值的。          明白了安装过程,删除mysql也就不足为难了