Ubuntu下安装Mysql(5.5)和主从功能配置

余生颓废 提交于 2020-03-13 21:56:53

Ubuntu下安装Mysql5.5)和主从功能配置

经过几天的折腾,终于把Mysql主从功能配置好了,其实配置很简单,不过还是遇到了各式各样的错误,下面总结一下,

在安装之前,可以先ping一下两台服务器是否可以互相通信,

ubuntu下在线安装Mysql相对比较简单,输入如下命令便可自动安装完成。

sudo apt-get install mysql-server

安装的过程中如果无法正常获取源数据,可以使用以下命令安装更新ubuntu的数据源

sudo apt-get update

我们可以通过netstat -tap|grep mysql来查看系统是否已经有了mysql服务

查询mysql 是否在运行,如输入一下命令

service mysql status

mysql start/running, process 10786

Mysql远程登录测试 

在主机上添加一个账户slave

进入mysql

输入以下的命令

grant replication slave,reload,super on *.* to slave@xx.103.118.99 identified by 'slave' ;

其中"slave@xx.103.118.99"slave是用户名,密码是'slave';

查看授权是否成功,可以输入以下命令:

select user ,host,password from mysql.user

在从机上进行测试,输入:

mysql -u slave -h xx.103.118.92 –p

若成功,显示如下:

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 38

Server version:5.5.28-0ubuntu0.12.04.3-log (Ubuntu)

 

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

若出现如下错误,

ERROR 2003 (HY000): Can't connect to MySQL server on "host" (111)

需要修改主机的配置文件将地址绑定给注释掉(/etc/mysql/my.cnf):

#bind-address           = 127.0.0.1  <---注释掉这一行就可以远程登录了

 

Mysql的主从复制原理很简单,就是从服务器读取主服务器的binlog,然后根据binlog的数据库操作记录来更新数据库。根据这一原理,可以对my.cnf配置文件进行相应的修改

主要添加如下配置:

server-id=1

log_bin=/var/log/mysql/mysql-bin.log

binlog_do_db=test   要进行主从复制的数据库

binlog_ignore_db=information_schema 不需要进行主从复制的数据库

 

配置好后重启mysql

sudo /etc/init.d/mysql restart

 

进入mysql,输入:

 

mysql> flush privileges;

mysql> show master status;

+------------------+----------+--------------+--------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB   |

+------------------+----------+--------------+--------------------+

| mysql-bin.000011 |      107 | test         | information_schema |

+------------------+----------+--------------+--------------------+

1 row in set (0.00 sec)

 

从机配置:(/etc/mysql/my.cnf):

server-id=2(不可以和主机id一样)

log_bin=/var/log/mysql/mysql-bin.log

replicate-do-db=test       要进行主从复制的数据库

replicate-ignore-db=information_shcema     不需要进行主从复制的数据库

 

配置好后重启mysql

sudo /etc/init.d/mysql restart

 

进入mysql,输入

stop slave;

change master to

master_host='xx.103.118.92',master_user='slave',master_password='slave',master_log_file='log.000011',master_log_pos=107;

 

start slave;

show slave status\G;

如果出现: 

Slave_IO_Running: Yes

Slave_SQL_Running: Yes 

以上两项都为Yes,那说明没问题了。

可以在主机上进行数据操作,看看从机是否会自动同步

若在从机遇到下面的错误,主要是主从同步的问题,Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in

binary log index file'

可以执行一下命令

stop slave;

reset slave;

start slave

 

安装成功后,我又重新安装配置了几次,发现如果没有执行reset slave,问题就无法解决。


 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!