###MySQL/Mariadb介绍
- MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)
- MySQL官网 最新版本5.7GA/8.0DMR
- MySQL5.6变化比较大,5.7性能上有很大提升
- Mariadb为MySQL的一个分支,官网最新版本10.2
- MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.
- Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6
- Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的, DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本
###安装介绍 MySQL的几个常用安装包:rpm,源码,二进制免编译
二进制免编译包:软件先进行编译,再打包压缩。好处在于不用花时间编译配置。 二进制包区分平台,使用uname -a查看平台,X86为64位,i686为32位。
[root@jiangshan ~]# uname -a
Linux jiangshan 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
###安装 ####下载二进制包
[root@jiangshan src]# cd /usr/local/src
[root@jiangshan src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@jiangshan src]# ls
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
解压
tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
## 移动并重命名
[root@jiangshan src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
[root@jiangshan src]# cd /usr/local/mysql
####创建用户
[root@jiangshan mysql]# useradd mysql
[root@jiangshan mysql]# mkdir /data/
####初始化
[root@jiangshan mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
## --user指定用户
##--datadir 数据存放目录(data目录必须存在)
## --defaults-file=/etc/my.cnf指定配置文件位置 不加默认为/etc/my.cnf
#####初始化错误
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
## 解决
yum install -y perl-Data-Dumper.x86_64
#####检测 查看是否输出两个ok或者echo $?是否输出0
[root@localhost mysql]# echo $?
0
####拷贝配置文件
## my-default.cnf为配置文件模板
cp support-files/my-default.cnf /etc/my.cnf #配置文件
cp support-files/mysql.server /etc/init.d/mysqld #启动脚本
- my-default.cnf为配置文件模板
- 配置文件的默认位置为/etc/my.cnf,如果配置文件没有放在这。启动时需要指定配置文件位置,–defaults-file=filename
默认有my.conf文件可以修改
[root@jiangshan mysql]# rpm -qf /etc/my.cnf
mariadb-libs-5.5.52-1.el7.x86_64
[root@jiangshan mysql]# vim /etc/my.conf
[mysqld]
datadir=/var/lib/mysql ##改为 /data/mysql
socket=/var/mysq/lib/mysql.sock ##改为 /tmp/mysql.sock
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log 加#注释
lpid-file=/var/run/mariadb/mariadb.pid 加#注释
####修改配置文件
vi /etc/init.d/mysqld
-
datadir:/usr/local/mysql 软件安装目录
-
basedir: /data/mysql 数据存放目录
服务启动
[root@jiangshan mysql]# /etc/init.d/mysqld start
####关闭MySQL
service mysqld stop
[root@jiangshan mysql]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@jiangshanmysql]# ps aux |grep "mysql"
root 4608 0.0 0.0 112664 976 pts/0 R+ 23:23 0:00 grep --color=auto mysql
killall mysqld
[root[@allen1](https://my.oschina.net/u/2359274) mysql]# killall mysqld
[root[@allen1](https://my.oschina.net/u/2359274) mysql]# ps aux |grep "mysql"
root 4608 0.0 0.0 112664 976 pts/0 R+ 23:23 0:00 grep --color=auto mysql
kill与killall的区别
-
kill PID也是可以结束进程的,但是有些服务是由多个进程支持。例如,MySQL服务就有多个进程,MySQL在写数据时,如果一个进程被kill了,那么还在内存未写入的数据就会丢失。而使用killall 服务名,会等待内存的数据写入磁盘后在结束所有服务进程。
-
如果使用killall mysql还是杀不死进程,这个时候不要使用-9强制杀死,因为数据量大,所以这个时候我们只能等待。等数据处理完之后,进程自动会被kill掉。