主从数据库部署

主从数据库部署

主从数据库概念地址:
首先,新建虚拟机,我们默认是使用CentOS-7-x86_64-DVD-1511的镜像
镜像地址:
链接:https://pan.baidu.com/s/1Myl_GXnUg7t3OR01mCuMrQ
提取码:1511

①安装两台虚拟机,配置ip,yum源

安装虚拟机,配置ip,配置yum源地址教程

②修改主机名(主从数据库同理)

这里我们设置主数据库为mysql0,从数据库为mysql1

> [root@localhost /]# hostnamectl set-hostname mysql0    (修改主机名)
> [root@localhost /]# bash  (刷新shell命令行)
> [root@mysql0 /]# su -    (重新登录) 
> [root@mysql0 ~]# hostnamectl  (查看主机信息)

在这里插入图片描述

③关闭防火墙和SELinux服务

防火墙和SELinux开启关闭教程

> [root@mysql0 ~]# setenforce 0   (设置关闭   1开启0关闭) 
> [root@mysql0 ~]# systemctl stop firewalld    (关闭防火墙) 
> [root@mysql0 ~]# getenforce     (查看进程  Enforcing开启Permissive关闭) 
> Permissive

④配置/etc/hosts文件(主从数据库同理)

文件最后加上主从数据库ip和主机名
在这里插入图片描述

⑤安装数据库和数据库服务(主从数据库同理)


> [root@mysql0 /]# yum install -y mariadb mariadb-server(安装数据库以及服务)
> [root@mysql0 /]# systemctl start mariadb    (启动数据库) 
> [root@mysql0 /]# systemctl enable mariadb   (设置开机自启) 
> Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. 

⑥初始化数据库(主从数据库同理)

> [root@mysql1 ~]# mysql_secure_installation  (格式化数据库)

步骤参考以下↓

