一、MySQL的安装
规划节点
IP地址 | 主机名 | 节点 |
192.168.203.30 | master | MySql主节点 |
192.168.203.31 | slave | MySQL从节点 |
基础准备
1.修改主机名
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# bash
[root@localhost ~]# hostnamectl set-hostname slave
[root@localhost ~]# bash
2.关闭防火墙
[root@master ~]# systemctl stop firewalld
[root@master ~]# setenforce 0
[root@slave ~]# systemctl stop firewalld
[root@slave ~]# setenforce 0
3.配置主机映射
[root@master ~]# vi /etc/hosts
4.在两台机器上yum安装数据库并启动数据库
主节点:
[root@master ~]# yum install -y mariadb mariadb-server
[root@master ~]# systemctl start mariadb
[root@master ~]# systemctl enable mariadb
从节点:
[root@slave ~]# yum install -y mariadb mariadb-serve
[root@slave ~]# systemctl start mariadb
[root@slave ~]# systemctl enable mariadb
5.在两台机器上初始化数据库
[root@master ~]# mysql_secure_installation
注意:如果出现如下报错,则需重新设置root用户密码
解决方法如下
输入以下命令停止mariadb:
[root@master ~]# systemctl stop mysql
执行命令启动mariadb但跳过权限表:
[root@master ~]# mysqld_safe --skip-grant-tables &
命令行中执行以下命令,登录数据库:
[root@master ~]# mysql -u root
在数据库命令行中重置密码:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> set password for 'root'@'localhost' = password('000000');
注意:若在重启mariadb时遇到如下报错
解决方法如下:
检查是否有其他MySQL进程正在运行
[root@master ~]# ps aux | grep mysql
如果发现有其他MySQL进程正在运行,记录其PID(进程ID),并使用以下命令终止这些进程
[root@master ~]# kill -9 <ID号>
删除锁定的socket文件
[root@master ~]# sudo rm /var/lib/mysql/mysql.sock
重启MariaDB
[root@master ~]# sudo systemctl start mariadb
确认MariaDB是否成功启动
[root@master ~]# systemctl status mariadb
二、MySQL主从配置
1.主节点的配置
更改MySQL的配置文件
[root@master ~]# vi /etc/my.cnf
在文件中添加如下内容
[mysqld]
log_bin=mysql_bin
binlog_ignore_db=mysql
server_id=30
2.重启主数据库并登录数据库
[root@master ~]# systemctl restart mariadb
[root@master ~]# mysql -uroot -p000000
3.授权
在master节点授权任何客户端可以用root用户登录到数据库,然后在master创建一个user用户连接slave,并赋予其在slave节点同步数据的权限
4.从节点配置
[root@slave ~]# vi /etc/my.cnf
5.重启从节点并登录数据库
[root@slave ~]# systemctl restart mariadb
[root@slave ~]# mysql -uroot -p000000
6.连接主从数据库
MariaDB [(none)]> change master to master_host='master',master_user='user',master_password='000000';
Query OK, 0 rows affected (0.01 sec)
7.启动slave节点服务并查看节点状态
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G
可以看到Slave_IO_Running和Slave_SQL_Running两项为YES,证明配置主从连接成功。
三、主从测试
1.在master节点的MySQL中创建test数据库
创建test库并,在test库中创建company表,并向表中添加数据
MariaDB [(none)]> create database test;
在test库中创建company表,并向表中添加数据
MariaDB [(none)]> use test;
创建非空表并创建name和addr两个列
MariaDB [test]> create table company(id int not null primary key,name varchar(50),addr varchar(255));
在表中添加shenyang china
MariaDB [test]> insert into company values(1,"shenyang","china");
2.在slave节点查看数据库的内容
查看数据库
MariaDB [(none)]> show databases;
进入test数据库
MariaDB [(none)]> use test;
查看数据库中的表
MariaDB [test]> show tables;
查看company表中全部内容
MariaDB [test]> select * from company;