ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 安装编译好的二进制mysql并更改路径

安装编译好的二进制mysql并更改路径

原创 Linux操作系统 作者:kngnng 时间:2013-02-22 18:26:08 0 删除 编辑

     众所周知,开源数据库mysql有着其强大的灵活性,利用源码包,我可以自定义安装路径,并且指定存储路径。mysql安装方式不单单只有RPM包、源码包安装方式还有一种更为简便的安装方法(也可以称为熟知的绿色版),更确切的说免安装。

环境描述  

1.系统:linux centos 6
2.数据库:mysql 5.6 二进制源码包

说明
      Mysql二进制源码包,不再需要进行编译,直接拷/usr/local/mysql即可,
因为默认已经在对源码编译后指定到该目录。现在需要更改这个路径,及拷
贝到其他自定义目录下来启动mysql,需要一系列工作。


安装
1、  创建自定义安装目录

mkdir /export1/server/mysql –p

2、  解压缩源码包

tar zxvf mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz

3、  将mysql-5.6.10-linux-glibc2.5-x86_64目录下所有文件拷贝到/export1/server/mysql下

4、  创建mysql用户

    useradd mysql

5、  权限更改

chown mysql:mysql /export1 –R

6、  拷贝配置文件

cp /export1/server/mysql/support-files/my-medium.cnf /etc/my.cnf

如果没有,需要在其他地方拷贝一份

注意:my.cnf文件中的路径,如果是/usr/local/mysql,则将其替换为/export1/server/mysql

7、  初始化数据库

cd /export1/server/mysql

./scripts/mysql_install_db –user=mysql 

注意:指定mysql用户很重要,后面会说明

如果遇到一些权限问题导致初始化没有成功,很有可能是由于:

1)/export1  base目录权限造成

2)可以尝试指定basedir和datadir选项

--basedir=/export1/server/mysql    

--datadir=/export1/server/mysql/data

8、  启动mysql后台进程

./bin/mysqld_safe –user=mysql &

如果报错,可以尝试修改./bin/mysqld_safe中内容用/export1/server/mysql替换/usr/local/mysql

当提示如下:

Starting mysqld daemon with databases from /export1/server/mysql/data 

说明启动正常这时回车或者ctrl+c退出即可。

 如果提示:

mysqld_safe mysqld from pid file /export1/server/mysql/data /*.pid ended

标识进程已死,台进程没有启动,这时可以尝试利用:

1)初始化数据库,指定basedir和datadir,也可以在my.cnf中配置

2)具体可以看error日志,找到错误

9、  后台进程成功启动后,可以登录数据库

./bin/mysql

如果提示错误:

error 2002(HY000):Cant't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 

这个错误表示找不到sock文件,默认mysql会去找sock文件

/var/lib/mysql/mysql.sock,我们可以更改为其他的路径:

如:/tmp/mysql.sock或者/export1/server/mysql/mysql.sock等,

但是该目录要有mysql读写权限。

10、此时可以正常登录

        ./bin/mysql

11、停止数据库

我们可以利用以下方式停止数据库

1)./bin/mysqladmin shutdown

2)ps –A | grep mysql 杀进程

3)利用系统服务脚本,后面说明配置过程

12、创建系统服务脚本

cp ./support-files/mysql.server /etc/init.d/mysqld

替换脚本中的路径将/usr/local 替换为/export1/server

测试利用/etc/inti.d/mysqld 停止、启动数据库

添加系统服务:

 chmod 700 /etc/init.d/mysqld
 chkconfig --add mysqld
 chkconfig --level 2345 mysqld on 

其他问题

退出登录,停止数据库,在启动后台进程,这时如果报错:

mysqld_safe mysqld from pid file /export1/server/mysql/data /*.pid ended

看具体error log:

提示:

/export1/server/mysql/bin/mysqld: File '/export1/server/mysql/logbin/mysql-bin.index' not found (Errcode: 13 - Permission denied)

2013-02-22 14:31:44 2914 [ERROR] Aborting

在具体看下binlog日志权限,发现所属人和所属组变为root;

说明在初始化数据库时没有指定--user=mysql,导致新创建binlog日

志文件为root创建,mysql不可读;

更改logbin目录及其下文件为mysql:mysql;

再重新初始化mysql启动mysql发现正常;


安装脚本参考

#!/bin/bash

#===============================================================

#准备工作

#1、拷贝mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz到机器

#2、拷贝mysql配置文件到/etc

#===============================================================

#解压缩mysql二进制源码包到制定指定目录,可自定义目录

tar zxvf /software/mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz -C /software

 

#创建自定义mysql存放目录

mkdir /export1/server/mysql -p

 

#拷贝解压好的mysql源码包文件到自定义mysql目录

cp -a /software/mysql-5.6.10-linux-glibc2.5-x86_64/* /export1/server/mysql

 

#创建mysql用户

useradd mysql

 

#更改自定义mysql目录权限所属人和所属组

chown mysql:mysql /export1 -R

 

#拷贝mysql配置文件,并修改路径

rm -rf /etc/my.cnf

cp /etc/my.cnf.bak /etc/my.cnf

vi /etc/my.cnf << EOF

:%s#/usr/local#/export1/server#g

:%s#/var/lib#/export1/server#g

:wq

EOF

 

#进入自定义mysql目录下

cd /export1/server/mysql

 

#初始化mysql数据库,注意指定basedir和datadir

./scripts/mysql_install_db --user=mysql --basedir=/export1/server/mysql --datadir=/export1/server/mysql/data

 

#创建mysql启动、停止等脚本文件,并修改文件内容中的路径

cp ./support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld << EOF

:%s#/usr/local#/export1/server#g

:wq

EOF

chmod 700 /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 2345 mysqld on

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26252014/viewspace-754606/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-09-06

  • 博文量
    36
  • 访问量
    243015