Mysql主主

7 篇文章 0 订阅

Mysql主主

1 说明

双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。 这样做的好处多。 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。 对于异地热备,尤其适合灾备。

2 安装mysql

2.1 下载

我使用 mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz 可在mysql官网下载,解压到目录/usr/local/mysql,复制 /usr/local/mysql_slave

2.2 创建mysql账户

useradd -s /bin/nologin -M /mysql

2.3 拷贝my-small.cnf 到当前目录下

cp support-files/my-small.cnf my.cnf

2.4 拷贝 mysql.server 到/etc/init.d/mysqld 和 /etc/init.d/mysqldSlave

cp support-files/mysql.server /etc/init.d/mysqld
cp support-files/mysql.server /etc/init.d/mysqldSlave

2.5 修改 /etc/init.d/mysqld ,和 /etc/init.d/mysqldSlave

/etc/init.d/mysqld 修改配置和属性

basedir=/usr/local/mysql
datadir=/data/mysql
conf=${basedir}/my.cnf

/etc/init.d/mysqldSlave 修改配置和属性

basedir=/usr/local/mysql_slave
datadir=/data/mysql_slave
conf=${basedir}/my.cnf

2.6 修改各自的my.cnf文件

mysql/my.cnf

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
server-id       =1
log-bin=gary
# 不同步的数据库,为Mysql的自带数据库
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
# 自增长列,每次增长2
auto-increment-increment=2
# 自增长列,从1开始,这样主数据库的id为基数,从数据库的id为偶数,避免出现相同id
auto-increment-offset=1

mysql_slave/my.cnf

[mysqld]
port            = 3307
socket          = /tmp/mysql_slave.sock
server-id       =2
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
# 自增长列,每次增长2
auto-increment-increment=2
# 自增长列,从2开始
auto-increment-offset=2

2.7 初始化mysql

mysql

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

mysql_slave

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql_slave

2.8 启动 /usr/local/mysql ,链接该mysql

/etc/init.d/mysql start
/usr/local/mysql -S /tmp/mysql.sock

2.9 创建主数据库复制账号,主库和从库都要创建

mysql> grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123456' ;
mysq> flush privileges ;

2.10 暂时锁定主数据库

flush tables with read lock ;
#解锁 
unlock tables ;

2.11 查看主两个数据状态

mysql> show master status ; 
+-------------+----------+--------------+------------------+
| File        | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------+----------+--------------+------------------+
| gary.000003 |      187 |              | mysql,mysql      |
+-------------+----------+--------------+------------------+

2.12 设置两个住数据库相互拷贝数据,ip账号都是对方数据库的

mysql> slave stop ;
mysql> change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='123456',master_log_file='gary.000003',master_log_pos=187 ;
mysql> slave start ;

2.13 查看主从复制是否搭建成功

在slave数据库上运行

 show slave status \G 

如果看到 Slave_IO_Running和 Slave_SQL_Running 都是yes说明主从数据库搭建成功了

Mysql事务

查看Mysql事务

SELECT @@global.tx_isolation ;
SELECT @@session.tx_isolation ;

设置事务级别

SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ ;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ; 

四大事务级别

READ UNCOMMITTED 读取不提交
Read committed  读取提交
Repeatable read 重复读取,Mysql默认事务
Serializable 事务最高级别,不可使用

查看mysql事务是否自动提交

0为手动提交,1为自动提交

select @@autocommit;

设置手动提交

set autocommit = 0;
COMMIT  ## 提交事务
rollback ## 回滚

设置自动提交

set autocommit = 1;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值