[root@mysql1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation:379: find_mysql_client: 未找到命令

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
为了登录MariaDB以保护它,我们需要根用户的密码。如果你刚刚安装了MariaDB
您尚未设置根密码,密码将为空,所以你应该在这里按回车键。


Enter current password for root (enter for none): (提示未创建密码,默认回车)
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y       (设置数据库密码)  
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
默认情况下,MariaDB安装有一个匿名用户,允许任何人无需创建用户帐户即可登录MariaDB
他们。这仅用于测试和安装做得更流畅一点。你应该在搬进生产环境。


Remove anonymous users? [Y/n] y      (将数据库放进生产环境) 
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
通常,只允许root从“localhost”连接。这个确保有人无法从网络中猜出根密码。


Disallow root login remotely? [Y/n] n      (不仅仅允许root登录)
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
默认情况下,MariaDB附带了一个名为“test”的数据库,任何人都可以进入。这也仅用于测试,应将其移除在进入生产环境之前。

Remove test database and access to it? [Y/n] y    (删除原有数据库)
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
重新加载特权表将确保到目前为止所做的所有更改将立即生效

Reload privilege tables now? [Y/n] y     (立即生效所有更改)
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

⑦修改数据库配置文件(主从数据库同理)

> [root@mysql0 /]# cat /etc/my.cnf    (修改这个文件 添加以下这三项)
log_bin=mysql-bin          (记录操作日志)
binlog_ignore_db=mysql     (不同步mysql系统数据库)
server_id=111              (数据库集群中每个节点ID都要不同)

在这里插入图片描述

⑧主数据配置

在数据库进行如下两条命令

grant all privileges on *.* to root@'%'identified by "SICT";
grant replication slave on *.* to 'xiaobai'@'mysql1' identified by "SICT";

(SICT为数据库密码,xiaobai为主数据库节点上新建的用户)

> [root@mysql0 /]# systemctl restart mariadb    (重启数据库) 
> [root@mysql0 /]# mysql -uroot -p      (输入密码) 
> MariaDB [(none)]> grant all privileges on *.* to root@'%'identified by "SICT"; 
> Query OK, 0 rows affected (0.00 sec)
> 
> MariaDB [(none)]> grant replication slave on *.* to 'xiaobai'@'mysql1' identified by "SICT";
>  Query OK, 0 rows affected (0.00 sec)

⑨从数据库配置

在数据库进行如下命令

MariaDB [(none)]> change master to master_host='mysql0',master_user='xiaobai',master_password='SICT';
    (这里的mysql0是我的主数据库,xiaobai是主数据库用户,SICT我的数据库密码)
Query OK, 0 rows affected (0.36 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show slave status\G

以下两项均为yes则表示主从数据库部署成功,在主数据库进行的修改,会自动同步到从数据库。
在这里插入图片描述

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Linux部署主从数据库需要以下步骤: 1. 安装数据库软件,如MySQL或PostgreSQL。 2. 在主数据库上创建一个新的用户,并授予该用户复制权限。 3. 在主数据库上启用二进制日志功能,以便将更改记录到二进制日志文件中。 4. 在从数据库上创建一个新的数据库,并将其设置为从主数据库复制数据的目标。 5. 在从数据库上配置主数据库的连接信息,并启用从数据库的复制功能。 6. 测试主从数据库的连接和同步状态,确保数据能够正确地复制到从数据库中。 7. 定期监控主从数据库的状态,以确保它们始终保持同步并且没有出现故障。 总之,部署主从数据库需要一定的技术知识和经验,需要仔细考虑各种因素,如性能、可靠性和安全性等。 ### 回答2: 主从复制是一种实现高可用性、数据冗余备份的方案,也是一种扩展MySQL读操作能力的方式之一。在您的应用程序环境中可以将主数据库用于写操作,从数据库用于读操作,以提高数据库的性能和可用性。本文将介绍如何在Linux环境中部署主从数据库。 一、安装MySQL 首先在两台服务器上分别安装MySQL数据库。可使用以下命令安装: $ sudo apt-get update $ sudo apt-get install mysql-server 在安装MySQL时需要指定MySQL的密码和确认该密码。 二、配置主服务器 在主服务器上配置MySQL以使其启用主从复制功能。编辑MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf(或者/etc/mysql/my.cnf): $ vim /etc/mysql/mysql.conf.d/mysqld.cnf 在这里指定MySQL服务器在启动时所监听的IP地址和端口号: bind-address=0.0.0.0 port=3306 同时开启二进制日志功能: log-bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M 重启MySQL服务器让这些设置生效: $ sudo systemctl restart mysql 三、创建从库复制用户 在主服务器上创建用于从服务器复制数据的引擎用户。可使用以下命令: mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'; FLUSH PRIVILEGES; 该用户只需要复制数据,因此只在访问复制的数据时所需的权限即可。 四、备份主服务器上的数据 在主服务器上必须备份MySQL数据库。可使用以下命令: $ mysqldump -u root -p --all-databases --lock-all-tables > db_backup.sql 此命令将所有数据库和所有表都备份到文件db_backup.sql中。 五、配置从服务器 在从服务器上配置MySQL以复制主服务器上的数据。编辑MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf(或者/etc/mysql/my.cnf): $ vim /etc/mysql/mysql.conf.d/mysqld.cnf 本例中,我们使用IP地址127.0.0.1作为MySQL的监听地址。这意味着从服务器将只接受来自本地主机的连接: bind-address=127.0.0.1 port=3306 启用从服务器的日志(用于调试目的): log-bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M 然后重启MySQL使其生效: $ sudo systemctl restart mysql 六、指定主服务器和相关信息 在从服务器上指定主服务器。可使用以下命令: mysql> STOP SLAVE; mysql> CHANGE MASTER TO MASTER_HOST='192.168.56.101', MASTER_USER='slave', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; mysql> START SLAVE; 此命令的第一行停止从服务器的复制功能。 CHANGE MASTER语句更新复制从服务器的主服务器的详细信息。在MASTER_LOG_FILE和MASTER_LOG_POS参数中指定用于配置复制的位置。这里,我们指定从服务器应该从主服务器的第一个二进制日志文件开始复制(mysql-bin.000001),并从文件中的第107个位置开始(MASTER_LOG_POS)。 最后,通过使用START SLAVE命令启用从服务器的复制功能。 七、检查从服务器状态 在从服务器上使用以下命令检查从服务器的状态: mysql> SHOW SLAVE STATUS\G 如果看到Retry column等于0,则说明复制正在正常地进行中。如果您看到一些错误代码,请查看MySQL官方文档以了解如何排除故障。 以上是在Linux环境中部署主从数据库的详细步骤,当然,具体部署可能有所差异。在实际操作中应结合自己场景进行调整和完善,使得主从复制技术更好的发挥其优势。 ### 回答3: 在Linux系统中,如何部署主从数据库主从数据库部署是为了实现数据库的高可用性和容错性。在主从数据库中,主服务器负责写入操作,从服务器负责读取操作。当主服务器宕机或发生故障时,系统会自动切换到从服务器,确保服务的持续运行。下面我们详细介绍如何在Linux系统中部署主从数据库。 首先,我们需要安装数据库软件。MySQL是一种流行的数据库软件,支持主从数据库部署。我们可以使用以下命令在Linux系统中安装MySQL: ``` sudo apt-get update sudo apt-get install mysql-server ``` 安装完成后,我们需要进行一些配置,使MySQL支持主从数据库部署。首先,在主服务器上修改my.cnf配置文件,添加以下内容: ``` server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = exampledb ``` 其中,server-id是一个唯一的标识,必须在主从服务器中唯一;log_bin是二进制日志文件的路径,用于记录所有的写入操作;binlog_do_db指定需要进行主从同步的数据库。 接着,在从服务器上修改my.cnf配置文件,添加以下内容: ``` server-id = 2 relay-log = /var/log/mysql/mysql-relay-bin.log log_slave_updates = 1 read_only = 1 ``` 其中,server-id同样是一个唯一的标识;relay-log是从服务器上的中继日志文件,用于记录主服务器发送过来的日志;log_slave_updates表示从服务器是否记录自己的写入操作;read_only表示从服务器是否只读。 然后我们需要在主服务器上创建一个用于同步的用户,并授权其访问主服务器上的数据库。我们可以使用以下命令: ``` CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; ``` 其中,repl是用于同步的用户,password是密码。 接着,在从服务器上启动从服务器,执行以下命令: ``` CHANGE MASTER TO MASTER_HOST='master_host_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='bin_log.000001', MASTER_LOG_POS=4; START SLAVE; ``` 其中,master_host_ip是主服务器的IP地址;repl和password分别是之前创建的用户和密码;bin-log.000001是主服务器上的二进制日志文件名,MASTER_LOG_POS是主服务器上的位置信息。 执行完以上命令后,在从服务器上可以通过以下命令查看从服务器状态: ``` SHOW SLAVE STATUS \G ``` 如果状态中的Slave_IO_Running和Slave_SQL_Running都显示Yes,则说明主从同步已经成功进行。 总结一下,在Linux系统中部署主从数据库的步骤如下: 1. 安装MySQL数据库软件。 2. 在主服务器上修改my.cnf配置文件,添加server-id、log_bin和binlog_do_db参数。 3. 在从服务器上修改my.cnf配置文件,添加server-id、relay-log、log_slave_updates和read_only参数。 4. 在主服务器上创建用于同步的用户,并授权访问权限。 5. 在从服务器上启动从服务器,并执行CHANGE MASTER TO和START SLAVE命令。 6. 查看从服务器状态,确认主从同步已经成功进行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值