1.mysql 5.7安装密码校验插件validate_password
1.1 查看validate_password插件
mysql> show variables like ‘%validate_password%‘;
1.2在my.cnf增加如下内容
[mysqld]
validate_password = on
validate_password_policy = 1
plugin-load-add=validate_password.so
#服务器在启动时加载插件,并防止在服务器运行时删除插件。
validate-password=FORCE_PLUS_PERMANENT
1.3重新查看validate_password插件
mysql> show variables like ‘%validate_password%‘;
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
2.在两台数据库中分别创建数据库
mysql>create database kht;
3.在主服务器master进行如下配置:
vi /etc/my.cnf
#在mysqld模块中添加如下配置信息
log-bin=master-bin #二进制文件名称
binlog-format=ROW #二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,
#statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。
#mixed指的是默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
server-id=1 #要求各个服务器的id必须不一样
binlog-do-db=msb #同步的数据库名称
3.2重启主服务器master并查看状态
systemctl restart mysql
#查看master的状态
mysql> show master status;
+---------------+----------+--------------+------------------+------------------ -+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+------------------ -+
| logbin.000001 | 154 | test | | |
+---------------+----------+--------------+------------------+------------------
4.从服务器slave的配置
vi /etc/my.cnf
#在mysqld模块中添加如下配置信息
log-bin=master-bin #二进制文件的名称
binlog-format=ROW #二进制文件的格式
server-id=2 #服务器的id
4.2配置从服务器slave登录主服务器的账号授权
--授权操作
set global validate_password_policy=0;
set global validate_password_length=1;
grant replication slave on *.* to ‘root‘@‘%‘ identified by ‘123456‘;
--刷新权限
flush privileges;
5.重启从服务器slave并连接主服务器master
systemctl restart mysql
mysql> change master to master_host=‘192.168.2.129‘,master_user=‘root‘,master_password=‘123456‘,master_port=3306,master_log_file=‘logbin.000011‘,master_log_pos=589;
Query OK, 0 rows affected, 2 warnings (0.00 sec)
#启动slave
mysql>start slave
#查看slave的状态
mysql>show slave status\G(注意没有分号)
#注意Slave_IO_Running: Yes
Slave_SQL_Running: Yes
6.若虚拟机是克隆的,则同一个克隆的mysql会产生UUID冲突,可以从日志中查看,
此时会造成Slave_IO_Running: NO
找此auto.cnf修改uuid即可:find -name auto.cnf
# 重启mysql
service mysql restart
#停止链路
mysql>stop slave;
#启动链路
mysql>start slave;
#查看链路
mysql>show slave status \G