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退出即可。
如果提示:
标识进程已死,台进程没有启动,这时可以尝试利用:
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/mysqldchkconfig --add mysqld
chkconfig --level 2345 mysqld on
其他问题
退出登录,停止数据库,在启动后台进程,这时如果报错:
看具体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