视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Mysql主从复制,单台服务器上实施
2020-11-09 13:09:57 责编:小采
文档

原文链接:?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 -tunlp
Active 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 report
Reporting MySQL servers
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is running
MySQL server from group: mysqld4 is running
[root@mysql mysql]# lsof -i:3308
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 17388 mysql 11u IPv6 45429 TCP *:tns-server (LISTEN)
[root@mysql mysql]# lsof -i:3307
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 17423 mysql 11u IPv6 45479 TCP *psession-prxy (LISTEN)
[root@mysql mysql]# lsof -i:3309
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 20371 mysql 11u IPv6 47851 TCP *:tns-adv (LISTEN)
[root@mysql mysql]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 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: NULL
Master_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: 1
1 row in set (0.00 sec)
ERROR: 
No query specified
mysql>
我在mysqld_multi.cnf里面添加了以下红色的,复制内容启动还是报错,请指点哇
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = multi_admin
password = my_password
[mysqld2]
socket = /tmp/mysql3307.sock
port = 3307
pid-file = /usr/local/mysql/data3307/localhost3307.pid
datadir = /usr/local/mysql/data3307
#language = /usr/local/mysql/share/mysql/english
user = mysql
[mysqld3]
#mysqld = /path/to/mysqld_safe
#ledir = /path/to/mysqld-binary/
#mysqladmin = /path/to/mysqladmin
socket = /tmp/mysql3308.sock
port = 3308
pid-file = /usr/local/mysql/data3308/localhost3308.pid
datadir = /usr/local/mysql/data3308
#language = /usr/local/mysql/share/mysql/swedish
user = mysql
master-host = 192.168.1.10
master-user = slave001
master-password = slave001
master-port = 3306
replicate-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: NULL
Master_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: 1
1 row in set (0.00 sec)
哎,经过几个小时的琢磨,终于看到庐山真面目了!以下是成功启动的效果;
[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is running
MySQL server from group: mysqld4 is running
[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is running
MySQL server from group: mysqld4 is running
[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is running
MySQL server from group: mysqld4 is running
[root@mysql ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is running
MySQL 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_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = root
# Here follows entries for some specific programs
# The MySQL server
[mysqld1]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
old_passwords=1
port=3306
skip-name-resolve
server_id=1
log-bin=mysql-bin
max_connections=1000
key_buffer_size=218348
query_cache_size=10
read_rnd_buffer_size=134228
table_cache=10000
tmp_table_size=5362
log-slow-queries=slow.log
long_query_time=1
concurrent_insert=2
thread_cache_size=300
#log=/usr/local/mysql/data/mysql1.log
pid-file=/usr/local/mysql/data/mysql1.pid
log-error=/usr/local/mysql/data/log.1
log-slave-updates
slave-skip-errors=ALL
[mysqld2]
datadir=/usr/local/mysql/data3307
socket=/tmp/mysql3307.sock
user=mysql
old_passwords=1
skip-name-resolve
server_id=222
log-bin=mysql-bin
max_connections=1000
key_buffer_size=218348
query_cache_type=0
read_rnd_buffer_size=1342128
table_cache=10000
tmp_table_size=53612
log-slow-queries=slow.log
long_query_time=1
concurrent_insert=2
thread_cache_size=300
port=3307
pid-file=/usr/local/mysql/data3307/localhost3307.pid
log-error=/usr/local/mysql/data3307/log.2
[mysqld3]
datadir=/usr/local/mysql/data3308
socket=/tmp/mysql3308.sock
user=mysql
old_passwords=1
skip-name-resolve
server_id=223
log-bin=mysql-bin
max_connections=1000
key_buffer_size=218348
query_cache_type=0
read_rnd_buffer_size=1342128
table_cache=10000
tmp_table_size=53612
log-slow-queries=slow.log
long_query_time=1
concurrent_insert=2
thread_cache_size=300
port=3308
pid-file=/usr/local/mysql/data3308/localhost3308.pid
log-error=/usr/local/mysql/data3308/log.3
[mysqld4]
datadir=/usr/local/mysql/data3309
socket=/tmp/mysql3309.sock
user=mysql
old_passwords=1
skip-name-resolve
server_id=224
log-bin=mysql-bin
max_connections=1000
key_buffer_size=218348
query_cache_type=0
read_rnd_buffer_size=1342128
table_cache=10000
tmp_table_size=53612
log-slow-queries=slow.log
long_query_time=1
concurrent_insert=2
thread_cache_size=300
port=3309
pid-file=/usr/local/mysql/data3309/localhost3309.pid
log-error=/usr/local/mysql/data3309/log.4

下载本文
显示全文
专题