centos 搭建mysql,及配置主备

前端之家收集整理的这篇文章主要介绍了centos 搭建mysql,及配置主备前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

centos MysqL 搭建

1 下载MysqL yum repository

参考官方文档:https://dev.mysql.com/downloads/repo/yum/
The MysqL Yum repository provides a simple and convenient way to install and update MysqL products with the latest software packages using Yum.
安装后,更改了centos的yum库MysqL版本信息。可以直接用yum install 安装MysqL
如果直接下载MysqL-community-serve rpm安装,则会找不到其他依赖,安装起来比较麻烦。

2 使用yum repository 安装MysqL

使用yum repository 添加MysqL版本到yum库。

sudo rpm -Uvh platform-and-version-specific-package-name.rpm

确认yum库中设置的MysqL版本信息。MysqL community server的状态为:enabled

yum repolist all | grep MysqL

安装

sudo yum install MysqL-community-server

启动

sudo service MysqLd start

3 配置MysqL

查看MysqL生成root的默认密码

sudo grep 'temporary password' /var/log/MysqLd.log

可以通过默认密码登录,并修改密码

MysqL -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

设置root账号远程访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;

MysqL 主备搭建

1. 工作原理(http://www.jb51.cc/article/p-zolszqwq-zp.html

MysqL主备复制实现分成三个步骤:
master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
slave将master的binary log events拷贝到它的中继日志(relay log);
slave重做中继日志中的事件,将改变反映它自己的数据。

2 搭建

主创建账号:

create user 'test'@'%' identified by 'r123+-*/'

主 复制账号权限:

grant select,replication slave,replication client on *.* to 'test'@'%' identified by 'r123+-*/';

主 配置my.cnf

vim /etc/my.cnf
log_bin=MysqL-bin
server_id = 1

从配置my.cnf

vim /etc/my.cnf
log_bin=MysqL-bin
server_id = 2
relay_log=MysqL-relay-bin 
log_slave_updates=1 
read_only=1

http://www.jb51.cc/article/p-zolszqwq-zp.html
server_id 是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置 bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)。
relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。
有 些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量 使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。
主,从服务重启

service MysqLd restart

主查看信息

show master status\G;
*************************** 1. row ***************************
 File: MysqL-bin.000001
 Position: 718
 Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

从启动slave

MysqL> CHANGE MASTER TO
-> MASTER_HOST='test.host.com',-> MASTER_USER='test',-> MASTER_PASSWORD='r123+-*/',-> MASTER_LOG_FILE='MysqL-bin.000001',-> MASTER_LOG_POS=718;

需要的信息根据主的信息配置

从查看状态

show slave status\G

3 验证

在主上插入一行数据,从会有这条数据。

4 配置主读写,从只读

主从分别创建账号:

create user 'test'@'%' identified by 'r123 +-*/';

主账号授权:

grant all privileges on *.* to 'test'@'%' identified by 'r123+-*/';

从账号授权:(这里采用全部授权后,回收修改数据库的权限方式。也可以直接赋权,但是怕有遗漏,影响功能

grant all privileges on *.* to 'test'@'%' identified by 'r123+-*/';
revoke insert,update,delete,drop,create,alter on *.* from 'test'@'%';

4 jdbc验证
jdbc配置多个MysqL,出现故障时自动切换.

spring.datasource.driver-class-name=com.MysqL.jdbc.Driver
spring.datasource.url=jdbc:MysqL://test.host.com:3306,test-1.host.com:3306/test?failOverReadOnly=true&useSSL=false
spring.datasource.username=test
spring.datasource.password=r123+-*/

猜你在找的CentOS相关文章