CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
1.关于mysql?
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
特点:
Mysql是开源的,所以你不需要支付额外的费用。
Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
MySQL使用标准的SQL数据语言形式。
Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。
2.关于编译安装?
编译:将源代码变为机器可执行的代码文件。
安装:将可执行文件安装到操作系统里,才可以使用。
3.安装编译代码需要的依赖包(工具和库)
//安装开发工具包
//需要注意的是这些都是常用的依赖包,为了防止报错,装多点吧,如果想知道每个工具包具体是干啥玩意的,请自己问度娘便知我这里因时间为题就不一一为大家介绍了。
//这里的cmake工具我们还可以使用编译的方式安装,如有兴趣请到我的CSDN中下载:http://download.csdn.net/detail/xushouwei/9599540
yum -y groupinstall "Development Tools"
yum -y install openssl* zlib* pcre* ncurses* make cmake vsftpd lrzsz gcc gcc-c++ gcc-g77 flex bison* autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel gettext-devel pcre-devel net-snmp-devel curl-devel perl-DBI vixie-cron crontabs wget
如图1所示:

4.检查是否安装有MySQL Server并卸载
//检查是否安装有MySQL
rpm -qa|grep mysql
如图2所示:

//强制卸载已有的mysql,并查看
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
rpm -qa|grep mysql
如图3所示:

至此,我们编译安装mysql的前期工作就已经准备好了!
5.使用root用户新建普通用户(非root用户),并查看用户信息
groupadd formal
useradd -g formal -m formal
id formal
如图4所示:

6.上传/下载mysql源码包
获取mysql源码安装包方式一:
//到mysql官网直接下载
下载地址:http://dev.mysql.com/downloads/mysql/5.5.html
如图5所示:

获取mysql源码安装包方式一:
//使用wget命令直接从网络中下载
wget 源码包地址
因我这里已经提前准备好源码包,所以我使用第一种方式获取。如有需要可到我的CSDN中下载:http://download.csdn.net/download/xushouwei/9599890
7.切换普通用户formal,进入到/home/formal目录,在/home/formal目录下新建bak以及mysql目录
su - formal
cd /home/formal
mkdir bak mysql
如图6所示:

8.进入到bak目录,并上传源码包。
cd bak
rz
如图7所示:

9.解压mysql-5.5.45.tar.gz,进入到mysql-5.5.45目录
tar -zxvf mysql-5.5.45.tar.gz
cd mysql-5.5.45
如图8所示:

7.编译过程检查(mysql5.6版本以上需要用cmake安装,这是必须的,其他软件也可以使用cmake安装,但是使用cmake安装的前提是源码包下有没有CMakeLists.txt这个文件,有的话就可以使用cmake .)
//编译的时候一定要注意有没有空格,否则会报错。
cmake . -DCMAKE_INSTALL_PREFIX=/home/formal/mysql -DMYSQL_UNIX_ADDR=/home/formal/mysql/mysql_6603.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/home/formal/mysql/data -DMYSQL_USER=formal -DMYSQL_TCP_PORT=6603 -DWITHOUT_PARTITION_STORAGE_ENGINE=1
如图9所示:

//查看“编译过程检查”【上一步执行任务是否成功】是否成功,0表示成功,其他标识失败。
如图10所示:

//常见编译参数,可参考如下表,更多参数,请找度娘.(注:参数中的目录以及端口根据个人情况而定)
如图11所示:

8.编译、安装(此过程会耗费一段时间请耐心等待)
make && make install
如图12所示:

//查看“编译、安装”【上一步执行任务是否成功】是否成功,0表示成功,其他标识失败。
如图13所示:

9.配置mysql
#复制mysql服务启动配置文件,将mysql的启动服务添加到系统服务中,并查看
cd /home/formal/mysql
cp support-files/my-medium.cnf ./my.cnf
如图14所示:

注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /home/formal/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!
#配置my.cnf 在mysqld下面添加
vi my.cnf
basedir = /home/formal/mysql/
datadir = /home/formal/mysql/data
如图15所示:

#在log-bin=mysql-bin下面添加 防止磁盘被无限制占用
max_binlog_size=100M
expire_logs_days=7
如图16所示:

#创建系统数据库的表--指定了配置文件和用户
scripts/mysql_install_db --defaults-file=./my.cnf --user=formal
如图17所示:

