微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL多种安装方式重点

@H_404_2@

文章目录

Mariadb安装方式:

  1. 代码:编译安装

  2. 二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用

  3. 程序包管理器管理的程序包
    CentOS 安装光盘
    项目官方:https://downloads.mariadb.org/mariadb/repositories/
    国内镜像:https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/
    https://mirrors.tuna.tsinghua.edu.cn/MysqL/yum/

① .用yum安装

端口号3306

在这里插入图片描述

centos6用的是MysqL-server

服务为MysqLd

MysqL自带一个root账号(得设置密码

在这里插入图片描述

centos7用的是mariabd-server

服务为mariadb-service

直接安装后启动就ok

② . 基于RPM包的安装(yum网络源- --包)

在这里插入图片描述

仓库配置路径

在这里插入图片描述


在这里插入图片描述


在配置yum源的时候尽量用(清华大学的源--------快)

https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64
[root@centos7  yum.repos.d]#cat mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

安装服务器MariaDB-server和客户端Mariadb-client

在这里插入图片描述

③ .二进制安装

在这里插入图片描述

通用二进制格式安装过程mariadb

绿色软件,免安装
已经编译好的,但是没有配置文件

二进制格式安装过程
(1) 准备用户(-r系统用户
groupadd -r -g 306 MysqL
-d指定家目录,用于存放库文件(不能有自动生成.bashr文件,手工建家目录)
useradd -r -g 306 -u 306 –d /data/MysqL MysqL

(2) 准备数据目录,建议使用逻辑卷
mkdir /data/MysqL
chown MysqL:MysqL /data/MysqL

(3) 准备二进制程序
注意:这里必须是/usr/local因为在这之前编译时已经指定了路径
tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -sv mariadb-VERSION MysqL 用软连接—便于更换版本
chown -R root:MysqL /usr/local/MysqL/

(4) 准备配置文件
mkdir /etc/MysqL/
cd mariadb-10.5.8-linux-x86_64/

cp support-files/my-large.cnf /etc/MysqL/my.cnf

vim /etc/MysqL/my.cnf
[MysqLd]中添加选项:
datadir = /data/MysqL
innodb_file_per_table = on
skip_name_resolve = on 禁止主机名解析,建议使用
character-sets-dir=utf8md4 指定字符编码

(5)创建数据库文件
cd /usr/local/MysqL/

启动脚本(用于创建数据库初始化)必须在./scripts/下面(有bin)
./scripts/MysqL_install_db --datadir=/data/MysqL --user=MysqL

(6)准备服务脚本,并启动服务
cp ./support-files/MysqL.server /etc/rc.d/init.d/MysqLd 拷贝至服务目录
chkconfig --add MysqLd 加入服务
chconfig – list 查看
service MysqLd start (centos6和7都这样用)
3306端口就开启了

centos7

在这里插入图片描述

在这里插入图片描述

(7)PATH路径
echo ‘PATH=/usr/local/MysqL/bin:$PATH’ > /etc/profile.d/MysqL.sh
. /etc/profile.d/MysqL.sh 生效

这样MysqL就可以用

如果创建家目录时是自动生成,可能会出现这样
给他删掉就ok

在这里插入图片描述

(8)安全初始化,脚本
/user/local/MysqL/bin/MysqL_secure_installation

二进制安装MysqL 5.7

1 tar xvf MysqL-5.7.26-el7-x86_64.tar.gz -C /usr/local/

2 useradd -r -s /bin/false MysqL

3 cd /usr/local/
ln -s MysqL-5.7.26-el7-x86_64/ MysqL

4
echo ‘PATH=/usr/local/MysqL/bin:$PATH’ > /etc/profile.d/MysqL.sh
. /etc/profile.d/MysqL.sh

5

这一步可以省略
mkdir /data/MysqL
chown MysqL.MysqL /data/MysqL

指定用户,工作路径(会自动生成/data/MysqL
MysqLd --initialize --user=MysqL --datadir=/data/MysqL
要记住这一行----用户账号信息
2019-07-12T07:56:12.921021Z 1 [Note] A temporary password is generated for root@localhost: <G9sV#uF-2sr

在这里插入图片描述


在这里插入图片描述

6 vim /etc/my.cnf
[MysqLd]
datadir=/data/MysqL
socket=/data/MysqL/MysqL.sock
log-error=/data/MysqL/MysqL.log
pid-file=/data/MysqL/MysqL.pid

指定客户端可以找到sock文件
[client]
socket=/data/MysqL/MysqL.sock

7
cp MysqL/support-files/MysqL.server /etc/init.d/MysqLd
chkconfig --add MysqLd
chkconfig --list
service MysqLd start

更改密码
8 MysqLadmin -uroot -p"<G9sV#uF-2sr" password centos

9 MysqL -pcentos

密码在这

在这里插入图片描述

④ . 源码包安装

在这里插入图片描述

源码编译安装mariadb

安装包
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 libdb-cxx-devel
创建逻辑卷
t 指定 8e逻辑卷
fdisk
同步partprobe
创建物理卷
pvcreate /dev/sda6
创建卷组(指定PE为16M)
vgcreate vg0 /dev/sda6 -s 16M
创建逻辑卷
lvcreate -n MysqL -l 100% free vg0
关联挂在data/MysqL目录上
mkdir /data/MysqL
格式化
mkfs.xfs /dev/vg0/MysqL
写到 /etc/fstab文件

vim /etc/fstab
UUID=9638a6f6-4715-44e7-9c95-6a010f5568ef  /data/MysqL  ext4  defaults  0 0   

mount -a 重读配置文件

做准备用户和数据目录
useradd –r –s /sbin/nologin –d /data/MysqL/ MysqL

chown MysqL.MysqL /data/MysqL/
解包
tar xvf mariadb-10.2.18.tar.gz
cmake 编译安装
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译
编译选项:https://dev.MysqL.com/doc/refman/5.7/en/source-configuration-options.html

cd mariadb-10.2.18/

cmake . \
-DCMAKE_INSTALL_PREFIX=/app/MysqL \
-DMysqL_DATADIR=/data/MysqL/ \
-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

编译安装
make && make install    并行执行

提示:如果出错,执行rm -f CMakeCache.txt

在这里插入图片描述

准备环境变量
echo ‘PATH=/app/MysqL/bin:$PATH’ > /etc/profile.d/MysqL.sh
. /etc/profile.d/MysqL.sh
生成数据库文件
cd /app/MysqL/
scripts/MysqL_install_db --datadir=/data/MysqL/ --user=MysqL
准备配置文件
cp /app/MysqL/support-files/my-huge.cnf /etc/my.cnf
准备启动脚本
cp /app/MysqL/support-files/MysqL.server /etc/init.d/MysqLd
启动服务
chkconfig --add MysqLd ;service MysqLd start

五. 实现数据库的多实例(重点)

一个机器上安装多个版本的数据库,但是相互独立

1.端口号独立
2.仓库独立(不同的位置)

mkdir -pv /MysqL/{3306,3307,3308} /{data,bin.log,socket,pid,etc} 做三个文件夹里面的数据库都独立
./data-------->/var/liv/MysqL/ 将对应的数据库文件放到对应的目录

MysqL_install_db   --datadir=/MysqL/3306/data/  --user=MysqL
MysqL_install_db   --datadir=/MysqL/3307/data/  --user=MysqL
MysqL_install_db   --datadir=/MysqL/3308/data/  --user=MysqL

修改属性
chown -R MysqL.MysqL /MysqL

配置文件/MysqL/etc------->/etc/my.conf

cp  /etc/mycnf  /MysqL/3306/etc/
vim /MysqL/3306/etc/
[MysqLd]
port=3306
datadir=/MysqL/3306/data/    指定数据库目录
socate=/MysqL/3306/socket/MysqL.sock  指定scket文件
[MysqLd_safe]
log-error=/MysqL/3306/log/mariadb.log   指定日志
pid-file=/nysql/3306/pid/mariadb.pid

删掉这个

在这里插入图片描述


同理生成3307和3308的目录
用sed命令sed -i 's/3306/3307/ ' 文件

用yum安装1个低版本的3306------在

设置服务脚本/MysqL/3306/bin----->
将脚本加上x权限后加入到/MysqL/3306/bin/中
复制3306/bin到3307和3308中
然后用sed命令替换,脚本里面的port为3307和 3308

在这里插入图片描述


最后根据脚本----执行服务命令(启动)
/MysqL/3306/bin/MysqL start
这样就可以查看到队医你个的端口号
并且会生成对应的日志
MysqL 可以连接数据库
-S 指定哪个sock文件

在这里插入图片描述


设置口令

MysqLadmin -S /MysqL/3306/socket/MysqL.sock  passwd centos

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