MySQL编译安装多实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL编译安装多实例相关的知识,希望对你有一定的参考价值。
Centos7上编译安装Mariadb并且实现多实例
准备工作的第7和第8条请阅读,建议编译前安装这两个包
准备工作:
1 iptables关闭;selinux关闭
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭selinux
2 创建管理数据库的mysql用户
useradd -r mysql -s /sbin/nologin
3 安装开发包组"development tools"
yum groupinstall "development tools"
4 如果没有安装cmake就要安装cmake
yum -y install cmake
5 在官方网站下载mariadb-10.2.12.tar.gz的包,此处用此版本进行编译
http://downloads.mariadb.org
6 rz上传包
rz
7 注意:我编译安装的过程中遇到了一个问题,
提示为"remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel."
意思就是缺少ncurses-devel这个包安装后再执行以下编译,但是还要重新解压才可以,所以此处可以在编译安装前提前安装此包
8 安装完上一个还是会报错,此处遇到的是
"CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):Could NOT find GnuTLS "
安装gnutls-devel包解决
9 上述两个问题解决后还需安装libevent-devel包,不然还是编译失败,很坑爹= =
10 还需安装"libaio-deve"此包以及"openssl-devel"还有"libxml2-devel"包
1 解压上传的mariadb-10.2.12.tar.gz包到当前目录下
tar xvf mariadb-10.2.12.tar.gz
2 由于编译安装中指定的数据库目录不存在,所以此处需要手动创建,并修改属主与属组
mkdir /mysqldb
chown mysql.mysql /mysqldb
3 进入到解压后的mariadb-10.2.12目录下开始进行编译
cd mariadb-10.2.12
##########当中prefix指的是程序的安装目录
datadir是存放数据库的目录
sysconfdir下存放的是配置文件
user是指定用户
ssl开启ssl加密
zlib开启压缩模式
charset语言设定为UTF-8
cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql -DMYSQL_DATADIR=/mysqldb/ -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITHOUT_MROONGA_STORAGE_ENGINE=1h
4 编译完成后执行
make && make install
5 编译完成后将/app/mysqldb/bin加入到环境变量
echo ‘PATH=/app/mysqldb/bin:$PATH‘ > /etc/profile.d/mysql.sh
6 给/app/mysql修改属主
chgrp mysql /app/mysql
7 创建多实例数据库的存放目录并修改属主与属组
mkdir -pv /mysqldb/{3306,3307,3308}/{etc,log,data,pid,socket}
8 分别给各个实例创建数据库
/app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/mysqldb/3306/data
/app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/mysqldb/3307/data
/app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/mysqldb/3308/data
9 给3306创建配置文件,由于是编译安装,所以内容在编译的时候都指定了就无需修改
cp /app/mysql/support-files/my-huge.cnf /mysqldb/3306/etc/my.cnf
10 给其余实例创建配置文件并编辑
cp /etc/my.cnf /mysqldb/3307/etc/my.cnf
vim /mysqldb/3307/etc/my.cnf
当中[mysqld]这个模块下面的端口以及路径需要手动更改为3307,并且添加两行
port = 3307
socket = /mysqldb/3307/socket/mysql.sock
datadir = /mysqldb/3307/data
在最后一行添加以下两行;
[mysql_safr]
log-error=/mysqldb/3307/log/mariadb.log
pid-file=/mysqldb/3307/pid/mariadb.pid
cp /etc/my.cnf /mysqldb/3308/etc/my.cnf
当中[mysqld]这个模块下面的端口以及路径需要手动更改为3308,并且添加两行
port = 3308
socket = /mysqldb/3308/socket/mysql.sock
datadir = /mysqldb/3308/data
在最后一行添加以下两行;
[mysql_safr]
log-error=/mysqldb/3308/log/mariadb.log
pid-file=/mysqldb/3308/pid/mariadb.pid
11 上传二进制多实例安装时候的那个启动脚本并进行修改;
chown mysql.mysql mysqld
chmod 700 mysqld
vim mysqld
将端口号修改为3307即可,根据实际情况更改变量值就OK
12 在/mysqldb/3308/下同理,上传脚本文件修改端口
cd /mysqldb/3308/
chown mysql.mysql mysqld
chmod 700 mysqld
vim mysqld
将端口号修改为3308即可;
破解mysql口令,此处修改的是用yum安装的mariadb,所以配置文件是/etc/my.cnf,如果是多实例的那个就要分别去到各个目录下修改配置文件
vim /etc/my.cnf
skip_grant_tables #添加此行,跳过密码检查
以上是关于MySQL编译安装多实例的主要内容,如果未能解决你的问题,请参考以下文章