Mariadb 安装方式
1, 源代码(Source): 编译安装
2, 二进制格式 (Binaries) 的程序包: 展开至特定路径, 并经过简单配置后即可使用
3, 程序包 (Package) 管理器附案例的程序包
实验一: 使用 yum 源安装
实验: centos7.4 二进制安装 mariadb-10.2.15
1, 检查环境
- #rpm -q mariadb-server
- 2,
- #vim /etc/yum.repos.d/base.repo #修改 yum 仓库
- [mariadb]
- name = MariaDB
- baseurl = http://yum.mariadb.org/10.2/centos7-amd64
- gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
- gpgcheck=1
- #cat /etc/resolv.conf #查看外网地址, 如果有 DNS 配置说明网是通的
- 3,
- #yum install mariadb-server
4, 添加安全加固
#mysql_secure_installation
是否设置 root 口令 Y
是否删除匿名用户 Y
是否允许 root 远程登录 N
是否删除 test 数据路 Y
privilege tables Y
用户账号
支持使用通配符:
% 匹配任意长度的任意字符
- 匹配任意单个字符
客服端命令不需要加分号, 服务器端命令需要加分号
家目录最好放在逻辑卷中, 方便扩容
实验二: 通用二进制格式安装过程
实验: centos7.4 二进制安装 mariadb-10.2.15-linux-x86_64.tar.gz
1, 检查环境
- iptables
- selinux
- mariadb-service
2, 下载二进制文件包
mariadb-10.2.15-linux-86_64.tar.gz
3, 准备用户账号
- useradd -r -d /data/mysqldb -s /sbin/nologin mysql #数据存放的路径
- getent passwd mysql
- id mysql
4, 解压包到默认安装路径
编译时默认的安装路径
- configure --prefix=/usr/local/
- tar xvf mariadb-10.2.15-linux-x86_64/ -C /usr/local
- cd /usr/local/
- ln -s mariadb-10.2.15-linux-x86_64/ mysql
- ll mysql/
5, 修改文件权限
- chown -R root:root mysql/
- ll -d mysql/
6, 修改 PATH 变量, 方便 mysql 目录下的二进制程序执行
- ls/usr/local/mysql/bin
- echo PATH=/usr/local/mysql/bin:$PATH> /etc/profile.d/mysql.sh
- ./etc/profile.d/mysql.sh
7, 创建逻辑卷(可选)
- mkdir -pv /data/mysqldb
- ...
7, 创建数据库路径
- mkdir /data/mysqldb
- chown mysql.mysql /data/mysqldb
- chmod 770 /data/mysqldb
- ll -d /data/mysqldb/
8, 生成系统自带数据库相关文件
- cd /usr/local/mysql #必须在此目录下执行
- scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql# 进去目录反而不可以
出现 OK 说明在数据文件下创建数据库文件创建成功
ls data/mysqldb/ #确认对应的配置文件是否生成
9, 生成 mysql 配置文件
- ll /usr/local/mysql/support-files #可查看数据库自带的各种配置模版
- cp /etc/my.cnf /etc/my.cnf.bak
- cp my-huge.cnf /etc/my.cnf #最好备份原来的文件
- vim /etc/my.cnf
- [mysqld]
- datadir =/data/mysqldb ## 添加此行, 指定数据库存放路径
wq 保存
添加权限
setfacl -R -m u:mysql:rwx /usr/local/mysql/
10, 设置启动程序
- cp support-files/mysql.server /etc/init.d/mysql
- #chkconfig --add mysqld
- #service mysql start 启动数据库
- #chkconfig --list
- ss -ntul #确认 3306 端口已打开
11, 添加安全加固
#mysql_secure_installation #初始化脚本启动, 设置密码等.
安装完成默认数据库的路径在 / var/lib/mqsql / 下, 修改数据路径的方法:
- vim /etc/my.cnf
- cd /etc/my.cnf.d
- ls
- vim server.cnf #修改数据库路径
- [mysqld]
- datadir=/data/mysqldb #修改数据库路径为此
- mkdir /data/mysqldb -pv #创建数据库路径
- chown mysql.mysql /data/mysqldb/ #改所有者, 所属主
- mysql_install_db --datadir=/data/mysqldb --user=mysql #创建数据库的方法
- systemctl restart mariadb
实验三: 源码编译安装
实验: centos7.4 源码编译安装 mariadb-10.2.15
1, 准备好源码安装包
mariadb-10.2.15.tar.gz
2, 安装包
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, 创建用户和数据目录
- mkdir /data
- useradd -r -s /sbin/nologin mysql
4, 解压缩源码包
- tar -xvf mariadb-10.2.15.tar.gz
- cd mariadb-10.2.15
5, 创建数据库路径
- getent passwd mysql
- mkdir /data/mysqldb
- chown mysql.mysql /data/mysqldb
- chmod 770 /data/mysqldb
- ll -d /data/mysqldb/
6,cmake 编译安装
cd mariadb-10.2.15/
编译选项
- make . \
- -DCMAKE_INSTALL_PREFIX=/app/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=/app/mysql/mysql.sock \
- -DDEFAULT_CHARSET=utf8 \
- -DDEFAULT_COLLATION=utf8_general_ci
7, 编译安装
make -j 4 && make install
8, 配置环境变量
- echo 'PATH=/app/mysql/bin:$PATH'>/etc/profile.d/mysql.sh
- ./etc/profile.d/mysql.sh
- echo $PATH
9, 生成数据库文件
- cd /app/mysql/
- scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql --basedir=/app/mysql
- setfacl -R -m u:mysql:rwx /app/mysql/
- ll /data/mysqldb/
- getfacl /app/mysql/
10, 准备配置文件
- cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
- vim /etc/my.cnf
- [mysqld]
- datadir=/data/mysqldb
11, 准备启动脚本
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
12, 启动服务
- chkconfig --add mysqld
- service mysqld start
启动文件失败, 没有权限设置一下权限
- setfacl -R -m u:mysql:rwz /app/mysql/
- service mysql start
- ss -ntl
- mysql
实验四: centos7.4 yum 安装包 mysql(mariadb)实现多实例(instance)
实验预期: 在一台虚拟机上安装三套 mariadb 数据库, 数据库版本 5.5
思路: 三套配置文件(日志文件, 配置文件, 数据库文件), 三个不同端口
实验四: centos7.4yum 安装包 mysql(mariadb)实现多实例
1, 安装第一个实例
rpm -ql mariadb-server |grep multi
/usr/bin/mysql_multi 本身是用来实现多实例的, 但是依赖软件包
yum install mariadb-server
2, 规划目录
- mkdir /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data} -pv
- tree /mysqldb/
- /mysqldb/
- 3306
- ?? data
- ?? etc
- ?? log
- ?? pid
- ?? socket
- 3307
- ?? data
- ?? etc
- ?? log
- ?? pid
- ?? socket
- 3308
- data
- etc
- log
- pid
- socket
3, 修改目录及文件权限
- getent passwd mysql #指定用户
- ll -d /mysqldb/
- chown -R mysql.mysql /mysqldb/
- ll -d /mysqldb/
4, 创建各自数据库文件
mysql_install_db --datadir=/mysqldb/3306/data --user=mysql [--basedir=/usr / 二进制安装]
- mysql_install_db --datadir=/mysqldb/3307/data --user=mysql
- mysql_install_db --datadir=/mysqldb/3308/data --user=mysql
- ll /mysqldb/3306/data
注意: basedir 的路径需要查一下, systemctl start mariadb 方法 mysql 登录, 查 show variables like '%basedir%'
tree mysqldb
5, 创建各自配置文件
- cat /etc/my.cnf
- cp /etc/my.cnf /mysqldb/3306/etc/
- cp /etc/my.cnf /mysqldb/3307/etc/
- cp /etc/my.cnf /mysqldb/3308/etc/
6, 修改各自配置文件
- vim /mysqldb/3306/etc/my.cnf
- [mysqld]
- port=3306
- datadir=/mysqldb/3306/data
- socket=/mysqldb/3306/socket/mysql.sock
- [mysqld_safe]
- log-error=/mysqldb/3306/log/mariadb.log
- pid-file=/mysqldb/3306/pid/mariadb.pid
- ......
- #!includedir /etc/my.cnf.d #添加此行注释
- wq
同样的方法修改 3307 和 3308
- vim /mysqldb/3307/etc/my.cnf
- ......
- #!includedir /etc/my.cnf.d
- %s/3307/3308//etc/cnf.d
- vim /etc/my.cnf /mysqldb/3308/etc/
- ......
- #!includedir /etc/my.cnf.d
- %s/3307/3308//etc/cnf.d
- 7,
准备一个脚本
rz
此处有一个 mysqld 脚本
- chmod 700 mysqld #设置 700 权限
- cp mysqld /mysqldb/3306/
- cp mysqld /mysqldb/3307/
- cp mysqld /mysqldb/3308/
注意修改启动服务脚本中的不同的参数
- #!/bin/bash
- port=3306
- mysql_user="root"
- mysql_pwd=""cmd_path="/usr/bin"mysql_basedir="/nysqldb"mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock
用同样的方法修改 / mysqldb/3307 和 3308 中的内容
ll /mysqldb/330{6,7,8}/mysqld
8, 确认系统自带示例停止服务
- systemctl stop mariadb #停止系统的服务
- ll /mysqldb/3308/mysqld
9, 启动多实例服务
- /mysqldb/{3306,3307,3308}/mysqld start
- ss -ntl
10, 测试多实例
- mysql -S /mysqldb/3306/socket/mysql.sock
- MariaDB [(none)]> show variables like '%port%'
- updata mysql.user set password=password("centos")where user='root'
- flush privileges
- /mysqldb/3306/mysqld/ stop
- /mysqldb/3306/mysqld start #启动自己配置的服务
- ss -unl
- mysql -s /mysqldb/3306/socket/mysql.sock# 连接服务
来源: http://www.bubuko.com/infodetail-2634401.html