视频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
Linux下搭建MySQL主从同步
2020-11-09 12:10:42 责编:小采
文档


由于没有硬件环境,于是在虚拟机的Linux里编译安装了两个mysql,一个作为master一个作为slave,分别安装在/home/jhw/mysql和/hom

由于没有硬件环境,于是在虚拟机的Linux里编译安装了两个mysql,一个作为master一个作为slave,分别安装在/home/jhw/mysql和/home/jhw/mysql2,两个mysql默认同一个端口3306是不可以的,所以修改mysql2中的配置文件my.cnf,把port改成3307(还要注意socket的路径是否是当前mysql的安装路径,要一致)。如果在编译时没有指定datadir,还要在my.cnf中加入“datadir=/home/jhw/mysql2/data“,当然data目录需要mkdir自己建。

修改好配置文件后,测试两个mysql能不能启动,分别到bin目录下去执行 ./mysqld_safe & 命令,再用netstat -nltp查看3306和3307端口是否起来,启动没问题后登录到mysql中,这期间我把mysql的密码忘了,网上搜后,可以这样做,停止mysql服务,用mysqld_safe --skip-grant-tables &命令启动mysql ,再用空密码方式登陆mysql -uroot ,在mysql>里就可以修改密码了,,使用命令 mysql> update mysql.user set password=PASSWORD('新密码') where User='root'; mysql> flush privileges; mysql> quit 。重新启动linux后就可以了。

接下来就是配置主从了(这里把mysql作为主库,mysql2作为从库),首先在master上添加slave访问主机mysql的用户,登陆主库mysql,执行下面两条授权命令:

mysql> GRANT FILE ON *.* TO jhw@192.168.1.103 IDENTIFIED BY ‘密码’;

mysql> GRANT REPLICATION SLAVE ON *.* TO jhw@192.168.1.103 IDENTIFIED BY ‘密码';

其次,把要同步的数据库文件copy到丛库的data文件夹下,这里我把数据库名叫‘sg’的库文件copy到了丛库中。

然后,修改主库的配置文件,打开my.cnf,设置加入以下参数

log-bin= mysql-bin #打开logbin选项以能写到slave的 I/O线程;
server-id=1 #表示是本机的序号为1,一般来讲就是master的意思.
binlog-do-db= sg #表示同步aa数据库;

重启主库mysql。

再修改丛库配置文件,打开my.cnf, 找到[mysqld] 至少保证具有以下参数

server-id=2 #本机序号,表示为从机

master-connect-retry=60 #每60秒同步一次

replicate-do-db=sg #被同步的数据库

log-slave-updates #暂时不知什么作用

master-host =192.168.1.103 #master 的IP地址

master-user=jhw # 用来访问master的mysql用户

master-port =3306 #master中的mysqld的port

保存重启。

下载本文
显示全文
专题