众所周知,开源数据库mysql有着其强大的灵活性,利用源码包,我可以自定义安装路径,并且指定存储路径。mysql安装方式不单单只有RPM包、源码包安装方式还有一种更为简便的安装方法(也可以称为熟知的绿色版),更确切的说免安装。
环境描述
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/ ,如需转载,请注明出处,否则将追究法律责任。