1. 编译前准备环境

	CentOS7.4
	编译安装 mariadb-10.2.12.tar.gz
	iptables -vnL					#查看防火墙状态
	systemctl stop firewall	  #关闭防火墙
	getenforce					#查看SELinux状态
	setenforce 0			  #关闭SELinux	
	rpm -q mariadb-server			#检查mariadb是否安装

2. 安装开发相关包组

	yum groupinstall 'development tools'
	yum install bison bison-devel  zlib-devel libcurl-devel libarchive-devel  boost-devel  gcc  gcc-c++ cmake libevent-devel gnutls-devel libaio-devel openssl-devel  ncurses-devel libxml2-devel

3. 创建mysql系统用户

	useradd -r mysql -s /sbin/nologin

4. 解压源码包

	tar xvf  mariadb-10.2.12.tar.gz -C /usr/local/

5. 进入解压包路径

	cd /usr/local/mariadb-10.2.15/

6. 执行cmake make && make install(初始化参数)

	cmake . \
	-DCMAKE_INSTALL_PREFIX=/data/mysql \
	-DMYSQL_DATADIR=/data/mysqldb/ \
	-DSYSCONFDIR=/etc \
	-DMYSQL_USER=mysql \
	-DWITH_INNOBASE_STORAGE_ENGINE=1 \
	-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
	-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
	-DWITH_PARTITION_STORAGE_ENGINE=1  \
	-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
	-DWITH_DEBUG=0 \
	-DWITH_READLINE=1 \
	-DWITH_SSL=system \
	-DWITH_ZLIB=system \
	-DWITH_LIBWRAP=0 \
	-DENABLED_LOCAL_INFILE=1  \
	-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
	-DDEFAULT_CHARSET=utf8 \
	-DDEFAULT_COLLATION=utf8_general_ci

7. 开始编译安装

	make -j 8 && make install

8. 准备环境变量

	echo 'PATH=/data/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
	source     /etc/profile.d/mysql.sh		#立即生效环境变量

9. 把/data目录下的mysql目录 属主mysql 属组mysql

	chown -R mysql.mysql /data/mysql/   

10. 准备配置文件

	#复制配置文件模板覆盖到配置文件里修改
	cp -a /data/mysql/support-files/my-huge.cnf  /etc/my.cnf
	vim /etc/my.cnf
	socket= /data/mysqldb/mysql.sock		#修改数据指向路径
	datadir=/data/mysqldb				 #指定数据库位置

11. 准备启动脚本

	cp -a /data/mysql/support-files/mysql.server  /etc/init.d/mysqld
	chmod +x /etc/init.d/mysqld			#以防万一给予启动脚本执行权限

12. 创建数据库库目录

	mkdir /data/mysqldb

13. 初始化数据库

	cd /data/mysql/
	#指定以mysql用户的身份   路径在配置文件指定(数据存放位置)
	scripts/mysql_installl_db --user=mysql   --datadir=/data/mysqldb

14. 添加开机启动

	chkconfig --add mysqld	#添加服务到开启启动项
	chkconfig  mysqld on	#设置开机自动启动
	chkconfig --list mysqld	#查看服务是否添加成功

15. 启动服务

	systemctl start mysqld	#开启服务
	ss -tnl   #查看3306是否处于监听状态

16. 编译安装完成

	mysql默认没有密码  记得设置mysql root用户的密码 

17. 运行安全脚本(修改数据库管理员密码)

	mysql
	#查看user表里的用户,密码,主机
	select user,host,password from mysql.user;
	#使用password函数加密口令,然后修改root密码
	update mysql.user set password=password("centos") where user='root';

18. 报错解决方案

	提示报错可能是权限不足 用户没有访问数据库存放位置的权限
	两种解决方案 A:修改配置文件的socket路径:直接指向到数据库(注意目录需赋予权限)
	 B:修改父级目录执行权限
	例: /data/mysqldb (数据库路径)
	chown mysql.mysql /data