1.准备环境
1.1安装mariadb
systemctl enable mariadb
1.2 设置mariadb开机启动
systemctl enable mariadb
1.3 依赖组件
yum install gcc gcc-c++ openssl openssl-devel libaio libaio-devel ncurses ncurses-deve
yum -y install numactl
1.4 解压MySQL安装包
tar -xvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.xz
1.5 创建用户
#新建mysql用户、mysql用户组,如果之前已经建立过,就不用建立了
groupadd mysql
#给mysql添加用户 为 mysql
useradd mysql -g mysql
2.安装多实列
2.1 准备安装多实例的文件夹
mkdir -p /mysql/{3306,3307,3308,3309}/data
为路径授权,以免后期操作出现权限问题
chown -R mysql:mysql /mysql
2.2 创建MySQL参数配置文件
[mysqld]
user=mysql
basedir = /opt/environment/mysql/mysql8.0
[mysqld_multi]
mysqld=/opt/environment/mysql/mysql8.0/bin/mysqld_safe
mysqladmin=/opt/environment/mysql/mysql8.0/bin/mysqladmin
log=/opt/environment/mysql/mysql8.0/mysqld_multi.log
[mysqld3306]
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/mysql8.0/3306/data
port=3306
server_id=3306
socket=/tmp/mysql_3306.sock
log-error = /mysql8.0/3306/error_3306.log
[mysqld3307]
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/mysql8.0/3307/data
port=3307
server_id=3307
socket=/tmp/mysql_3307.sock
log-error=/mysql8.0/3307/error_3307.log
[mysqld3308]
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/mysql8.0/3308/data
port=3308
server_id=3308
socket=/tmp/mysql_3308.sock
log-error=/mysql8.0/3308/error_3308.log
2.3 初始化数据库
# 初始化3306实例--初始密码:uheIfhru7s?q
/opt/environment/mysql/mysql8.0/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/opt/environment/mysql/mysql8.0/ --datadir=/mysql8.0/3306/data
# 初始化3307实例--初始密码:4ua(q,T&=d,U
/opt/environment/mysql/mysql8.0/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/opt/environment/mysql/mysql8.0/ --datadir=/mysql8.0/3307/data
# 初始化3308实例--初始密码:DMdzj%xp!0V-
/opt/environment/mysql/mysql8.0/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/opt/environment/mysql/mysql8.0/ --datadir=/mysql8.0/3308/data
注意,初始化实例的最后一行记录了root的初始密码
2020-06-10T08:06:41.893823Z 0 [System] [MY-013169] [Server] /opt/environment/mysql/mysql8.0/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 20250
2020-06-10T08:06:44.276492Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: uheIfhru7s?q
2.4 设置环境变量
vim /etc/profile
# 在文件末尾添加下面信息
export PATH=/opt/environment/mysql/mysql8.0/bin:$PATH
#使环境变量生效
source /etc/profile
2.5 mysqld_multi管理多实例
使用mysqld_multi启动3306端口的实例
mysqld_multi start 3306
使用mysqld_multi启动全部实例
mysqld_multi start
使用mysqld_multi查看实例状态
mysqld_multi report
使用mysqld_multi关闭
mysqld_multi stopt
注:使用mysqld_multi关闭多实例数据库目前来看比较麻烦,需要在my.cnf文件的[mysqld_multi]模块里面配置用户密码,并且各个数据库的用户密码都需要相同,否则无法关闭。
[mysqld]
user=mysql
basedir = /opt/environment/mysql/mysql8.0
user=root
pass=123456@cP
使用mysqladmin关闭
mysqladmin -h127.0.0.1 -uroot -p123456@cP -P3306 shutdown
3.访问多实例数据库
3.1 登录方式
方式一:127
mysql -uroot -puheIfhru7s?q -P3306 -h127.0.0.1
方式二:使用socket文件连接
mysql -uroot -puheIfhru7s?q -S /tmp/mysql_3306.sock