centos7安装mysql5.7多实例

centos7安装mysql5.7多实例

方法一:

1.环境配置

[root@localhost ~]# yum -y install libaio

2.解压包

[root@localhost ~]# tar xvf mysql-5.7.23-el7-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -s mysql-5.7.23-el7-x86_64 mysql
#添加环境变量
[root@localhost local]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

3.添加用户,创建目录

[root@localhost ~]# useradd -r -s /sbin/nologin mysql
[root@localhost ~]# mkdir /data/mysql/{mysql3306,mysql3307,mysql3308}/{etc,bin,data,log,pid,socket} -pv
[root@localhost ~]# chown -R mysql.mysql /data/mysql

4.修改配置文件

[root@localhost ~]# vi /data/mysql/mysql3306/etc/my.cnf
###########################################################
[mysqld]
datadir=/data/mysql/mysql3306/data
socket=/data/mysql/mysql3306/socket/mysql.sock
port=3306

[mysqld_safe]
log-error=/data/mysql/mysql3306/log/mysql.log
pid-file=/data/mysql/mysql3306/pid/mysql.pid
#############################################################

5.初始化数据文件

[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --datadir=/data/mysql/mysql3306/data --user=mysql
2020-03-11T03:11:17.648280Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-03-11T03:11:18.160698Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-03-11T03:11:18.243602Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-03-11T03:11:18.307805Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f9cd0615-6345-11ea-a72e-000c2994e329.
2020-03-11T03:11:18.309055Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-03-11T03:11:18.310296Z 1 [Note] A temporary password is generated for root@localhost: duG=Zpj>p93K #记住此处密码

6.启动3306实例

[root@localhost ~]# mysqld_safe --defaults-file=/data/mysql/mysql3306/etc/my.cnf --user=mysql &

7.修改初始密码

[root@localhost ~]# mysqladmin -uroot -p'duG=Zpj>p93K' password 123456  -S /data/mysql/mysql3306/socket/mysql.sock

8.关闭数据库

[root@localhost ~]# mysqladmin -uroot -p123456 -S /data/mysql/mysql3306/socket/mysql.sock shutdown

附:启动关闭脚本

#!/bin/bash

port=3306
mysql_user="root"
mysql_pwd="123456"
mysql_basedir="/data/mysql"
mysql_sock="${mysql_basedir}/mysql${port}/socket/mysql.sock"

function_start_mysql()
{
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      mysqld_safe --defaults-file=${mysql_basedir}/mysql${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"
       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

3307和3308一样安装

方法二:

1.配置环境

[root@localhost ~]# yum -y install libaio perl perl-devel

2.解压二进制文件

[root@localhost ~]# tar xvf mysql-5.7.23-el7-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# ln -s /usr/local/mysql-5.7.23-el7-x86_64 /usr/local/mysql
[root@localhost ~]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

3.创建用户和数据文件

[root@localhost ~]# useradd -r -s /sbin/nologin mysql
[root@localhost ~]# mkdir /data/mysql/{mysql3306,mysql3307,mysql3308,log}/{data,log,socket,pid} -pv
[root@localhost ~]# chown -R mysql.mysql /data/mysql

4.修改my.cnf

[root@localhost ~]# vi /etc/my.cnf
#####################################################
[mysqld_multi]
mysqld    = /usr/local/mysql/bin/mysqld
mysqladmin = /usr/local/mysql/bin/mysqladmin
log        = /data/mysql/log/mysql_multi.log
user       = root
password   = 123456
 
[mysqld3306]
character_set_server= utf8
init_connect= 'SET NAMES utf8'
basedir= /usr/local/mysql
datadir= /data/mysql/mysql3306/data
socket = /data/mysql/mysql3306/socket/mysql.sock
user=mysql
port=3306
performance_schema=off
innodb_buffer_pool_size=32M
bind_address=0.0.0.0
skip-name-resolve=0

[mysqld3307]
character_set_server= utf8
init_connect= 'SET NAMES utf8'
basedir= /usr/local/mysql
datadir= /data/mysql/mysql3307/data
socket = /data/mysql/mysql3307/socket/mysql.sock
user=mysql
port=3307
performance_schema=off
innodb_buffer_pool_size=32M
bind_address=0.0.0.0
skip-name-resolve=0

[mysqld3308]
character_set_server= utf8
init_connect= 'SET NAMES utf8'
basedir= /usr/local/mysql
datadir= /data/mysql/mysql3308/data
socket = /data/mysql/mysql3308/socket/mysql.sock
user=mysql
port=3308
performance_schema=off
innodb_buffer_pool_size=32M
bind_address=0.0.0.0
skip-name-resolve=0
##########################################################

5.初始化数据库实例

[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/data/mysql/mysql3306/data
#最后一行密码请记录下来
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/data/mysql/mysql3307/data
#最后一行密码请记录下来
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/data/mysql/mysql3308/data
#最后一行密码请记录下来

6.启用ssl

[root@localhost bin]# mysql_ssl_rsa_setup --initizlize --user=mysql --datadir=/data/mysql/mysql3306/data
[root@localhost bin]# mysql_ssl_rsa_setup --initizlize --user=mysql --datadir=/data/mysql/mysql3307/data
[root@localhost bin]# mysql_ssl_rsa_setup --initizlize --user=mysql --datadir=/data/mysql/mysql3308/data

7.修改数据库密码

[root@localhost ~]# mysqladmin -uroot -p'?BN+gGq;+7SY' -S /data/mysql/mysql3306/socket/mysql.sock password 123456
[root@localhost ~]# mysqladmin -uroot -p'YXKkvku?7B<&' -S /data/mysql/mysql3307/socket/mysql.sock password 123456
[root@localhost ~]# mysqladmin -uroot -p'pq+V:IMs8yBr' -S /data/mysql/mysql3308/socket/mysql.sock password 123456

8.修改mysqld_multi

[root@localhost ~]# vi /usr/local/mysql/bin/mysqld_multi
####################################################################
my $com= join ' ', 'my_print_defaults ', @defaults_options, $group; 
替换为: 
my $com= join ' ', 'my_print_defaults -s', @defaults_options, $group;
######################################################################

9.启动,关闭,显示

[root@localhost ~]# cp ../support-files/mysqld_multi.server /etc/init.d/mysqld_multi
[root@localhost ~]# /etc/init.d/mysqld_multi start
[root@localhost ~]# /etc/init.d/mysqld_multi stop
[root@localhost ~]# /etc/init.d/mysqld_multi restart
[root@localhost ~]# /etc/init.d/mysqld_multi report
#单个实例启动
[root@localhost ~]# /etc/init.d/mysqld_multi start 3306
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值