您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Mysql主从复制,单台服务器上实施

2025/12/14 8:31:55发布17次查看
原文链接:?http://blog.csdn.net/songxixi/article/details/8737555 现在公司向在一台服务器上做主从复制,现在了解到的是需要安装多个mysql不同的服务,才可以,我现在 在现有单实例数据库下,分了不同的端口以下所示红色部分;[root@mysql ~]# netstat -t
原文链接:?http://blog.csdn.net/songxixi/article/details/8737555
现在公司向在一台服务器上做主从复制,现在了解到的是需要安装多个mysql不同的服务,才可以,我现在 在现有单实例数据库下,分了不同的端口以下所示红色部分;[root@mysql ~]# netstat -tunlpactive internet connections (only servers)proto recv-q send-q local address foreign address state pid/program name tcp 0 0 0.0.0.0:1001 0.0.0.0:* listen 2515/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* listen 2483/portmap tcp 0 0 127.0.0.1:631 0.0.0.0:* listen 2750/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* listen 3056/sendmail: acce tcp 0 0 :::3306 :::* listen 4025/mysqld tcp 0 0 :::3307 :::* listen 17423/mysqld tcp 0 0 :::3308 :::* listen 17388/mysqld tcp 0 0 :::3309 :::* listen 20371/mysqld tcp 0 0 :::22 :::* listen 2741/sshd udp 0 0 0.0.0.0:995 0.0.0.0:* 2515/rpc.statd udp 0 0 0.0.0.0:998 0.0.0.0:* 2515/rpc.statd udp 0 0 0.0.0.0:42601 0.0.0.0:* 3204/avahi-daemon: udp 0 0 0.0.0.0:5353 0.0.0.0:* 3204/avahi-daemon: udp 0 0 0.0.0.0:111 0.0.0.0:* 2483/portmap udp 0 0 0.0.0.0:631 0.0.0.0:* 2750/cupsd udp 0 0 :::5353 :::* 3204/avahi-daemon: udp 0 0 :::59254 :::* 3204/avahi-daemon: [root@mysql mysql]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf reportreporting mysql serversmysql server from group: mysqld2 is runningmysql server from group: mysqld3 is runningmysql server from group: mysqld4 is running[root@mysql mysql]# lsof -i:3308command pid user fd type device size node namemysqld 17388 mysql 11u ipv6 45429 tcp *:tns-server (listen)[root@mysql mysql]# lsof -i:3307command pid user fd type device size node namemysqld 17423 mysql 11u ipv6 45479 tcp *psession-prxy (listen)[root@mysql mysql]# lsof -i:3309command pid user fd type device size node namemysqld 20371 mysql 11u ipv6 47851 tcp *:tns-adv (listen)[root@mysql mysql]# lsof -i:3306command pid user fd type device size node namemysqld 4025 mysql 11u ipv6 16575 tcp *:mysql (listen)[root@mysql mysql]#[root@mysql ~]# 在以上服务都启动正常的情况下,配置主从,我没有调整io的线程,不知道在不同端口见做主从复制关系,以下是我配置最后遇到的错误,请绿林好汉帮忙看看啊,拍砖。。。mysql> show slave status\g;*************************** 1. row *************************** slave_io_state: master_host: 192.168.1.10 master_user: slave001 master_port: 3308 connect_retry: 60 master_log_file: mysql-bin.000003 read_master_log_pos: 1027 relay_log_file: localhost3308-relay-bin.000001 relay_log_pos: 4 relay_master_log_file: mysql-bin.000003 slave_io_running: no slave_sql_running: yes replicate_do_db: 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: 1027 relay_log_space: 107 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: nullmaster_ssl_verify_server_cert: no last_io_errno: 1593 last_io_error: fatal error: the slave i/o thread stops because master and slave have equal mysql server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it). last_sql_errno: 0 last_sql_error: replicate_ignore_server_ids: master_server_id: 11 row in set (0.00 sec)error: no query specifiedmysql>我在mysqld_multi.cnf里面添加了以下红色的,复制内容启动还是报错,请指点哇[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminuser = multi_adminpassword = my_password[mysqld2]socket = /tmp/mysql3307.sockport = 3307pid-file = /usr/local/mysql/data3307/localhost3307.piddatadir = /usr/local/mysql/data3307#language = /usr/local/mysql/share/mysql/englishuser = mysql[mysqld3]#mysqld = /path/to/mysqld_safe#ledir = /path/to/mysqld-binary/#mysqladmin = /path/to/mysqladminsocket = /tmp/mysql3308.sockport = 3308pid-file = /usr/local/mysql/data3308/localhost3308.piddatadir = /usr/local/mysql/data3308#language = /usr/local/mysql/share/mysql/swedishuser = mysqlmaster-host = 192.168.1.10master-user = slave001master-password = slave001master-port = 3306replicate-do-db=test错误:mysql> show slave status\g;*************************** 1. row *************************** slave_io_state: master_host: 192.168.1.10 master_user: slave001 master_port: 3306 connect_retry: 60 master_log_file: mysql-bin.000018 read_master_log_pos: 107 relay_log_file: localhost3308-relay-bin.000001 relay_log_pos: 4 relay_master_log_file: mysql-bin.000018 slave_io_running: no slave_sql_running: yes replicate_do_db: 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: 107 relay_log_space: 107 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: nullmaster_ssl_verify_server_cert: no last_io_errno: 1593 last_io_error: fatal error: the slave i/o thread stops because master and slave have equal mysql server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it). last_sql_errno: 0 last_sql_error: replicate_ignore_server_ids: master_server_id: 11 row in set (0.00 sec)
哎,经过几个小时的琢磨,终于看到庐山真面目了!以下是成功启动的效果;[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf reportreporting mysql serversmysql server from group: mysqld1 is runningmysql server from group: mysqld2 is runningmysql server from group: mysqld3 is runningmysql server from group: mysqld4 is running[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf reportreporting mysql serversmysql server from group: mysqld1 is runningmysql server from group: mysqld2 is runningmysql server from group: mysqld3 is runningmysql server from group: mysqld4 is running[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf reportreporting mysql serversmysql server from group: mysqld1 is runningmysql server from group: mysqld2 is runningmysql server from group: mysqld3 is runningmysql server from group: mysqld4 is running[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf reportreporting mysql serversmysql server from group: mysqld1 is runningmysql server from group: mysqld2 is runningmysql server from group: mysqld3 is runningmysql server from group: mysqld4 is running[root@mysql ~]#其实,在我配置muti的时候有些参数没有做好设置,到时server-id服务启动不起来,我把所有的muti的mysqld【1-4】全部放到我们的配置文件内/etc/my.cnf,包括我们的3306端口的实例库,在启动的时候一起跑即可!以下是我my.cnf的配置文件信心,请查阅;# the following options will be passed to all mysql clients[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminuser = root# here follows entries for some specific programs# the mysql server[mysqld1]datadir=/usr/local/mysql/datasocket=/tmp/mysql.sockuser=mysqlold_passwords=1port=3306skip-name-resolveserver_id=1log-bin=mysql-binmax_connections=1000key_buffer_size=218348query_cache_size=10read_rnd_buffer_size=134228table_cache=10000tmp_table_size=5362log-slow-queries=slow.loglong_query_time=1concurrent_insert=2thread_cache_size=300#log=/usr/local/mysql/data/mysql1.logpid-file=/usr/local/mysql/data/mysql1.pidlog-error=/usr/local/mysql/data/log.1log-slave-updatesslave-skip-errors=all[mysqld2]datadir=/usr/local/mysql/data3307socket=/tmp/mysql3307.sockuser=mysqlold_passwords=1skip-name-resolveserver_id=222log-bin=mysql-binmax_connections=1000key_buffer_size=218348query_cache_type=0read_rnd_buffer_size=1342128table_cache=10000tmp_table_size=5368912log-slow-queries=slow.loglong_query_time=1concurrent_insert=2thread_cache_size=300port=3307pid-file=/usr/local/mysql/data3307/localhost3307.pidlog-error=/usr/local/mysql/data3307/log.2[mysqld3]datadir=/usr/local/mysql/data3308socket=/tmp/mysql3308.sockuser=mysqlold_passwords=1skip-name-resolveserver_id=223log-bin=mysql-binmax_connections=1000key_buffer_size=218348query_cache_type=0read_rnd_buffer_size=1342128table_cache=10000tmp_table_size=5368912log-slow-queries=slow.loglong_query_time=1concurrent_insert=2thread_cache_size=300port=3308pid-file=/usr/local/mysql/data3308/localhost3308.pidlog-error=/usr/local/mysql/data3308/log.3[mysqld4]datadir=/usr/local/mysql/data3309socket=/tmp/mysql3309.sockuser=mysqlold_passwords=1skip-name-resolveserver_id=224log-bin=mysql-binmax_connections=1000key_buffer_size=218348query_cache_type=0read_rnd_buffer_size=1342128table_cache=10000tmp_table_size=5368912log-slow-queries=slow.loglong_query_time=1concurrent_insert=2thread_cache_size=300port=3309pid-file=/usr/local/mysql/data3309/localhost3309.pidlog-error=/usr/local/mysql/data3309/log.4以上就是配置的启动服务内容,我把server-id分到每个mysqld内部,并保持唯一即可,实现我们要做的单台服务器做主从复制的基本配置要求;配置主从的步骤很简单我就不在这里说了,有不了解如何做主从的可以随时留言即可,以下为我配置成功后主从的启动参数的效果;mysql> show slave status \g;*************************** 1. row *************************** slave_io_state: waiting for master to send event master_host: 192.168.0.10 master_user: backup master_port: 3306 connect_retry: 60 master_log_file: mysql-bin.000032 read_master_log_pos: 893 relay_log_file: localhost3307-relay-bin.000003 relay_log_pos: 253 relay_master_log_file: mysql-bin.000032 slave_io_running: yes slave_sql_running: yes replicate_do_db: 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: 893 relay_log_space: 1194 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: 0master_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: 11 row in set (0.00 sec)error: no query specifiedmysql>
原文地址:mysql主从复制,单台服务器上实施, 感谢原作者分享。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product