MySQL多种安装方式(重点)

Mariadb和mysql安装方式:

  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/

初始化脚本提高安全性
运行脚本:mysql_secure_installation

设置数据库管理员root口令
禁止root远程登录
删除anonymous用户帐号
删除test数据库

① .用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
在这里插入图片描述

③ .二进制安装

http://yum.mariadb.org/10.4/centos7-amd64/
在这里插入图片描述

通用二进制格式安装过程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 -y 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=/apps/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.仓库独立(不同的位置)

yum install mariadb-server

做三个文件夹里面的数据库都独立

mkdir  -pv  /mysql/{3306,3307,3308}/{data,bin.log,socket,pid,etc}
chown -R mysql.mysql /mysql

./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

配置文件/mysql/etc------->/etc/my.conf
分别做 3306,3307,3308的

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

启动脚本
#vim /mysql/3306/bin/mysqld 
#!/bin/bash
port=3306
mysql_user="root"
mysql_pwd="magedu"
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 --defaultsfile=${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@centos8 ~]#chmod +x /mysql/3306/bin/mysqld 
#重复上述过程,分别建立33073308的启动脚本


在这里插入图片描述
最后根据脚本----执行服务命令(启动)

/mysql/3306/bin/mysql  start

这样就可以查看到队医你个的端口号
并且会生成对应的日志

用mysql 可以连接数据库
-S 指定哪个sock文件
在这里插入图片描述
设置口令

mysqladmin -uroot -S /mysql/3306/socket/mysql.sock  passwd centos
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值