【mysql】安装教程和主从配置

系列文章目录

        在企业中配置主从库是必不可少的一个环节,可以避免很多的奇葩操作导致的数据库宕机从而使应用也挂掉的情况。mysql的主从配置还是比较简单的,跟着文档一步一步来即可,亲测好用。希望对您有所帮助!


文章目录

前言

       安装包:  mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

       操作系统:  Centos8和中标麒麟(都已测试均好使)

       服务器地址:10.10.109.8   10.10.109.9


一、安装

# 解压

tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

# 移动

mv /opt/mysql-8.0.26-linux-glibc2.12-x86_64 /data

cd /data

mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql

# 创建存放数据文件夹(磁盘阵列)

mkdir -p /mysql/data

chmod -R 777 /mysql /data

# 创建用户(复杂度需求)

groupadd mysql

useradd -g mysql mysql

chown -R mysql.mysql /data/mysql

# 初始化数据库

cd /data/mysql/

./bin/mysqld --user=mysql --lower-case-table-names=1 --basedir=/data/mysql/ --datadir=/mysql/data/ --initialize ;

# 配置主库my.cnf (修改默认端口)

vi /etc/my.cnf

[client]

port=3209

socket=/data/mysql/mysql.sock


[mysqld]

port=3209

basedir=/data/mysql

datadir=/mysql/data

pid-file=/data/mysql/mysql.pid

socket=/data/mysql/mysql.sock

log_error=/data/mysql/error.log

server-id=1

character-set-server=utf8

lower-case-table-names=1

log-bin=mysql-bin

binlog-ignore-db=sys

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

binlog_format=STATEMENT

open-files-limit=65000

default_authentication_plugin=mysql_native_password

innodb_buffer_pool_size=3GB

# 启动mysql

cp -a ./support-files/mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

chkconfig --add mysql

  • 检查服务是否生效

chkconfig --list mysql

创建文件

chmod -R 777 /mysql/data/

cd /data/mysql

touch error.log

touch mysql.pid

chmod –R 777  /data/mysql

  • 启动、停止、重启

service mysql start

service mysql stop

chown -R mysql.mysql /data/mysql

service mysql restart

# 创建软连接

ln -s /data/mysql/bin/mysql /usr/bin

ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

# 修改root密码(复杂度需求)

mysql -uroot -p

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new password';

# 增加远程链接权限

use mysql

update user set host ='%' where user='root';

select user,host from user;

# 从库安装与主库一致

# 从库配置my.conf(修改默认端口)

# 清空,使用下面内容

[client]

port=3209

socket=/data/mysql/mysql.sock

[mysqld]

port=3209

basedir=/data/mysql

datadir=/mysql/data

pid-file=/data/mysql/mysql.pid

socket=/data/mysql/mysql.sock

log_error=/data/mysql/error.log

server-id=2

relay-log=mysql-relay

character-set-server=utf8

lower-case-table-names=1

open-files-limit=65000

read_only=1

master_info_repository=TABLE

relay_log_info_repository=TABLE

default_authentication_plugin=mysql_native_password

innodb_buffer_pool_size=3GB

二、主从配置

1 关闭防火墙 (可修改为允许端口通信)

# 查看防火墙状态

systemctl status firewalld

# 关闭防火墙

systemctl stop firewalld

2 主从测试是否可远程访问

mysql -uroot -p -h10.10.109.8

mysql -uroot -p -h10.10.109.9

3 主数据库创建用户slave并授权(密码复杂度)

mysql -uroot -p

create user 'slave'@'%' identified with mysql_native_password by 'password';

grant replication slave on *.* to 'slave'@'%';

flush privileges;

4 主数据库查询服务ID及Master状态

# 登录

mysql -uroot -p

# 查询server_id是否可配置文件中一致

show variables like 'server_id';

# 若不一致,可设置临时ID(重启失效)

set global server_id = 1;

# 查询Master状态,并记录 File Position 的值

show master status;

5 从库设置主库

mysql -uroot -p

# 查询server_id是否可配置文件中一致

show variables like 'server_id';

# 若不一致,可设置临时ID(重启失效)

set global server_id = 2;

# 设置主数据库参数

change master to master_host='10.10.109.8',master_port=3209,master_user='slave',master_password='密码',master_log_file='mysql-bin.000006',master_log_pos=2812;

# 开始同步

start slave;

# 支持的操作

stop slave;

reset slave;

start slave;

# 查询slave状态

show slave status\G;

#如果主从库不一致,删除主库时从库会报错,解决方案:

stop slave;

#跳过1个错误(多个可以设置2.3……)

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; 

start slave; 

#在查询状态,如果还有错继续跳过

show slave status\G;

最终状态如下:

三 限定用户失败重试时间

1、从库执行:

stop slave;

2、主库执行:

mysql -u root -p

3、登录后安装插件:

install plugin CONNECTION_CONTROL soname 'connection_control.so';

install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';

4、主库修改配置文件my.cnf新增两行:

connection-control-failed-connections-threshold=5 #登陆失败次数限制

connection-control-min-connection-delay=300000 #限制重试时间,此处为毫秒,注意按需求换算,此处为5分钟

5重启mysql:

service mysql restart

登录主库数据库,查看是否生效

show variables like '%connection_control%';

6、从库执行:

mysql -u root -p

7、登录后安装插件:

install plugin CONNECTION_CONTROL soname 'connection_control.so';

install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';

8、从库修改配置文件my.cnf新增两行:

connection-control-failed-connections-threshold=5 #登陆失败次数限制connection-control-min-connection-delay=300000 #限制重试时间,此处为毫秒,注意按需求换算,此处为5分钟

9、从库重启mysql:

service mysql restart

登录从库数据库,查看是否生效

show variables like '%connection_control%';

10、从库执行:

start slave;

11、 查询slave状态

show slave status\G;

12、创建用户

CREATE USER '用户名'@'%' IDENTIFIED BY '密码';

对某一数据库授权

grant all privileges on 库名.* to '用户名'@'%';

对所有数据库授权

grant all privileges on *.* to 'cast'@'%';

完结


总结

    希望对您有帮助,不要忘记支持一下小编哦!

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值