三种方式安装mysql及多实例安装

一、yum安装方式

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           #修改数据目录所有者:所属组

在这里插入图片描述
2.解压缩

[root@CentOS7 data]#tar xvf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local/	# /usr/local 是二进制包编译时定义好的

在这里插入图片描述
3.创建软链接

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

在这里插入图片描述
5.准备配置文件

[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

在这里插入图片描述
7.准备服务启动脚本

[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

在这里插入图片描述
5 执行make install

[root@CentOS7 mariadb-10.2.25]#make install

在这里插入图片描述
6.生成数据文件:执行scripts下脚本

[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

四、mysql多实例安装

应用场景:测试环境试验

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

在这里插入图片描述
8.mysql工具修改密码:

#需要再服务启动后修改,没有启动服务会报错要求检查服务是否启动;
#不修改密码,服务关闭时报错,即使启动脚本中密码置空,每次关闭时仍会有输入密码提示;
[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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值