第1章、MySQL安装部署

内容分享3周前发布
0 0 0

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/
第1章、MySQL安装部署
第1章、MySQL安装部署
第1章、MySQL安装部署
第1章、MySQL安装部署
第1章、MySQL安装部署

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%

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...