你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

同一台服务器部署两个数据库完成指定表同步

2021/12/27 13:36:00

文章目录

  • 一、yum安装数据库1
  • 二、源码安装数据库2
  • 三、主从配置
    • 1.主库操作
    • 2.从库操作


一、yum安装数据库1

1.安装MySQL
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装
yum -y install mysql57-community-release-el7-10.noarch.rpm

之后就开始安装MySQL服务器。
yum -y install mysql-community-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。有时候会出现安装失败的情况,这个就是可能mariadb与我们安装的mysql版本冲突,所以我们分别执行以下3条指令
yum clean all yum makecache yum -y remove mariadb-libs再去进行安装mysql服务器就可以了

至此MySQL就安装完成了,然后是对MySQL的一些设置。
2 MySQL数据库设置
首先启动MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
[root@localhost ~]# systemctl status mysqld.service

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep “password” /var/log/mysqld.log

如下命令进入数据库:
[root@localhost ~]# mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
mysql>quit
但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch
Navicat for MySQL远程连接
默认情况下,mysql只允许本地登录,如果要开启远程连接,需要加权限;
mysql>use mysql;
mysql>select user, host from user;
如下图:root 中host 为localhost意思为仅从本地访问

mysql>grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;

mysql>flush privileges;
再次查询时为root 中host 为%,这样就行了

二、源码安装数据库2

MySQL官网进行源码下载
https://dev.mysql.com/downloads/mysql/
将压缩包放到/home下
mkdir /home/data3307

yum -y install gcc* cmake bison ncurses-devel openssl-devel

tar xzvf mysql-5.7.32.tar.gz

cd mysql-5.7.32/

cmake -DWITH_BOOST=/home/mysql-5.7.32/boost/boost_1_59_0/ -DCMAKE_INSTALL_PREFIX=/home/mysql-5.7.32 -DMYSQL_DATADIR=/home/data3307 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/home/data3307/mysqld.sock -DMYSQL_TCP_PORT=3307 -DWITH_DEBUG=0 -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1

make && make install
把第一个mysql的my.cnf 复制到压缩路径下,并编辑
cp /etc/my.cnf ./my.cnf
[mysqld]
basedir =/home/mysql-5.7.32/
datadir =/home/data3307/

后执行
scripts/mysql_install_db --user=mysql --basedir=/home/mysql-5.7.32/ --datadir=/home/data3307/ &
chown -R mysql:mysql dataTransline3307/
chown -R mysql:mysql mysql-5.7.32/
cd mysql-5.7.32/support-files/
cp mysql.server /etc/init.d/mysql2
chmod 777 /etc/init.d/mysql2
vim /etc/init.d/mysql2
1)找到以下文件进行添加
basedir =/home/mysql-5.7.32/
datadir =/home/data3307/
conf=/home/mysql-5.7.32/my.cnf
2)修改以下参数
b i n d i r / m y s q l d s a f e − − d a t a d i r = bindir/mysqld_safe --datadir= bindir/mysqldsafedatadir=datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1&替换为:
b i n d i r / m y s q l d s a f e − − d e f a u l t s − f i l e = / h o m e / m y s q l − 5.7.32 / m y . c n f − − d a t a d i r = " bindir/mysqld_safe --defaults-file=/home/mysql-5.7.32/my.cnf --datadir=" bindir/mysqldsafedefaultsfile=/home/mysql5.7.32/my.cnfdatadir="datadir" --pid-file="$mysqld_pid_file_path" KaTeX parse error: Expected 'EOF', got '&' at position 23: …rgs >/dev/null &̲ 3)把下面这句注释掉(前面…print_defaults $extra_args mysqld server mysql_server mysql.server`
/etc/init.d/mysql2 start
所不同的是,我们在第二个MYSQL登陆时要加上sock可以进入,否则默认是第一个数据库
mysql -uroot -p --socket=/home/data3307/mysql.sock
vim /home/mysql-5.7.32/my.cnf,在[mysqld]中添加
skip-grant-tables

重启mysql
/etc/init.d/mysql2 restart
使用用户无密码登录
mysql -uroot -p (直接点击回车,密码为空)
选择数据库
use mysql;
修改root密码
update user set authentication_string=password(‘654321’) where user=‘root’;
刷新权限
flush privileges;
退出
exit;
删除第1部增加的配置信息
skip-grant-tables
重启mysql
/etc/init.d/mysql2 restart
登录mysql
mysql –u root –p --socket=/home/data3307/mysql.sock
19. 选择数据库
use mysql;
You must reset your password using ALTER USER statement before executing this statement.
重置的密码需要初始化密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘654321’;
刷新权限
flush privileges;
退出
exit;
再次重新登录
重启服务器验证mysql是否正常运行。

三、主从配置

1.主库操作

修改主库配置文件
server-id=1
log_bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-do-db=test
binlog_format=MIXED

create user ‘replication’@‘127.0.0.1’ identified by ‘123456’;
grant replication slave on . to ‘replicate’@‘127.0.0.1’ identified by ‘123456’;
flush privileges;
在主数据库里面运行show master status;记下file和position字段对应的参数。
show master status;

2.从库操作

修改从库配置文件
server-id=2
log_bin=mysql-bin
binlog_format=MIXED
replicate-do-table=test.test

change master to master_host=‘127.0.0.1’,master_port=3306,master_user=‘replicate’,master_password=‘123456’,master_log_file=‘mysql-bin.000002’,master_log_pos=450;
这里的master_log_file和master_log_pos对应刚才show master status记下的参数。
start slave;
show slave status\G;
当Slave_IO_Running: Yes Slave_SQL_Running: Yes 都为yes同步成功