//查看执行“创建系统数据库的表--指定了配置文件和用户”【上一步执行任务是否成功】是否成功,0表示成功,其他标识失败。
如图18所示:

10.设置mysql
#启动mysql
cd /home/formal/mysql/bin
./mysqld_safe &
如图19所示:

//登陆数据库
#进入mysql命令行模式 修改Mysql的root用户密码以及打开远程连接
./mysql -u root –p//无密码,直接回车即可
如图20所示:

#为root添加远程连接的能力。
#修改密码
#让设置生效
use mysql;
grant all privileges on *.* to root@"%" identified by "root";
update user set Password = password('xushouweidb') where User='root';
flush privileges;
exit;
如图21所示:

11.设置mysql服务跟随系统自动启动
方式一:采用配置服务的方式
cp /home/formal/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
方式二:使用定时任务执行脚本的方式
//我这里主要介绍定时任务执行脚本方式。方式一大家不妨参照网络资源或者执行以上命令代码形式,这里我不在多说!
//进入到/home/formal/目录,在该目录下创建task目录
cd /home/formal/
mkdir task
ll
如图22所示:

//进入到task目录,创建mysql_auto_restart.sh以及mysql_auto_restart.log文件,并查看。
cd task/
touch mysql_auto_restart.sh mysql_auto_restart.log
ll
如图23所示:

//编辑mysql_auto_restart.sh,添加如下脚本代码,shell脚本编程,请参考网络资源,我这里就不一一为大家介绍。
vi/vim mysql_auto_restart.sh
添加脚本代码:
#!/bin/bash
#/usr/bin/nmap localhost | grep 3306
#lsof -i:3306
MYPORT=6603
MYSQLPORT=`netstat -na|grep "LISTEN"|grep $MYPORT|awk -F[:" "]+ 'NR==1 {print $4}'`
MYSQL=/home/formal/mysql/bin/mysql
MYUSER=root
MYPASS=xushouweidb
function checkMysqlStatus(){
$MYSQL -u$MYUSER -p$MYPASS --connect_timeout=5 -e "show databases;" &>/dev/null 2>&1
if [ $? -ne 0 ]
then
restartMysqlService
if [ "$MYSQLPORT" == $MYPORT ];then
echo `date`":$MYSQL restart successful......"
else
echo `date`":$MYSQL restart failure......"
echo `date`":$MYSQL is down, please try to restart mysql by manual!" > /var/log/mysqlerr
echo "这里发邮件。。"
fi
else
echo `date`":$MYSQL is running..."
fi
}
function restartMysqlService(){
echo `date`":try to restart the mysql service......"
/home/formal/mysql/bin/mysqld_safe
MYSQLPORT=`netstat -na|grep "LISTEN"|grep $MYPORT|awk -F[:" "]+ 'NR==1 {print $5}'`
}
if [ "$MYSQLPORT" == $MYPORT ]
then
checkMysqlStatus
else
restartMysqlService
fi
//插入以上代码后按ESC->:wq保存退出即可!
如图24所示:

//为mysql_auto_restart.sh执行脚本文件添加可执行权限
chmod +x ./mysql_auto_restart.sh
ll
如图25所示:

//查看并添加定时执行任务
//执行该语句的时候可能会提示您:no crontab for formal
crontab -l
crontab -e
//添加定时任务代码
* * * * * /home/formal/task/mysql_auto_restart.sh >> /home/formal/task/mysql_auto_restart.log
如图26所示:

//执行mysql_auto_restart.sh脚本(这里你也可以不执行,因为已经设置了定时执行时间)
./mysql_auto_restart.sh
//如果mysql服务已经启动会报如下信息,提示您已经启动mysql服务
如图27所示:

//使用root用户重启centos服务器,登陆服务器,并切换为formal用户,登陆mysql。查看mysql服务是否跟随机器启动。
reboot
su - formal
cd /home/formal/mysql/bin
./mysql -uroot -pxushouweidb
如图28所示:

