MySQL中的主从复制

MySQL中的主从复制,mysql,replication,master-slave,Mysql,Replication,Master Slave,我在设置主从单向复制系统的过程中遇到了一个问题。当我改变主机上的设置时,它看起来很好。但是在我改变了slave的设置之后。当我尝试进入主服务器上的MySQL时,会显示以下错误消息 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 我想问题可能是因为我没有更改/etc/mysql/my.cnf上服务器的绑定地址。因此,我再次尝试并更改两台

我在设置主从单向复制系统的过程中遇到了一个问题。当我改变主机上的设置时,它看起来很好。但是在我改变了slave的设置之后。当我尝试进入主服务器上的MySQL时,会显示以下错误消息

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我想问题可能是因为我没有更改
/etc/mysql/my.cnf
上服务器的绑定地址。因此,我再次尝试并更改两台服务器的绑定地址。主服务器和从服务器似乎连接了一段时间,因为从服务器复制了主服务器的功能。但是过了一会儿,错误消息
error 2002(HY000):无法通过套接字连接到本地MySQL服务器“/var/run/mysqld/mysqld.sock'(2)
再次显示,首先在主服务器上,然后在从服务器上。我试图通过重新启动服务器来解决此问题,但失败了

以下是我迄今为止所做的工作:

arp -a    //find ip of master and slave server
进入[mysqld]:

nano /etc/mysql/my.cnf
加:

在mysql中

for [master]

    create user 'repl'@'%' identified by 'slavepassword';

    grant replication slave on *.* to 'repl'@'%';

for [slave]

    change master to

    master_host='master server's ip',

    master_user='repl',

    master_password='slavepassword',

    master_log_file='mysql-bin.000001', // get from show master status

    master_log_pos=1358;                // get from show master status

    start slave;

    show slave status\G;

    show processlist;

在过程中更改主服务器的设置后,我确实重新启动了主服务器,但由于出现错误消息,重新启动失败

为什么要更改绑定地址?请尝试0.0.0.0或*进行测试。您还可以尝试通过mysql客户端从客户端访问主机,如$mysql-hip-u repl-p slavepassword当我尝试使用“mysql-hip-u repl-p slavepassword”进入mysql时,它会提示“输入密码:”以要求远程机器的根密码,而我没有根密码。我只有远程计算机的一个客户端的密码。而且,0.0.0.0不起作用。我猜可能有什么东西阻止了连接,比如防火墙?很抱歉,在-p和$mysql-h IP-u repl-pslavepassword这样的密码之间没有空格。为什么要更改绑定地址?请尝试0.0.0.0或*进行测试。您还可以尝试通过mysql客户端从客户端访问主机,如$mysql-hip-u repl-p slavepassword当我尝试使用“mysql-hip-u repl-p slavepassword”进入mysql时,它会提示“输入密码:”以要求远程机器的根密码,而我没有根密码。我只有远程计算机的一个客户端的密码。而且,0.0.0.0不起作用。我猜可能有什么东西阻止了连接,比如防火墙?对不起,在-p和$mysql-h IP-u repl-pslavepassword这样的密码之间没有空格
for [master]

    create user 'repl'@'%' identified by 'slavepassword';

    grant replication slave on *.* to 'repl'@'%';

for [slave]

    change master to

    master_host='master server's ip',

    master_user='repl',

    master_password='slavepassword',

    master_log_file='mysql-bin.000001', // get from show master status

    master_log_pos=1358;                // get from show master status

    start slave;

    show slave status\G;

    show processlist;