一、环境准备(关闭防火墙)
1、清除已安装数据库
[root@mysql01 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.35-3.el7.x86_64
[root@mysql01 ~]# yum remove mariadb-libs-5.5.35-3.el7.x86_64
2、安装libaio-devel包
挂载光盘
配置yum仓库
[root@mysql01 yum.repos.d]# mount /dev/sr0 /mnt
[root@mysql01 yum.repos.d]# yum clean all
[root@mysql01 yum.repos.d]# yum repolist all
[root@mysql01 yum.repos.d]# yum intall -y libaio-devel
3、创建用户及用户密码
[root@mysql01 ~]# groupadd mysql
[root@mysql01 ~]# useradd -g mysql mysql
[root@mysql01 ~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
4、创建数据目录、日志目录,并修改目录所有者所属组
[root@mysql01 ~]# mkdir -p /data/3306/data
[root@mysql01 ~]# mkdir -p /data/3306/binlog
[root@mysql01 yum.repos.d]# chown -R mysql.mysql /data*
二、上传MySQL数据库安装包并解压
[root@mysql01 stage]# ll
-rw-r--r--. 1 root root 664749587 Jun 9 20:46 mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
[root@mysql01 stage]# gunzip mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
[root@mysql01 stage]# ll
-rw-r--r--. 1 root root 2648074240 Jun 9 20:46 mysql-5.7.29-linux-glibc2.12-x86_64.tar
[root@mysql01 stage]# tar -xvf mysql-5.7.29-linux-glibc2.12-x86_64.tar
[root@mysql01 stage]# ll
drwxr-xr-x. 9 root root 4096 Jun 9 21:15 mysql-5.7.29-linux-glibc2.12-x86_64
-rw-r--r--. 1 root root 2648074240 Jun 9 20:46 mysql-5.7.29-linux-glibc2.12-x86_64.tar
三、创建软连接,并修改数据库安装目录所有者所属组
[root@mysql01 stage]# ln -s /stage/mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql
[root@mysql01 stage]# ll /usr/local/
total 0
drwxr-xr-x. 2 root root 6 Mar 13 2014 bin
drwxr-xr-x. 2 root root 6 Mar 13 2014 etc
drwxr-xr-x. 2 root root 6 Mar 13 2014 games
drwxr-xr-x. 2 root root 6 Mar 13 2014 include
drwxr-xr-x. 2 root root 6 Mar 13 2014 lib
drwxr-xr-x. 2 root root 6 Mar 13 2014 lib64
drwxr-xr-x. 2 root root 6 Mar 13 2014 libexec
lrwxrwxrwx. 1 root root 42 Jun 9 21:17 mysql -> /stage/mysql-5.7.29-linux-glibc2.12-x86_64
drwxr-xr-x. 2 root root 6 Mar 13 2014 sbin
drwxr-xr-x. 5 root root 46 Mar 19 2019 share
drwxr-xr-x. 2 root root 6 Mar 13 2014 src
[root@mysql01 stage]# ll /usr/local/mysql/
total 292
drwxr-xr-x. 2 root root 4096 Jun 9 21:15 bin
drwxr-xr-x. 2 root root 52 Jun 9 21:15 docs
drwxr-xr-x. 3 root root 4096 Jun 9 21:15 include
drwxr-xr-x. 5 root root 4096 Jun 9 21:15 lib
-rw-r--r--. 1 7161 31415 276202 Dec 18 20:59 LICENSE
drwxr-xr-x. 4 root root 28 Jun 9 21:15 man
-rw-r--r--. 1 7161 31415 587 Dec 18 20:59 README
drwxr-xr-x. 28 root root 4096 Jun 9 21:15 share
drwxr-xr-x. 2 root root 86 Jun 9 21:15 support-files
四、修改环境变量并生效
[root@mysql01 stage]# vi /etc/profile
在文件末尾追加:
export PATH=/usr/local/mysql/bin:$PATH
[root@mysql01 stage]# source /etc/profile
[root@mysql01 stage]# mysql -V
mysql Ver 14.14 Distrib 5.7.29, for linux-glibc2.12 (x86_64) using EditLine wrapper
五、初始化
[root@mysql01 stage]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
六、编辑my.cnf参数文件
[root@mysql01 stage]# vi /etc/my3306.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
log_bin=/data/3306/binlog/mysql-bin
port=3306
server_id=1
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
七、启动数据库
[root@mysql01 stage]# mysqld_safe --defaults-file=/etc/my3306.cnf &
八、登陆数据库
[root@mysql01 stage]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
九、修改用户密码
alter user 'root'@'localhost' identified by 'mysql';
十、同上,搭建从库
从库参数文件如下:
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3307/data
log_bin=/data/3307/binlog
port=3307
server_id=2
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
十一、主从配置
1、主从库开启gtid功能
[root@mysql01 stage]# vi /etc/my3306.cnf
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=1
[root@mysql02 stage]# vi /etc/my3307.cnf
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=1
2、重启主从数据库使参数生效
[root@mysql01 stage]# mysqladmin shutdown
[root@mysql01 stage]# mysqld_safe --defaults-file=/etc/my3306.cnf &
[root@mysql02 stage]# mysqladmin shutdown
[root@mysql02 stage]# mysqld_safe --defaults-file=/etc/my3307.cnf &
3、确认主从数据库binlog已开启
mysql> select @@log_bin;
+-----------+
| @@log_bin |
+-----------+
| 1 |
+-----------+
1 row in set (0.00 sec)
4、主库创建复制用户
mysql> grant replication slave on *.* to 'repl'@'192.168.12.%' identified by 'mysql';
5、从库启动复制
CHANGE MASTER TO
MASTER_HOST='192.168.12.60',
MASTER_USER='repl',
MASTER_PASSWORD='mysql',
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1;
mysql> start slave;
6、查看从库状态
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.12.60
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000002
Read_Master_Log_Pos: 448
Relay_Log_File: mysql02-relay-bin.000002
Relay_Log_Pos: 655
Relay_Master_Log_File: binlog.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 448
Relay_Log_Space: 864
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 86b0307f-aa58-11ea-a834-005056395a48
Master_Info_File: /data/3307/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 86b0307f-aa58-11ea-a834-005056395a48:1
Executed_Gtid_Set: 86b0307f-aa58-11ea-a834-005056395a48:1
Auto_Position: 1
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
自此,MySQL 5.7.29主从配置完成。
- Mysql主从安装配置
Mysql主从安装配置 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置 ...
- MySQL 5.7.9 免安装配置
MySQL 5.7.9 免安装配置 环境:win10 64位 mysql版本:mysql-5.7.9-winx64.zip (http://dev.mysql.com/downloads/mysql/ ...
- python操作三大主流数据库(3)python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用
python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用 手册地址: http://docs.sqlalchemy.org/en/rel_1_1/orm/i ...
- mysql 5.7以上版本安装配置方法图文教程(mysql 5.7.12\mysql 5.7.13\mysql 5.7.14)(转)
http://www.jb51.net/article/90302.htm ******************************* 这篇文章主要为大家分享了MySQL 5.7以上缩版本安装配置 ...
- mysql数据库备份之主从同步配置
主从同步意义? 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave).因为复制是异步进行的,所以从服务 ...
- Linux 下 MySQL 的彻底卸载和安装配置字符集
前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了.之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子.下面的教程均是亲自实践. MySQL的彻底 ...
- Linux下MySQL的彻底卸载和安装配置字符集
前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了.之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子.下面的教程均是亲自实践. MySQL的彻底 ...
- MySQL 5.7.10 免安装配置
# 配置环境:windows 64bit # 安装版本:mysql-5.7.10-win32(zip archive版本) 1. ZIP Archive版是免安装的,只需把mysql-5.7.10-w ...
- mysql 5.7.12 winx64安装配置方法图文教程
这篇文章主要为大家分享了mysql 5.7.12winx64安装配置方法图文教程,感兴趣的朋友可以参考一下 之前安装mysql时未做总结,换新电脑,补上安装记录,安装的时候,找了些网友的安装记录, ...
随机推荐
- 结合实战和源码来聊聊Java中的SPI机制?
写在前面 SPI机制能够非常方便的为某个接口动态指定其实现类,在某种程度上,这也是某些框架具有高度可扩展性的基础.今天,我们就从源码级别深入探讨下Java中的SPI机制. 注:文章已收录到:https ...
- Java解释单链表中的头插法以及尾插法
单链表属于数据结构中的一种基本结构,是一种线性结构,在此使用Java对其中的头插法以及尾插法进行解释. 首先定义好链表中的节点类: 其中,data代表节点所存放的数据,next代表指向下一节点 对于单 ...
- 数据结构实训——哈夫曼(Huffman)编/译码器
题目4.哈夫曼(Huffman)编/译码器(限1人完成) [问题描述] 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本.但是,这要求在发送端通过一个编码系统对待传数据预先 ...
- tp5 跨域问题
只需要三行代码,写到入口文件public/index.php处即可解决 header("Access-Control-Allow-Origin:*"); header(" ...
- mongo命令行操作
- Javascript 严格模式的一些理解
平常我们在ECMAscript5中可以声明以下的变量 num = 5; console.log(num);//输出的是变量5 而为了Javascript更合理.更安全.更严谨的方向发展,添加了一种新的 ...
- 在windows环境下 nginx + .net core 3.1 实现反向代理和负载均衡
一.创建.net core web 应用 1.首先打开vs2019创建好.net core web应用,简单的注入IConfiguration 便于打印端口号展示效果. 1 private reado ...
- 锐安信sslTrus与GeoTrust SSL证书的对比
当您想要为您的网站购买一款SSL证书时,是不是既想要价格便宜,又想要安全性能服务好的证书,最后又在品牌上犹豫不决?如何选择SSL证书?哪款SSL证书是最适合您的?本文将详细对比分析锐成信息平台上畅销品 ...
- Jmeter(三十一) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy4(详解教程)
1.简介 上一篇文章中宏哥给小伙伴或童鞋们介绍讲解了手动添加Variable list的值,而实际工作中Badboy为我们提供了Variable setter工具,让我们不再使用哪一种比较笨拙的方法了 ...
- pthread 条件变量
在上一篇博客互斥量中,解决了线程如何互斥访问临界资源的问题. 在开始本文之前,我们先保留一个问题:为什么需要条件变量,如果只有互斥量不能解决什么问题? API init/destroy 条件变量的数据 ...