mysql主从实验
2016-04-05 10:24
399 查看
1环境
两台db服务器centos6.5
iptables 和selinux关闭
2开始部署
主mysql(140.4);从mysql(140.19)
查看mysql是否启动:
/etc/init.d/mysql status
主db服务器mysql.cnf配置(极简化配置):
my.cnf:
重启mysql使它生效 /etc/init.d/mysql
赋予cuiyf权限仅能访问140.19db服务器的cui数据库:
grant ALL PRIVILEGES on . to weren@”192.168.140.22” Identified by “123shinyv!@#”;
查看master状态:
主服务器设置完成;
从服务器mysql.conf(极简化):
从库指定主库:
同步启动:
查看启动是否成功:
备注:
关于主从其他的问题(转自http://blog.51yip.com/mysql/1716.html):
两台db服务器centos6.5
iptables 和selinux关闭
2开始部署
主mysql(140.4);从mysql(140.19)
查看mysql是否启动:
/etc/init.d/mysql status
主db服务器mysql.cnf配置(极简化配置):
my.cnf:
[mysqld] server-id=1 log-bin=mysql-bin binlog-ignore-db=mysql,test # 忽略这两个数据库 binlog-do-db=apps #指定同步库 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
重启mysql使它生效 /etc/init.d/mysql
赋予cuiyf权限仅能访问140.19db服务器的cui数据库:
grant ALL PRIVILEGES on . to weren@”192.168.140.22” Identified by “123shinyv!@#”;
查看master状态:
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000002 | 1269 | apps | mysql,test | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
主服务器设置完成;
从服务器mysql.conf(极简化):
[mysqld] server-id = 2 replicate-do-db = cui #从库指定同步的数据库 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
从库指定主库:
mysql> change master to master_host='192.168.140.21',master_user='weren',master_password='123shinyv!@#',master_log_file='mysql-bin.000002', master_log_pos=1269; Query OK, 0 rows affected, 2 warnings (0.08 sec)
同步启动:
mysql> start slave; Query OK, 0 rows affected (0.00 sec)
查看启动是否成功:
mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.140.21 Master_User: weren Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 1269 Relay_Log_File: cyf-relay-bin.000002 Relay_Log_Pos: 283 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: apps Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 1269 Relay_Log_Space: 454 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: f339bf21-f9e7-11e5-ab1e-000c29ea826b Master_Info_File: /var/lib/mysql/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 1 row in set (0.00 sec)
备注:
关于主从其他的问题(转自http://blog.51yip.com/mysql/1716.html):
1,在从服务器上使用show slave status\G Slave_IO_Running为No,则说明IO_THREAD没有启动,请执行mysql> start slave io_thread Slave_SQL_Running为No,则复制出错,查看Last_error字段排除错误后执行mysql> start slave sql_thread Slave_IO_State字段空, #复制没有启动 Connecting to master #没有连接上master Waiting for master to send event #已经连上 2,主服务器上的相关命令 show master status show slave hosts show logs show binlog events purge logs to 'log_name' purge logs before 'date' reset master(老版本flush master) set sql_log_bin= 3,从服务器上的相关命令 slave start slave stop SLAVE STOP IO_THREAD #此线程把master段的日志写到本地 SLAVE start IO_THREAD SLAVE STOP SQL_THREAD #此线程把写到本地的日志应用于数据库 SLAVE start SQL_THREAD reset slave SET GLOBAL SQL_SLAVE_SKIP_COUNTER load data from master show slave status(SUPER,REPLICATION CLIENT) CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= #动态改变master信息 PURGE MASTER [before 'date'] 删除master端已同步过的日志 4,Master 同步线程状态 以下列出了master的 Binlog Dump 线程 State 字段中最常见的几种状态。如果在master上没有 Binlog Dump 线程,那么同步就没有在运行。 也就是说,没有slave连接上来。 Sending binlog event to slave 事件是由二进制日志构成,一个事件通常由更新语句加上其他信息。线程读取到一个事件并正发送到slave上。 Finished reading one binlog; switching to next binlog 读取完了一个二进制日志,正切换到下一个。 Has sent all binlog to slave; waiting for binlog to be updated 已经读取完全部未完成更新日志,并且全部都发送到slave了。它处于空闲状态,正等待在master上执行新的更新操作以在二进制日志中产生新 的事件,然后读取它们。 Waiti b31e ng to finalize termination 当前线程停止了,这个时间很短。 5,Slave的I/O线程状态 以下列出了slave的I/O线程 State 字段中最常见的几种状态。从MySQL 4.1.1开始,这个状态在执行 SHOW SLAVE STATUS 语句结果的 Slave_IO_State 字段也会出现。这意味着可以只执行 SHOW SLAVE STATUS 语句就能了解到更多的信息。 Connecting to master 该线程证尝试连接到master上。 Checking master version 确定连接到master后出现的一个短暂的状态。 Registering slave on master 确定连接到master后出现的一个短暂的状态。 Requesting binlog dump 确定连接到master后出现的一个短暂的状态。该线程向master发送一个请求,告诉它要请求的二进制文件以及开始位置。 Waiting to reconnect after a failed binlog dump request 如果二进制日志转储(binary log dump)请求失败了(由于连接断开),该线程在休眠时进入这个状态,并定期重连。重连的时间间隔由 --master-connect-retry 选项来指定。 Reconnecting after a failed binlog dump request 该线程正尝试重连到master。 Waiting for master to send event 已经连接到master,正等待它发送二进制日志。如果master闲置时,这个状态可能会持续较长时间,如果它等待超过 slave_read_timeout 秒 ,就会发生超时。这时,它就会考虑断开连接,然后尝试重连。 Queueing master event to the relay log 已经读取到一个事件,正把它拷贝到中继日志中以备SQL线程处理。 Waiting to reconnect after a failed master event read 读日志时发生错误(由于连接断开)。该线程在重连之前休眠 master-connect-retry 秒。 Reconnecting after a failed master event read 正尝试重连到master。当连接确定后,状态就变成 Waiting for master to send event。 Waiting for the slave SQL thread to free enough relay log space relay_log_space_limit 的值非零,中继日志的大小总和超过这个值了。I/O线程等待SQL线程先处理中继日志然后删除它们以释放足够的空间。 Waiting for slave mutex on exit 当前线程停止了,这个时间很短。 6,Slave的SQL线程状态 以下列出了slave的SQL线程 State 字段中最常见的几种状态: Reading event from the relay log 从中继日志里读到一个事件以备执行。 Has read all relay log; waiting for the slave I/O thread to update it 已经处理完中继日志中的全部事件了,正等待I/O线程写入更新的日志。 Waiting for slave mutex on exit 当前线程停止了,这个时间很短。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复