centos7 mysql5.7主从库搭建
1.下载 MySQL yum包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
2.安装MySQL源
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
3.安装MySQL服务端,需要等待一些时间
yum install -y mysql-community-server
4.启动MySQL
systemctl start mysqld.service
5.检查是否启动成功
systemctl status mysqld.service
6.获取临时密码,MySQL5.7为root用户随机生成了一个密码
grep 'temporary password' /var/log/mysqld.log
7.通过临时密码登录MySQL,进行修改密码操作
mysql -uroot -p
使用临时密码登录后,不能进行其他的操作,否则会报错,这时候我们进行修改密码操作
8. 因为MySQL的密码规则需要很复杂,我们一般自己设置的不会设置成这样,所以我们全局修改一下
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
这时候我们就可以自己设置想要的密码了(yourpassword 这里改成你自己的密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
9.授权其他机器远程登录
use mysql;
update user set host = '%' where user ='root';
FLUSH PRIVILEGES;
10.开启开机自启动
先退出mysql命令行(执行 quit指令),然后输入以下命令
systemctl enable mysqld
systemctl daemon-reload
11.设置MySQL的字符集为UTF-8,令其支持中文,设置时区
vim /etc/my.cnf
# 添加
[mysql] # 注意这里mysql,没有的自己写
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
default-time_zone = '+8:00'
12. 重启一下MySQL,令配置生效
systemctl restart mysqld.service
13.防火墙开放3306端口
firewall-cmd --state
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
14. 卸载yum 按的哪个
rpm -qa | grep mysql
yum -y remove mysql57-community-release-el7-10.noarch
15. 增加终端访问速度
进入插入编辑模式,然后在[mysqld]中输入内容“skip-name-resolve”
vim /etc/my.cnf
[mysqld]
skip-name-resolve
16.修改主库配置文件
vim /etc/my.cnf
# 主节点设置以下内容
port=3306
binlog-ignore-db=mysql # 代表哪些库无需同步
server-id=1 # 很关键1 代表主 ,从库配置的时候必须和他不一样
expire-logs-days =7
binlog-ignore-db=information_schema # 表示不同步得mysql库
binlog-ignore-db=performation_schema
binlog-ignore-db=sys
log-bin=master-bin # 日志名称
log-slave-updates=true
创建一个用于主从同步得账户
#登录MySQL ,
$ mysql -u root -p
create user 'sync'@'%' identified by '你的密码' # 5.7要求密码必须含有大小写英文,符号和数字
#赋予FILE权限,允许从从库ip访问主库
# 这里得地址是从节点得
grant FILe on *.* to 'sync'@'xx.xx.xx.52' identified by '你的密码';
#赋予主从同步权限
grant replication slave on *.* to 'sync'@'xx.xx.xx.52' identified by '你的密码';
修改完之后重启mysql
systemctl restart mysqld.service
######
show master status; #查看主库的状态 file,position 这两个值很有用,记一下;需要放到slave配置中
+--------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------------+----------+--------------+------------------+-------------------+
| master-bin.000002 | 154 | xxxx | | |
+--------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
17. 从节点配置
vim /etc/my.cnf
## 从节点修改
log-bin=mysql-bin
server-id=2 # 确保唯一
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performation_schema
binlog-ignore-db=sys
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
配置完成后重启从库
systemctl restart mysqld.service
#登录mysql
mysql -u root -p
#关闭从库
stop slave;
## 这里得地址是主节点得地址。后面两个参数是show master status;从主库中查出来得
change master to master_host='xx.xx.xx.56', master_user='sync' ,master_password='你的密码', master_log_file='master-bin.000002' ,master_log_pos=154;
#开启从库
start slave;
show slave status \G; #Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功