/usr/share/mysql/charsets/
服务器
ip
操作系统
mysql
Mysql_master
192.168.188.11
centos7
5.7
Mysql_slave1
192.168.188.12
centos7
5.7
Mysql_slave2
192.168.188.13
centos7
5.7
一、安装mysql5.7
1、配置YUM源
# 下载mysql源安装包 shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql源 shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm
检查mysql源是否安装成功
shell> yum repolist enabled | grep "mysql.*-community.*"
2、安装MySQL
shell> yum install mysql-community-server
3、启动MySQL服务
shell> systemctl start mysqld
查看MySQL的启动状态
shell> systemctl status mysqld
4、开机启动
shell> systemctl enable mysqld shell> systemctl daemon-reload
5、修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
shell> grep 'temporary password' /var/log/mysqld.log
shell> mysql -u root -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示:
6、登录mysql
mysql -u root -p
7、设置允许访问的ip
如果你想允许用户root从ip为192.168.188.62的主机连接到mysql服务器,并使用root作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.188.62'IDENTIFIED BY 'password' WITH GRANT OPTION;
8、刷新
flush privileges;
9、防火墙开启
//1、开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent//2、重启防火墙
firewall-cmd --reload//3、查看已经开放的端口:
firewall-cmd --list-ports
以上安装需要在每台服务器上进行!!!
Master的配置
1、配置内容
在/etc/my.cnf文件中添加以下配置项
# 设置server_id,一般设置成IP
server_id=18811# 需要备份的数据库
binlog-do-db=dfs
# 不需要备份的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 开启二进制日志功能,名字自己起,主服务器必须开启
log-bin=master-bin
2、重启mysql
service mysqld restart
3、登陆mysql数据库,设置用于从数据库登陆的远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.188.12'IDENTIFIED BY 'password'WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON*.* TO 'root'@'192.168.188.13'IDENTIFIED BY 'password'WITH GRANT OPTION;
flush privileges;
4、查看是否设置成功
mysql> select user,host from mysql.user;
4、查看master状态
mysql> show master status\G;
注意File,Position两个字段,一会配置从服务器要用到
5、想要重新配置master,并清零position,可以使用下边命令。
mysql> reset master;
Slave1的配置
1、配置内容
在/etc/my.cnf文件中添加以下配置项
# 设置server_id,一般设置成IP
server_id=18812# 需要备份的数据库
binlog-do-db=dfs
# 不需要备份的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 开启二进制日志功能,也可以不开启,如果这个slave不作为master
log-bin=slave1-bin
2、重启mysql,登陆mysql,关联master
service mysqld restart
先停止(每次设置slave都需要先停止)
mysql> stop slave;
设置slave
mysql> change master to master_host='192.168.188.11', master_user='root', master_password='password',master_log_file='master-bin.000002', master_log_pos=928;
注意此处的master_log_file,master_log_pos分别是master中File,Position两个字段的值。
3、查看slave的状态
mysql> show slave status\G;
开启slave
mysql> start slave;
再次查看状态,应该变成yes
mysql> show slave status\G;
Slave2的配置
首先你需要知道Slave的配置和Slave1的配置方式是完全相同的,只一些配置的内容不同
1、配置内容
在/etc/my.cnf文件中添加以下配置项
# 设置server_id,一般设置成IP
server_id=18813# 需要备份的数据库
binlog-do-db=dfs
# 不需要备份的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 开启二进制日志功能,也可以不开启,如果这个slave不作为master
log-bin=slave2-bin
2、重启mysql,登陆mysql,关联master
service mysqld restart
先停止(每次设置slave都需要先停止)
mysql> stop slave;
设置slave
mysql> change master to master_host='192.168.188.11', master_user='root', master_password='password',master_log_file='master-bin.000002', master_log_pos=928;
注意此处的master_log_file,master_log_pos分别是master中File,Position两个字段的值。
3、查看slave的状态
mysql> show slave status\G;
开启slave
mysql> start slave;
再次查看状态,应该变成yes
mysql> show slave status\G;
这样就已经可以了,在主服务器测试下,所有操作都会同步到从服务器