至此,centos6.7使用非root用户安装mysql并使用定时任务执行脚本的方式随机启动mysql服务,流程已经走完,大家对立面错别字或者其他问题有问题的话欢迎联系我,我立刻改正,微信号:Jasxu360,谢谢!
CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动的更多相关文章
- Centos6.5下使用LAMP搭建discuz论坛(编译安装 PS :自学中 写的不好请见谅)
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.27.tar.gz 下载Apache软件包 wget http://downloads.my ...
- Linux系统下给非root用户添加sudo权限
Linux系统下给非root用户添加sudo权限 有时,在linux系统中非root用户运行sudo命令,会提示类似信息: xxx is not in the sudoers file. This ...
- linux下使用非root账号安装zabbix-client
linux下使用非root账号安装zabbix-client使用非root账号rusky登录:[rusky@testServer]#tar zxvf zabbix-2.4.5.tar.gz #cd z ...
- CentOS6.4下Mysql数据库的安装与配置,导入数据库,授权远程ip
卸载掉原有mysql 由于mysql数据库在Linux上实在是太流行了,所以眼下下载的主流Linux系统版本号基本上都集成了mysql数据库在里面,我们能够通过例如以下命令来查看我们的操作系统上是否已 ...
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- perl 下使用非root用户安装模块
perl下安装模块可以使用cpan命令,但是通常我们不具有root用户权限,所以只能以sudo方式安装模块. 例如需要安装Net::SCP::Expect模块, 执行cpan Net::SCP::Ex ...
- linux下用非root用户重启导致ssh无法连接的问题
问题描述 安装好了centOS服务器,一直用Secure CRT工具通过ssh服务来远程连接linux,很方便的进行各种操作.今天偶然尝试了一下在非root的一般用户下执行重启服务器的命令,发现一般用 ...
- CentOS6.3下搭建vsftpd(采用虚拟用户设置)
CentOS6.3如果在安装的时候所有安装选项都打勾的话就含有单间vsftpd必备的软件:vsftpd.pam*.db4* 检查是否安装: [root@centos6 ~]# rpm -qa | gr ...
- CentOS 7下OpenLDAP编译安装及配置
一.环境 Server:基于CentOS-7-x86_64-1511 Server IP: 172.18.12.203 二.软件获取 OpenLDAP OpenLDAP官网下载地址:http://ww ...
随机推荐
- 使用curl获取乱码问题
今天通过curl获取百度地图接口数据,获取到居然是乱码,于是我查看是不是编码问题,发现返回的编码和自己的编码都是utf-8, 继续找原因,发现header报文中 Content-encoding 为 ...
- Android media媒体库分析之:MediaProvider
在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvid ...
- js判断是否是正整数,js判断是否是数字
//判断字符串是否为数字 function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; if (!re.test(input.rate.value) ...
- 关于Ubuntu下apt的一些用法及和yum的比较
Fedora和Red Hat有yum安装软件,Ubuntu有apt工具. apt简单的来说,就是给Ubuntu安装软件的一种命令方式. 一.apt的相关文件 /etc/apt/sources.list ...
- 为图片存储而作——记一次UEditor源码的修改
本文版权归博客园和作者吴双本人共同所有. 写在前面 这是一个数据爆发的网络时代,大家习惯于浏览图文直观带给我们的快速信息.大图片的存储和浏览经常会成为Web服务器的瓶颈.试想如果你的Web服务器依然 ...
- Ubuntu 下开发 Android 环境变量设置
-----------------------------------------------------ANDROID_SDK_HOME:/home/cmm/avds PATH:/home/cmm/ ...
- smarty(原理概述)
转自:http://www.cnblogs.com/RightDear/archive/2012/11/06/2756218.html smarty(模板引擎,模板技术) 使用smarty主要是为了实 ...
- decoder3_8
这两天回归书本,继续阅读书上的内容,此时的体会与刚开始学那会的体会是不一样的,比如3_8decoder,之前就认为可以用case来写,而书上有一种更简便的方式来描述,带给你新的思路,既然有新方式可以描 ...
- 利用fiddler给android模拟器抓包
启动模拟器 setting---wireless&networks----mobile networks----access pointnames -------------------- 然 ...
- CodeForces 618C CodeForces 618C
第一反应是在凸包上随便找一条边,然后找剩下n-2个点里面距离这条边最短的一个点,这三点就构成了符合要求的三角形..然而..精度被卡死. 换种思路,随便找两个点P1,P2,找剩下n-2个点中哪一个点与P ...