MySQL安装-多实例-开启binlog-主从复制

版权声明:版权来自翻版 https://blog.csdn.net/weixin_44455125/article/details/89394195

mysql安装

安装

解压二进制软件包
修改/etc/profile设置环境变量

export PATH=/data/mysql/bin:$PATH

使用mysql -V 显示版本号检查

mysql  Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using  EditLine 

wrapper
清理历史软件包

rpm -qa |grep “mariadb”
yum remove

创建用户

useradd mysql

下载依赖

yum install -y libaio-devel

初始化库

执行:/data/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data

[root@db01 bin]# /data/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
2019-04-03T03:31:36.286097Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-04-03T03:31:39.742767Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-04-03T03:31:40.361162Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-04-03T03:31:40.507728Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: fe99ae3c-55c0-11e9-abcc-000c293e875b.
2019-04-03T03:31:40.509695Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-04-03T03:31:40.512733Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
[root@db01 bin]# /data/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
--initialize-insecure: 是用无安全限制的方式进行数据初始化

--user=mysql          :设置数据的管理用户

--basedir=/data/mysql :软件的安装路径

 --datadir=/data/mysql/data :数据的存储位置

修改权限

chown -R mysql. /data/

准备启动脚本和基础配置文件

cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@db01 mysql]# /etc/init.d/mysqld 
Usage: mysqld  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]
[root@db01 mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/data/db01.err'.
SUCCESS! 
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/data/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
[mysql]
socket=/tmp/mysql.sock

准备systemd管理的脚本

vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
停止重启
/etc/init.d/mysqld stop
	systemctl start mysqld
	登录数据库

多实例配置

多实例应用:
多实例的应用

准备多个目录

mkdir -p /data/330{7,8,9}/data

准备配置文件

----------------------------
vim /data/3307/my.cnf
[mysqld]
basedir=/data/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
---------------------------
vim /data/3308/my.cnf
[mysqld]
basedir=/data/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
---------------------------
vim /data/3309/my.cnf
[mysqld]
basedir=/data/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
---------------------------

初始化三套数据

mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/data/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3308/data --basedir=/data/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3309/data --basedir=/data/mysql

systemd管理多实例

cd /etc/systemd/system
cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service
vim mysqld3307.service
ExecStart=/data/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
vim mysqld3308.service
ExecStart=/data/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
vim mysqld3309.service
ExecStart=/data/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf

授权

chown -R mysql.mysql /data/*

启动

systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service

验证多实例(检查端口)

[root@db01 system]# netstat -lnp|grep 330
tcp6       0      0 :::3306                 :::*                    LISTEN      8621/mysqld         
tcp6       0      0 :::3307                 :::*                    LISTEN      8771/mysqld         
tcp6       0      0 :::3308                 :::*                    LISTEN      8778/mysqld         
tcp6       0      0 :::3309                 :::*                    LISTEN      8785/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     61660    8778/mysqld          /data/3308/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     61628    8771/mysqld          /data/3307/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     61663    8785/mysqld          /data/3309/mysql.sock

(检查服务)

 [root@db01 system]# mysql -S /data/3307/mysql.sock -e "show variables like 'server_id'"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 7     |
+---------------+-------+
[root@db01 system]# mysql -S /data/3308/mysql.sock -e "show variables like 'server_id'"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 8     |
+---------------+-------+
[root@db01 system]# mysql -S /data/3309/mysql.sock -e "show variables like 'server_id'"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 9     |
+---------------+-------+

开启bin_log

1.创建日志目录
mkdir /data/binlog
chown -R mysql.mysql /data/binlog
2.修改配置文件
vim /etc/my.cnf
server_id=6                                    ----->5.6中,单机可以不需要此参数              
log_bin=/data/binlog/mysql-bin
binlog_format=row
3.重启数据库生效
[root@db01 mysql]# /etc/init.d/mysqld restart
4.查看日志的开启情况

log_bin参数设置的路径,可以找到二进制日志

Master [(none)]>show variables like '%log_bin%';
+---------------------------------+------------------------------+
| Variable_name                   | Value                        |
+---------------------------------+------------------------------+
| log_bin                         | ON                           |
| log_bin_basename                | /data/binlog/mysql-bin       |
| log_bin_index                   | /data/binlog/mysql-bin.index |
| log_bin_trust_function_creators | OFF                          |
| log_bin_use_v1_row_events       | OFF                          |
| sql_log_bin                     | ON                           |
+---------------------------------+------------------------------+
6 rows in set (0.01 sec)

开启GTID

查看GTID是否开启

mysql> select @@session.gtid_next;
+---------------------+
| @@session.gtid_next |
+---------------------+
| AUTOMATIC           |
+---------------------+
1 row in set (0.00 sec)

开启GTID

SET @@SESSION.GTID_NEXT= 'ANONYMOUS';
vim /etc/my.cnf
gtid-mode=on
enforce-gtid-consistency=true

主从复制

#使用了多实例3307和3306进行搭建

主库中创建复制用户
db01 [(none)]>grant replication slave on *.* to repl@'10.0.0.%' identified by '123';
db01 [(none)]>select user,host from mysql.user;
备份主库
[root@db01 system]# mysqldump -uroot -p  -A --master-data=2 --single-transaction  -R --triggers >/backup/full.sql
#打开生成的备份文件,找到:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=653;
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=444;
#登录3307从库
mysql -S /data/3307/mysql.sock 
#恢复数据
source /backup/full.sql;
告知从库主库关键信息
CHANGE MASTER TO
MASTER_HOST='10.0.0.52',
MASTER_USER='repl',
MASTER_PASSWORD='123',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=444,
MASTER_CONNECT_RETRY=10;

从库执行

mysql> CHANGE MASTER TO
    -> MASTER_HOST='10.0.0.52',
    -> MASTER_USER='repl',
    -> MASTER_PASSWORD='123',
    -> MASTER_PORT=3307,
    -> MASTER_LOG_FILE='mysql-bin.000003',
    -> MASTER_LOG_POS=444,
    -> MASTER_CONNECT_RETRY=10;
Query OK, 0 rows affected, 2 warnings (0.07 sec)

mysql> 
开启从库线程
mysql> start slave;
Query OK, 0 rows affected (0.02 sec)
检查
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
#主从环境,主库开启了GTID,从库也要开启

mysql8.0

#下载地址
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44455125/article/details/89394195
今日推荐