第1步:在主/从服务器上安装MariaDB
在Master和Slave服务器上安装MariaDB。
sudo apt update sudo apt-get install mariadb-server mariadb-client
安装MariaDB后,下面的命令可用于停止,启动和启用MariaDB服务。
在Ubuntu 16.04 LTS上运行:
sudo systemctl stop mysql.service sudo systemctl start mysql.service sudo systemctl enable mysql.service
在Ubuntu 18.04 LTS上运行:
sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
之后,运行以下命令,通过创建root密码并禁止远程根访问来保护MariaDB服务器。
sudo mysql_secure_installation
出现提示时,回答以下问题。
- 输入root的当前密码(输入无):只需按Enter键
- 设置root密码? [Y/N]:Y
- 新密码:输入密码
- 重新输入新密码:重复密码
- 删除匿名用户? [Y/N]:Y
- 远程禁止root登录? [Y/N]:Y
- 删除测试数据库并访问它? [Y/N]:Y
- 现在重新加载权限表? [Y/N]:Y
服务器准备
为了实现复制,我们需要两个或者更多服务器。
一台服务器将作为主服务器,另外一台作为从属服务器。
Primary = 192.168.1.1 Slave = 192.168.1.2
第4步:设置从服务器
打开从服务器配置文件。
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
修改下面内容:
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. log-bin bind-address = 192.168.1.2 server_id = 2
重新启动从服务器。
在从服务器上进行更改后,重新启动MariaDB服务器。
sudo systemctl restart mariadb.service sudo systemctl restart mysql.service
登录到从服务器。
sudo mysql -u root -p
停止从服务:
STOP SLAVE;
配置从服务器与主服务器通信,账号是我们之前创建的。日志文件和位置是刚在主服务器中记下的。
CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='replication_user', MASTER_PASSWORD='type_replication_user_password', MASTER_LOG_FILE='master1-bin.000001', MASTER_LOG_POS=315;
启动从站。
START SLAVE;
运行以下SQL命令进行测试:
SHOW SLAVE STATUS \G
输出示例:
Slave_IO_Running: Yes Slave_SQL_Running: Yes
两个Yes表示从服务器将从主服务器进行复制。配置成功。
第3步:配置MariaDB主服务器
配置主服务器,打开下面的配置文件:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
添加或者更改下面内容:
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. log-bin bind-address = 192.168.1.1 server_id = 1 log-basename = master1
进行更改后,重新启动MariaDB服务器。
sudo systemctl restart mariadb.service sudo systemctl restart mysql.service
在配置和重新启动Master Server后,登录并创建将用于复制的用户帐户。
这些帐户将拥有用户名和密码,并由从服务器使用。
运行以下命令以登录MariaDB主服务器。
sudo mysql -u root -p
登录后,创建新帐户用于进行复制。
CREATE USER 'replication_user'@'192.168.1.2' IDENTIFIED BY 'new_password_here';
接下来,运行以下命令以授予对从服务器的完全访问权限
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'192.168.1.2';
运行以下命令查看主服务器详细信息。
SHOW MASTER STATUS;
输出示例
MariaDB [(none)]> SHOW MASTER STATUS; +--------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +--------------------+----------+--------------+------------------+ | master1-bin.000001 | 315 | | | +--------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) MariaDB [(none)]>
记下文件服务器的文件( master1-bin.000001)和位置(315)详细信息。
日期:2020-07-07 20:55:06 来源:oir作者:oir