MySQL安装部署
1.互联网公司安装MySQL规范
2.二进制安装MySQL5.7、MySQL8.0
3.什么是MySQL实例
4.什么是MySQL多实例
5.生产中为什么要使用MySQL多实例
6.MySQL多实例安装部署
7.MySQL多实例部署注意事项
1.互联网公司安装MySQL规范
MySQL安装方式:二进制安装(源码编译安装、yum 、rpm)
MySQL运行用户:
mysql:mysql 注意该用户是虚拟用户,只是用于mysql进程运行使用,不允许登录、不创建家目录
useradd -s /sbin/nologin -M mysql
MySQL目录规范:
下载目录 /server/tools
系统目录 /opt/mysql/mysql-xx.xx
软连接 ln -s /opt/mysql/mysql-xx.xx /usr/local/mysql
数据目录 /data/mysql/mysql+port/{data,logs}
配置文件 /data/mysql/mysql+port/my+port.cnf
MySQL下载
https://www.mysql.com/cn/





2.二进制安装MySQL
vmware虚拟主机安装centos7.6,MySQL版本采用5.7.26和8.0.20,通过xshell管理。
192.168.2.51 MySQL5.7.26
192.168.2.52 MySQL8.0.20
安装前准备:
1、关闭Selinux
vi /etc/selinux/config
#找到 SELINUX= 这一行,将其参数修改为 disabled:
SELINUX=disabled
不设置会影响到systemd的管理启动mysqld服务
2、关闭防火墙
systemctl status firewalld; #查看防火墙状态
systemctl stop firewalld;#临时关闭
systemctl disable firewalld;永久关闭
不关闭需要放开mysql的端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent # --permanent 表示永久生效
firewall-cmd --reload #添加或移除规则后,需要重新加载防火墙才能使更改生效
2.1 MySQL5.7.26安装
。创建MySQL虚拟用户
useradd -s /sbin/nologin -M mysql
id mysql
。创建目录
mkdir -p /server/tools
mkdir -p /opt/mysql
mkdir -p /data/mysql/mysql3306/{data,logs}
cd /server/tools
#生成序列:mkdir {a..e}
#取列:ifconfig eth0 | awk -F' ' 'NR==2{print $2}'
。上传二进制包
rz
yum install -y lrzsz
。解压二进制包
tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#磁盘空间不足:df -h or df -i
。将软件部分移动到指定目录
mv mysql-5.7.26-linux-glibc2.12-x86_64 /opt/mysql/mysql-5.7.26
。创建软连接
ln -s /opt/mysql/mysql-5.7.26/ /usr/local/mysql
。删除mariadb
rpm -e --nodeps mariadb-libs
。配置文件整理
vim /data/mysql/mysql3306/my3306.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/mysql3306/data
socket = /data/mysql/mysql3306/mysql.sock
server_id = 1
port = 3306
log_error=/data/mysql/mysql3306/logs/error.log
log_bin=/data/mysql/mysql3306/logs/mysql-bin
binlog_format=row
gtid_mode=on
enforce_gtid_consistency=true
log_slave_updates=1
max_connections=1024
wait_timeout=60
sort_buffer_size=2M
max_allowed_packet=32M
join_buffer_size=2M
innodb_buffer_pool_size=128M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_log_files_in_group=2
binlog_cache_size=2M
max_binlog_cache_size=8M
max_binlog_size=512M
expire_logs_days=7
slow_query_log=on
slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
long_query_time=0.5
log_queries_not_using_indexes=1
。安装MySQL依赖包
yum install libaio-devel -y
yum install numactl -y
。更改MySQL相关目录的用户组
chown -R mysql:mysql /data/*
。初始化数据库
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data
。加入环境变量
vim /etc/profile
export PATH="/usr/local/mysql/bin:$PATH"
source /etc/profile
。启动MySQL
mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
。查看是否启动成功
netstat -lntup |grep mysql
。连接mysql
mysql -S /data/mysql/mysql3306/mysql.sock
2.2 MySQL8.0.20安装
。创建MySQL虚拟用户
useradd -s /sbin/nologin -M mysql
。创建目录
mkdir -p /server/tools
mkdir -p /opt/mysql
mkdir -p /data/mysql/mysql3306/{data,logs}
cd /server/tools
#课堂小知识:
快速备份:cp a.txt{,.bak}
删除文件:通过mv代替rm,将文件移动到/tmp目录下,等确认该文件后期不再使用,可以进入/tmp目录通过rm进行删除
。上传二进制包
rz
yum install -y lrzsz
。解压二进制包
tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
。将软件部分移动到指定目录
mv mysql-8.0.20-linux-glibc2.12-x86_64 /opt/mysql/mysql-8.0.20
。创建软连接
ln -s /opt/mysql/mysql-8.0.20/ /usr/local/mysql
。删除mariadb
rpm -e --nodeps mariadb-libs
。配置文件整理
vim /data/mysql/mysql3306/my3306.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/mysql3306/data
socket = /data/mysql/mysql3306/mysql.sock
server_id = 1
port = 3306
log_error=/data/mysql/mysql3306/logs/error.log
log_bin=/data/mysql/mysql3306/logs/mysql-bin
binlog_format=row
gtid_mode=on
enforce_gtid_consistency=true
log_slave_updates=1
max_connections=1024
wait_timeout=60
sort_buffer_size=2M
max_allowed_packet=32M
join_buffer_size=2M
innodb_buffer_pool_size=128M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_log_files_in_group=2
binlog_cache_size=2M
max_binlog_cache_size=8M
max_binlog_size=512M
expire_logs_days=7
slow_query_log=on
slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
long_query_time=0.5
log_queries_not_using_indexes=1
。安装MySQL依赖包
yum install libaio-devel -y;
yum install numactl -y;
。更改MySQL相关目录的用户组
chown -R mysql:mysql /data/*
。初始化数据库
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data
。加入环境变量
vim /etc/profile
PATH="/usr/local/mysql/bin:$PATH"
source /etc/profile
。启动MySQL
mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
。查看是否启动成功
netstat -lntup |grep mysql
3.多实例部署及注意事项
。MySQL实例构成
由进程+线程+预分配内存组成,mysql是单进程多线程的结构
进程:正在运行的程序
查看mysql进程:ps -ef |grep mysql
杀死mysql进程:kill 进程号、 pkill 进程名称
线程:Master thread、purge thread 、page cleaner thread、io thread
预分配内存:buffer pool、insert buffer、change buffer、double write
。什么是多实例
在一台机器上由多个实例(进程+线程+预分配内存)构成
。生产中为什么要单机多实例
>单机各种资源有余量:cpu、mem、iops
>主从结构中,从库清闲
>业务高峰期不同
。单机多实例安装部署
共用系统部分,实例之间具有不同的datadir、server_id、port、日志文件、socket文件
创建数据目录
mkdir -p /data/mysql/mysql3307/{data,logs}
创建配置文件
vim /data/mysql/mysql3307/my3307.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/mysql3307/data
socket = /data/mysql/mysql3307/mysql.sock
server_id = 2
port = 3307
log_error=/data/mysql/mysql3307/logs/error.log
log_bin=/data/mysql/mysql3307/logs/mysql-bin
binlog_format=row
gtid_mode=on
enforce_gtid_consistency=true
log_slave_updates=1
max_connections=1024
wait_timeout=60
sort_buffer_size=2M
max_allowed_packet=32M
join_buffer_size=2M
innodb_buffer_pool_size=128M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_log_files_in_group=2
binlog_cache_size=2M
max_binlog_cache_size=8M
max_binlog_size=512M
expire_logs_days=7
slow_query_log=on
slow_query_log_file=/data/mysql/mysql3307/logs/slow.log
long_query_time=0.5
log_queries_not_using_indexes=1
更改MySQL相关目录的用户组
chown -R mysql:mysql /data/*
初始化数据库
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my3307.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3307/data
。多实例的启动关闭
mysqld --defaults-file=/data/mysql/mysql3307/my3307.cnf &
select @@server_id;
select @@port;
。单机多实例部署注意事项
系统共用,实例之间具有不同的datadir、server_id、port、日志文件、socket文件
innodb_buffer_pool_size分配的总量要小于物理内存的80%
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


