1.Mariadb官网:https://mariadb.org/
2.Mariadb下载地址:https://mariadb.org/download/
3.Mariadb多版本下载路径:https://downloads.mariadb.org/
4.官网指向清华镜像地址:https://downloads.mariadb.org/mariadb/10.2.25/#mirror=tuna
5.清华镜像站:https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.2/centos7-amd64/
6.也可选择:系统->系统版本->Mariadb版本->镜像源,页面下方会出现yum源地址,复制粘贴到本地yum源即可使用:
https://downloads.mariadb.org/mariadb/repositories/#version=10.2&mirror=tuna
#yum 安装下几个文件路径
[root@CentOS7 ~]#rpm -ql MariaDB-server
/usr/share/mysql/systemd/mariadb.service
/usr/bin/mysql_secure_installation
/usr/bin/mysql_install_db
/etc/my.cnf.d/server.cnf
/var/lib/mysql/
环境:
Linux centos7 【 [CentOS Linux release 7.6.1810 (Core)]】
mysql二进制包:mariadb-10.2.25-linux-x86_64.tar.gz
安装步骤:
1.添加用户以及数据路径目录
[root@CentOS7 data]#mkdir /data/mysql #创建数据存放路径目录
[root@CentOS7 data]#useradd -r -s /sbin/nologin -d /data/mysql mysql #创建mysql 用户,用户类型为系统用户-r;登录类型为nologin
[root@CentOS7 data]#chown mysql:mysql /data/mysql #修改数据目录所有者:所属组
[root@CentOS7 data]#tar xvf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local/ # /usr/local 是二进制包编译时定义好的
[root@CentOS7 data]#cd /usr/local/ #进入安装目录
[root@CentOS7 local]#ln -s mariadb-10.2.25-linux-x86_64/ mysql
4.处理目录权限问题
[root@CentOS7 local]#chown -R root:root /usr/local/mysql/
[root@CentOS7 local]#cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
[root@CentOS7 local]#vim /etc/my.cnf
# The MySQL server
[mysqld]
datadir=/data/mysql #添加设置数据文件路径
port = 3306
socket = /tmp/mysql.sock
6.准备数据库文件:
# 进入安装目录
[root@CentOS7 local]#cd /usr/local/mysql/
# 执行scripts目录下mysql_install_db脚本,指定数据存放路径以及用户
[root@CentOS7 mysql]#./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
[root@CentOS7 ~]#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
8.启动服务
[root@CentOS7 ~]#service mysqld start
9.设置环境变量
# 设置环境变量方便在shell直接执行mysql命令连接mysql
[root@CentOS7 ~]#echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
# 重新读配置文件使能生效
[root@CentOS7 ~]#source /etc/profile.d/mysql.sh
10.安全初始化
# 执行安全初始化脚本
[root@CentOS7 /]#./usr/local/mysql/bin/mysql_secure_installation
//... 安全初始化脚本处理的是如下事项
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
1.Set root password? [Y/n] y
2.Remove anonymous users? [Y/n] y
3.Disallow root login remotely? [Y/n] y
4.Remove test database and access to it? [Y/n] y
5.Reload privilege tables now? [Y/n] y
...//
环境:
Linux版本:centos7 [CentOS Linux release 7.6.1810 (Core)]
mysql版本:mariadb-10.2.25.tar.gz
安装步骤:
1.安装编译需要的编译器包
yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel
2.添加用户以及数据存放路径目录
1.[root@CentOS7 data]#mkdir /data/mysql #创建数据存放路径目录
2.[root@CentOS7 data]#useradd -r -s /sbin/nologin -d /data/mysql mysql #创建mysql 用户,用户类型为系统用户-r;登录类型为nologin
3.[root@CentOS7 data]#chown mysql:mysql /data/mysql #修改数据目录所有者:所属组
4.[root@CentOS7 data]#tar xvf mariadb-10.2.25.tar.gz #解压源码包
3.设置编译参数
[root@CentOS7 data]#cd mariadb-10.2.25/
[root@CentOS7 mariadb-10.2.25]#cmake . \
> -DCMAKE_INSTALL_PREFIX=/app/mysql \ # 指定安装目录
> -DMYSQL_DATADIR=/data/mysql/ \ # 指定数据存放路径
> -DSYSCONFDIR=/etc/ \ # 指定配置文件my.cnf路径
> -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 \ # readline库
> -DWITH_SSL=system \ #系统传输使用SSL加密
> -DWITH_ZLIB=system \ #系统传输使用zlib压缩,节约带宽
> -DWITH_LIBWRAP=0 \ # libwrap库
> -DENABLED_LOCAL_INFILE=1 \ # 启用加载本地数据
> -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ # 指定UNIX socket文件路径
> -DDEFAULT_CHARSET=utf8 \ #设置默认字符集
> -DDEFAULT_COLLATION=utf8_general_ci # 设置默认字符校对
重新编译时,需要清除旧的对象文件和缓存信息
#make clean
#rm -f CMakeCache.txt
#rm -rf /etc/my.cnf
4.执行 make
[root@CentOS7 mariadb-10.2.25]#make -j 8
[root@CentOS7 mariadb-10.2.25]#make install
[root@CentOS7 mariadb-10.2.25]#cd /app/mysql/scripts/
[root@CentOS7 scripts]#ls scripts/ # 查看到脚本:scripts/mysql_install_db
[root@CentOS7 mysql]#./scripts/mysql_install_db --datadir=/data/mysql --user=mysql # 指定数据存放路径,用户
注:不要进入/app/mysql/scripts/执行脚本,否则找不到/app/mysql/bin/my_print_defaults;
7.设置配置文件,用模板覆盖/etc/my.cnf
[root@CentOS7 mysql]#cp support-files/my-huge.cnf /etc/my.cnf
[root@CentOS7 mysql]#vim /etc/my.cnf
# The MySQL server
[mysqld]
datadir=/data/mysql #添加数据存放路径
port = 3306
socket = /data/mysql/mysql.sock
数据库配置模板my-small.cnf 支持内存小于64M、my-medium.cnf 支持内存32-64M、my-large.cnf 支持内存512M、my-huge.cnf 支持内存1G-2G:
8.准备启动脚本
[root@CentOS7 support-files]#cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
9.启动服务
[root@CentOS7 ~]#service mysqld start
[root@CentOS7 ~]#chkconfig --add mysqld #如需设置开机启动
[root@CentOS7 ~]#chkconfig --list
10.准备环境变量
[root@CentOS7 mysql]#echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@CentOS7 mysql]#source /etc/profile.d/mysql.sh
11.安全初始化
# 执行安全初始化脚本
[root@CentOS7 /]#/app/mysql/bin/mysql_secure_installation
应用场景:测试环境试验
yum 安装mysql方式实现多实例
1.准备配置文件
2.准备数据库文件
3.准备启动脚本
具体步骤:
1.用清华源,安装mariadb-10.2.25:
[root@CentOS7 yum.repos.d]#yum install mariadb-server
2.创建多实例目录:
[root@CentOS7 ~]#mkdir -pv /mysql/{3306,3307,3308}/{data,bin,etc,log,socket,pid}
3.修改多实例目前权限
[root@CentOS7 ~]#chown -R mysql.mysql /mysql
4.用mariadb自带工具实现在多实例目录中生成数据库文件:
[root@CentOS7 ~]#mysql_install_db --datadir=/mysql/3306/data --user=mysql
[root@CentOS7 ~]#mysql_install_db --datadir=/mysql/3307/data --user=mysql
[root@CentOS7 ~]#mysql_install_db --datadir=/mysql/3308/data --user=mysql
5.准备配置文件
[root@CentOS7 ~]#cp /etc/my.cnf /mysql/3306/etc/
[root@CentOS7 ~]#vim /mysql/3306/etc/my.cnf
[mysqld]
port=3306
datadir=/mysql/3306/data/
socket=/mysql/3306/socket/mysql.sock #服务启动时自动生成
symbolic-links=0
[mysqld_safe]
log-error=/mysql/3306/log/mariadb.log
pid-file=/mysql/3306/pid/mariadb.pid #服务启动时自动生成
[root@CentOS7 ~]#cp /mysql/3306/etc/my.cnf /mysql/3307/etc/
[root@CentOS7 ~]#cp /mysql/3306/etc/my.cnf /mysql/3308/etc/
[root@CentOS7 ~]#sed -i 's/3306/3307/' /mysql/3307/etc/my.cnf
[root@CentOS7 ~]#sed -i 's/3306/3308/' /mysql/3308/etc/my.cnf
6.准备服务脚本
[root@CentOS7 ~]#cd /mysql/3306/bin/
[root@CentOS7 bin]#vim mysqld
#!/bin/bash
port=3306
mysql_user="root"
mysql_pwd="centos"
cmd_path="/usr/bin"
mysql_basedir="/mysql"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf &> /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
fi
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 2
function_start_mysql
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
[root@CentOS7 bin]#chmod +x mysqld
[root@CentOS7 bin]#cp /mysql/3306/bin/mysqld /mysql/3307/bin/
[root@CentOS7 bin]#cp /mysql/3306/bin/mysqld /mysql/3308/bin/
[root@CentOS7 bin]#sed -i 's/3306/3307/' /mysql/3307/bin/mysqld #一行内没有多个符合匹配条件的,不用加g
[root@CentOS7 bin]#sed -i 's/3306/3308/' /mysql/3308/bin/mysqld
7.启动各实例的服务
[root@CentOS7 bin]#/mysql/3306/bin/mysqld start
[root@CentOS7 bin]#/mysql/3307/bin/mysqld start
[root@CentOS7 bin]#/mysql/3308/bin/mysqld start
#通过查看端口号以及目录结构确定多实例服务是否成功启动
[root@CentOS7 bin]#tree /mysql/3307 #自动生成如下文件则启动成功
├── log
│ └── mariadb.log
├── pid
│ └── mariadb.pid
└── socket
└── mysql.sock
#需要再服务启动后修改,没有启动服务会报错要求检查服务是否启动;
#不修改密码,服务关闭时报错,即使启动脚本中密码置空,每次关闭时仍会有输入密码提示;
[root@CentOS7 bin]#mysqladmin -S /mysql/3307/socket/mysql.sock password centos
9.连接数据库
# -p与密码间不能有空格,有空格回车还会提示输入密码
[root@CentOS7 bin]#mysql -S /mysql/3306/socket/mysql.sock -u root -pcentos
[root@CentOS7 bin]#mysql -S /mysql/3307/socket/mysql.sock -u root -pcentos
[root@CentOS7 bin]#mysql -S /mysql/3308/socket/mysql.sock -u root -pcentos