手把手教你MySQL数据库的部署及搭建主从复制

一.在服务器上安装MySQL数据库,我通过yum安装MySQL8.0版本的数据库来进行演示。

1.首先尝试直接从MySQL网站导入官方的GPG密钥。

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql

2.然后尝试安装MySQL的yum仓库文件。

wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
rpm -ivh mysql80-community-release-el7-11.noarch.rpm

3.安装MySQL服务器。

yum clean all
yum -y install mysql-community-server
mysql --version

如果这一步出现了报错,请检查/etc/yum.repos.d/mysql-community.repo文件中的GPG检查设置。你可以临时禁用GPG检查来测试是否是GPG密钥的问题。在/etc/yum.repos.d/mysql-community.repo这个文件中找到gpgcheck=1并将其改为gpgcheck=0,然后保存并退出编辑器,并再次执行第3步。

4.启动MySQL数据库并设置开机启动。

systemctl start mysqld
systemctl enable mysqld

5.修改初始密码后登录数据库。

grep password /var/log/mysqld.log

找到密码后可以使用mysqladmin命令来修改MySQL数据库的用户密码  

mysqladmin -u root -p'上条命令中找到的密码' password '你想要设置的密码'
mysql -uroot -p'你设置的密码'

进入数据库后可以输入exit退出 

至此,在服务器上安装MySQL数据库就算是完成了。如果只是需要单机部署MySQL数据库到此为止即可。

二.接下来开始做主从配置

1.在另外一台服务器上执行上述操作,安装MySQL数据库

2.主从服务器均需要关闭防火墙和selinux服务,如果使用的是云服务器则需要在对应云平台的服务器安全组里调整规则,将服务器彼此加入自己的白名单里。两台机器环境必须一致。时间也得一致。

setenforce 0
systemctl stop firewalld

3.在主库服务器的操作

vim /etc/my.cnf

 添加如下内容后保存退出

log-bin=/var/log/mysql/mysql-bin
server-id=1

mkdir /var/log/mysql
chown -R mysql.mysql /var/log/mysql
systemctl restart mysqld
mysql -uroot -p'MySQL@666'

use mysql
SELECT User, Host FROM user;
CREATE USER IF NOT EXISTS 'slave'@'%' IDENTIFIED BY 'MySQL@666';
GRANT REPLICATION SLAVE, RELOAD, SUPER ON *.* TO 'slave'@'%';
flush privileges;
SELECT User, Host FROM user;

 

4.在从库服务器的操作

vim /etc/my.cnf

 添加如下内容后保存退出

server-id=2

systemctl restart mysqld
mysql -uroot -p'MySQL@666'

 5.在主库数据库的操作

show master status;

6.在从库数据库的操作

\e
CHANGE REPLICATION SOURCE TO
MASTER_HOST='主库ip',
MASTER_USER='slave',
MASTER_PASSWORD='MySQL@666',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=157;
;

start slave;
show slave status\G

看到IO线程和SQL线程的状态均为Yes,则主从同步已完成。

7.我们接下来可以检验一下

在主库

CREATE DATABASE test;
use test
CREATE TABLE people (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    age INT CHECK (age >= 0 AND age <= 120),
    gender ENUM('Male', 'Female', 'Other') NOT NULL 
);
INSERT INTO people (name, age, gender) VALUES
('张三', 28, 'Male'),
('李四', 34, 'Female'),
('王五', 45, 'Male'),
('赵六', 22, 'Other'),
('孙七', 30, 'Female');
SELECT * FROM people;

在从库

use test
SELECT * FROM people;

 

 主从同步非常成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值