Mysql复制Mysql内建的复制功能是构建大型、高性能应用程序的基
主服务器:
[root@node1~]# ssh-keygen -t rsa -P ”[root@node1~]##ssh-copy-id -i .ssh/id_rsa.pub root@172.16.18.9
从服务器:
[root@node2~]# ssh-keygen -t rsa -P ”[root@node2~]##ssh-copy-id -i .ssh/id_rsa.pub root@172.16.18.7
2、编辑主从服务器的hosts文件:
[root@node1~]# vim /etc/hosts#####添加如下两项:###############172.16.18.7node1.magedu.com node1172.16.18.9node2.magedu.com node2#####保存并复制至node2上:########[root@node1~]# scp /etc/hosts 172.16.18.9:/etc
这里不在详细介绍了,请参考
(1)、创建用户#groupadd -g 306 mysql#useradd -g mysql -u 306 -r mysql(2)、创建数据目录:#mkdir/mydata/data –pv(3)、更改数据目录权限:#chown -R mysql.mysql /mydata/data(4)、解压Mysql创建链接#tar xfmysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local#ln -svmysql-5.5.33-linux2.6-x86_64 mysql(5)、更改属主属组#cd mysql#chown -R root:mysql./*(6)、初始化mysql#scripts/mysql_install_db–user=mysql –datadir=/mydata/data(7)、创建启动脚本并赋予权限#cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld#chmod +x/etc/rc.d/init.d/mysqld(8)、创建并修改配置文件# cp support-files/my-large.cnf /etc/my.cnf # vim /etc/my.cnf添加如下行指定mysql数据文件的存放位置:datadir = /mydata/data(9)、更改环境变量#vim/etc/profile.d/mysql.sh添加:exportPATH=/usr/local/mysql/bin:$PATH#./etc/profile.d/mysql.sh(10)、添加到服务列表中并启动mysql# chkconfig –addmysqld# service mysql start
5、配置主服务器:
(1)编辑配置文件:
[root@node1 ~]# vim /etc/my.cnfserver-id= 1#60行标识自己的ID号log-bin=mysql-bin#52行二进制日志,默认是启动的binlog_format=mixed#55行使用混合模式
(2)建立复制账号权限:
[root@node1 ~]# mysqlmysql>GRANT REPLICATIONCLIENT,REPLICATION SLAVE ON *.* TO rpuser@’172.16.%.%’ IDENTIFIED BY ‘rpuser’;mysql> FLUSHPRIVILEGES;#刷新权限
6、配置从服务器:
(1)编辑配置文件:
[root@node2 ~]# vim /etc/my.cnfserver-id= 20#60行标识自己的ID号,和主服务器决不能相同#log-bin=mysql-bin#52行关闭二进制日志#binlog_format=mixed#55行关闭使用混合模式#####设置从服务器为只读模式######read-only=1#注意从服务器不可有写模式#####添加中继日志################relay-log=/mydata/data/relay-mysql#中继日志relay-log-index=relay-mysql.index#中继日志索引文件
【relay-log日志记录的是在复制过程中,从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器。】
AppMall应用商店
AI应用商店,提供即时交付、按需付费的人工智能应用服务
56 查看详情
(2)、登录mysql查看线程:
查看启动线程
mysql> SHOWPROCESSLIST;+—-+——+———–+——+———+——+——-+——————+| Id | User |Host| db | Command | Time | State | Info|+—-+——+———–+——+———+——+——-+——————+| 1 | root | localhost | NULL | Query | 0| NULL | SHOW PROCESSLIST |+—-+——+———–+——+———+——+——-+——————+
根据结果显示:此时还未启动任何线程。
(3)、配置连接服务器:
命令参数解析:
mysql>helpCHANGE MASTER TOMASTER_BIND = ‘interface_name’#将控制绑定在那个接口上 | MASTER_HOST = ‘host_name’#主服务器地址 | MASTER_USER = ‘user_name’#主服务器用户(刚才创建的) | MASTER_PASSWORD = ‘password’#主服务器密码 | MASTER_PORT = port_num#工作端口 | MASTER_CONNECT_RETRY = interval#重试时间 | MASTER_HEARTBEAT_PERIOD = interval #每隔多长时间探测一下是否落后主服务器,主服务器是否在线 | MASTER_LOG_FILE = ‘master_log_name’ #指定从哪一个二进制文件复制 | MASTER_LOG_POS = master_log_pos#指定哪一个二进制文件的事件位置 | RELAY_LOG_FILE = ‘relay_log_name’ #中继日志 | RELAY_LOG_POS = relay_log_pos | MASTER_SSL = {0|1}#是否使用SSL功能 | MASTER_SSL_CA = ‘ca_file_name’ | MASTER_SSL_CAPATH = ‘ca_directory_name’ | MASTER_SSL_CERT = ‘cert_file_name’ | MASTER_SSL_KEY = ‘key_file_name’ | MASTER_SSL_CIPHER = ‘cipher_list’ | MASTER_SSL_VERIFY_SERVER_CERT = {0|1} | IGNORE_SERVER_IDS = (server_id_list)#将某些ID号忽略掉
配置从服务器连接主服务器:
mysql> CHANGEMASTER TO MASTER_HOST=’172.16.18.7′,-> MASTER_USER=’rpuser’,-> MASTER_PASSWORD=’rpuser’;
(4)启动从服务器线程:
mysql> START SLAVE;
(5)查看从服务器工作状态
mysql> SHOWSLAVE STATUS\G***************************1. row ***************************Slave_IO_State: Waiting formaster to send event#I/O状态;接受主服务器发送状态Master_Host: 172.16.18.7#主服务器用户账号Master_User: rpuser#用户Master_Port: 3306#默认监听端口Connect_Retry: 60#重试时间间隔Master_Log_File: mysql-bin.000002 #读取的二进制日志文件Read_Master_Log_Pos: 107#事件位置Relay_Log_File:relay-mysql.000003 #当前读取的中继日志文件Relay_Log_Pos: 253Relay_Master_Log_File: mysql-bin.000002Slave_IO_Running: Yes#I/O线程已启动Slave_SQL_Running: Yes#SQL线程已启动Replicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 107Relay_Log_Space: 966Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_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:NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids:Master_Server_Id: 1
7、测试
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/531075.html
微信扫一扫
支付宝扫一扫