MySQL:5.7.18主从搭建

该博客详细介绍了在CentOS7.6环境下,如何关闭selinux和firewalld,并进行MySQL5.7.18的安装、配置、加固及主从复制的设置。包括从创建用户组、用户,安装数据库,设置启动脚本,到主库和从库的配置,再到权限分配和数据同步的步骤。最后,展示了如何检查主从复制的状态,确保数据一致性和系统的稳定性。
摘要由CSDN通过智能技术生成

系统版本:    CentOS 7.6

关闭:  selinux、firewalld

环境前提:  卸载系统自带的MariaDB    #yum remove -y mariadb*

设备:

    MySQL主库 192.168.1.170

    MySQL从库 192.168.1.171

[第一部分: 主、从暂时配置一样]

一、主、从库 都执行 rz 命令上传MySQL5.7.18 至 /opt/ 目录下

rz、、、省略

二、主、从库 都执行解压命令

tar -xvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

三、主、从库都执行修改目录名命令

mv /usr/local/mysql-5.7.18-linux-glibc2.5-x86_64/ /usr/local/mysql

四、主、从库都执行创建用户组、用户主

groupadd mysql

useradd -r -g mysql mysql

五、主、从库都执行数据库的配置文件

cat > /etc/my.cnf <<EOF
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
symbolic-links=0

[mysqld_safe]
log-error=/usr/local/mysql/logs/error.log
pid-file=/usr/local/mysql/mysql.pid

[client]
socket=/usr/local/mysql/mysql.sock
EOF

六、创建配置文件指向的目录和文件

mkdir -p /usr/local/mysql/data/

mkdir -p /usr/local/mysql/logs/

touch /usr/local/mysql/logs/error.log

七、主、从都执行 授权

chown -R mysql:mysql /usr/local/mysql/

chown -R mysql:mysql /etc/my.cnf

八、安装

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

九、安全加固

/usr/local/mysql/bin/mysql_ssl_rsa_setup --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

十、拷贝启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

十一、修改启动脚本文件

sed -i '46c basedir=/usr/local/mysql' /etc/init.d/mysqld

sed -i '47c datadir=/usr/local/mysql/data' /etc/init.d/mysqld

sed -i '63c mysqld_pid_file_path=/usr/local/mysql/data/mysqld.pid' /etc/init.d/mysqld

十二、启动一下试试

/etc/init.d/mysqld start

十三、设置软连接 直接敲mysql可以调用命令登录

ln -s /usr/local/mysql/bin/* /usr/local/sbin/

十四、退出到系统层面加-e参数免交互式修改密码

mysql -e "use mysql;alter user 'root'@'localhost' identified by 'Apeng12345.';"

十五、加入到 systemctl 命令中

cat > /usr/lib/systemd/system/mysqld.service <<EOF
[mysqld]
[Unit]
Description=MySQL
SourcePath=/etc/init.d/mysqld
Before=shutdown.target

[Service]
User=mysql
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop

[Install]
WantedBy=multi-user.target
EOF

十六、重启DB

systemctl restart mysqld

[第二大部分:]

一、修改主库的配置文件

[root@localhost ~]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
symbolic-links=0

#master and slave
log-bin=mysql-bin-master #启用二进制日志
server-id=1 #设置本地主库的ID唯一标识
binlog-do-db=JT_DB #配置要被从库复制的DB_NAME
binlog-ignore-db=mysql #指定不被从库复制的DB_NAME

[mysqld_safe]
log-error=/usr/local/mysql/logs/error.log
pid-file=/usr/local/mysql/mysql.pid

[client]
socket=/usr/local/mysql/mysql.sock

二、重启数据库

/etc/init.d/mysqld restart

三、登录主库并创建一个数据库用户 授权被从库同步 再刷新一下权限生效

[root@localhost ~]# mysql -uroot -pApeng12345.

grant replication slave on *.* to slave@192.168.1.171 identified by 'Apeng12345.';

flush privileges;

四、查看master的状态信息 重点要记住的

show master status;

五、登录从库设置从库的server ID

六、修改完数据库的配置文件后必须重启一下数据库

[root@localhost ~]# /etc/init.d/mysqld restart

七、在从库外围的系统层面登录刚才在主库创建的账号

[root@localhost ~]# mysql -uslave -pApeng12345. -h192.168.1.170

八、在从库退出当前账号  在系统外围 登录从库自己的 纯数据库root账号 进来后听到slave账号

九、在从库里用从库的纯数据库root账号授权  从库到主库同步数据。

change master to master_host='192.168.1.170',master_port=3306,master_user='slave',master_password='Apeng12345.',master_log_file='mysql-bin-master.000004',master_log_pos=594;

十、开启从库

start slave;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值