Mysql 作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台 Mysql 作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过主从复制( Master-Slave )的方式来同步数据,再通过读写分离( MySQL-Proxy )来提升数据库的并发负载能力这样的方案来进行部署与实施的。下面是我在实际工作过程中所整理的笔记,在此分享出来,以供大家参考。一、 MySQL 的安装与配置值得一提的是,我的安装过程都是源码包编译安装的,并且所有的配置与数据等都统一规划到了/opt/mysql 目录中,因此在一台服务器上安装完成以后,可以将整个 mysql 目录打包,然后传到其它服务器上解包,便可立即使用。二、 MySQL 主从复制场景描述: 主数据库服务器: , MySQL 已经安装,并且无应用数据。从数据库服务器: , MySQL 已经安装,并且无应用数据。 主服务器上进行的操作启动 mysql 服务/opt/mysql/ start 通过命令行登录管理 MySQL 服务器/opt/mysql/bin/mysql -uroot -p'new-password' 授权给从数据库服务器 mysql> GRANT REPLICATION SLAVE ON *.* to 'rep1'@'' identified by 'password'; 查询主数据库状态 Mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql- | 261 ||| +------------------+----------+--------------+------------------+ 记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。 配置从服务器修改从服务器的配置文件/opt/mysql/etc/f 将 server-id =1修改为 server-id = 10,并确保这个 ID 没有被别的 MySQL 服务所使用。启动 mysql 服务/opt/mysql/ start 通过命令行登录管理 MySQL 服务器/opt/mysql/bin/mysql -uroot -p'new-password' 执行同步 SQL 语句 mysql> change master to master_host= ’ ’, master_user= ’ rep1 ’, master_password= ’ password ’, master_log_file= ’ mysql- ’, master_log_pos=261; 正确执行后启动 Slave 同步进程 mysql> start slave; 主从同步检查 mysql> show slave status\G ============================================== **************** 1. row ******************* Slave_IO_State: Master_Host: Master_User: rep1 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql- Read_Master_Log_Pos: 415 Relay_Log_File: localhost-relay- Relay_Log_Pos: 561 Relay_Master_Log_File: mysql- Slave_IO_Running: YES Slave_SQL_Running: YES Replicate_Do_DB: ……………省略若干…………… Master_Server_Id: 11 row in set ( sec) =======
mysql主从读写分离 来自淘豆网m.daumloan.com转载请标明出处.