- 目标
- 1. 准备工作
- 1.1 安装包
- 1.2 安装环境
- 1.2.1 权限用户
- 1.2.2 目录规划
- 安装目录
- 数据目录
- 1.2.3 环境配置
- 1.3 配置文件
- 3307
- 3308
- 3309
- 2. 安装
- 3. 启动
- 3.1 启动前环境检查及准备
- 检查依赖
- 创建软连接
- 配置path
- 3.2 初始化
- 3.3 启动
- 3.4 登录
- 4. 主从搭建
在一台虚拟机上搭建三个mysql5.7.30实例
1. 准备工作 1.1 安装包- wget 直接下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz /root
- 本地下载的包,rz -be 上传到Linux
# 建立MySQL用户"mysql"
useradd -g mysql -u 2000 -s /sbin/nologin -d /usr/local/mysql -MN mysql
1.2.2 目录规划
安装目录
- 安装目录:程序文件目录
- 对应配置文件 my.cnf 的basedir参数
mkdir /application/ # 创建mysql的安装位置数据目录
- 数据目录:数据文件目录
- 对应配置文件 my.cnf 的datadir参数
mkdir -p /data/mysql/330{6..9}/{data,logs,tmp}
chown -R mysql:mysql /data/mysql/*
1.2.3 环境配置
1)修改sysctl.conf
echo "vm.swappiness=1" >> /etc/sysctl.conf # 设置内核少用交换 https://cloud.tencent.com/developer/article/1503835
sysctl -p # sysctl 命令被用于在内核运行时动态地修改内核的运行参数 -p 载入sysctl配置文件 如-p后未指定路径,则载入 /etc/sysctl.conf
2)配置limits.conf
echo '* soft nofile 65535' >> /etc/security/limits.conf # 任何用户可以打开的最大的文件描述符数量 https://cloud.tencent.com/developer/article/1403636
echo '* hard nofile 65535' >> /etc/security/limits.conf
3)配置ulimit
echo "ulimit -n 65535" >> /etc/rc.local # rc.local脚本是在系统初始化级别脚本运行之后再执行https://www.huaweicloud.com/articles/c1d9caaa0619eabf224e98c6a0aefb7a.html
ulimit -n 65535
4)配置IO调度
echo deadline > /sys/block/sda/queue/scheduler # deadline只分读写两个队列,对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略 https://www.cnblogs.com/bamanzi/p/linux-disk-io-scheduler.html
grubby --update-kernel=ALL --args="elevator=deadline"
5)关闭NUMA
sed -i '/^numa/c numa=off' /etc/default/grub
grub2-mkconfig -o /etc/grub2.cfg >/dev/null
6)关闭SELinux
vi /etc/selinux/config # 修改内容为SELINUX=disabled
1.3 配置文件
修改配置文件 vim /data/mysql/3307/my.cnf vim /data/mysql/3308/my.cnf vim /data/mysql/3309/my.cnf3307
[mysqld] user =mysql basedir = /application/mysql-5.7.30-linux-glibc2.12-x86_64/ datadir =/data/mysql/3307/data/ server_id =7 port =3307 bind-address =127.0.0.1 character_set_server =utf8mb4 explicit_defaults_for_timestamp =on log_timestamps =system lower_case_table_names =1 default_time_zone ='+08:00' socket =/data/mysql/3307/tmp/mysql.sock secure_file_priv =/data/mysql/3307/tmp/ binlog_format =row log_bin =/data/mysql/3307/logs/mysql-bin binlog_rows_query_log_events =on log_slave_updates =on log_error =/data/mysql/3307/logs/error.log general_log =off general_log_file =/data/mysql/3307/logs/general.log slow_query_log =on slow_query_log_file =/data/mysql/3307/logs/slow_query.log log_queries_not_using_indexes =on long_query_time =1.000000 gtid_mode =on enforce_gtid_consistency =on3308
[mysqld] user =mysql basedir = /application/mysql-5.7.30-linux-glibc2.12-x86_64/ datadir =/data/mysql/3308/data/ server_id =8 port =3308 bind-address =127.0.0.1 character_set_server =utf8mb4 explicit_defaults_for_timestamp =on log_timestamps =system lower_case_table_names =1 default_time_zone ='+08:00' socket =/data/mysql/3308/tmp/mysql.sock secure_file_priv =/data/mysql/3308/tmp/ binlog_format =row log_bin =/data/mysql/3308/logs/mysql-bin binlog_rows_query_log_events =on log_slave_updates =on log_error =/data/mysql/3308/logs/error.log general_log =off general_log_file =/data/mysql/3308/logs/general.log slow_query_log =on slow_query_log_file =/data/mysql/3308/logs/slow_query.log log_queries_not_using_indexes =on long_query_time =1.000000 gtid_mode =on enforce_gtid_consistency =on3309
[mysqld] user =mysql basedir = /application/mysql-5.7.30-linux-glibc2.12-x86_64/ datadir =/data/mysql/3309/data/ server_id =9 port =3309 bind-address =127.0.0.1 character_set_server =utf8mb4 explicit_defaults_for_timestamp =on log_timestamps =system lower_case_table_names =1 default_time_zone ='+08:00' socket =/data/mysql/3309/tmp/mysql.sock secure_file_priv =/data/mysql/3309/tmp/ binlog_format =row log_bin =/data/mysql/3309/logs/mysql-bin binlog_rows_query_log_events =on log_slave_updates =on log_error =/data/mysql/3309/logs/error.log general_log =off general_log_file =/data/mysql/3309/logs/general.log slow_query_log =on slow_query_log_file =/data/mysql/3309/logs/slow_query.log log_queries_not_using_indexes =on long_query_time =1.000000 gtid_mode =on enforce_gtid_consistency =on2. 安装
解压安装包
tar zxf /root/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /application/ ls /opt/mysql-5.7.30-linux-glibc2.12-x86_64 # 检查一下3. 启动 3.1 启动前环境检查及准备 检查依赖
ldd /opt/mysql-5.7.30-linux-glibc2.12-x86_64/bin/mysqld创建软连接
ln -sf /opt/mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql配置path
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
使生效
. /etc/profile
which mysql3.2 初始化
初始化命令: ./bin/mysqld --defaults-file=/data/mysql/3307/my.cnf --initialize ./bin/mysqld --defaults-file=/data/mysql/3308/my.cnf --initialize ./bin/mysqld --defaults-file=/data/mysql/3309/my.cnf --initialize-insecure3.3 启动
启动服务命令: ./bin/mysqld --defaults-file=/data/mysql/3307/my.cnf & ./bin/mysqld --defaults-file=/data/mysql/3308/my.cnf & ./bin/mysqld --defaults-file=/data/mysql/3309/my.cnf &3.4 登录
查看初始密码: cat /data/mysql/3307/logs/error.log cat /data/mysql/3308/logs/error.log 登录命令: ./bin/mysql -u root -p --socket=/data/mysql/3307/tmp/mysql.sock ./bin/mysql -u root -p --socket=/data/mysql/3308/tmp/mysql.sock ./bin/mysql -u root -p --socket=/data/mysql/3309/tmp/mysql.sock
show databases失败:
修改初始随机密码即可
alter user user() indentified by "你的密码"4. 主从搭建
5.6,5.7步骤基本差不多 https://blog.csdn.net/weixin_43224710/article/details/109329553
参考文献:
【1】主从复制 https://blog.csdn.net/weixin_43224710/article/details/109329553
【2】5.7安装 https://mp.weixin.qq.com/s/Y1BRn7Wvt3nC3QTeJOsbXw



