首页 > 数据库 >Ubuntu20.04安装Mysql8主从

Ubuntu20.04安装Mysql8主从

时间:2023-09-18 15:25:50浏览次数:48  
标签:Ubuntu20.04 8.0 20 Mysql8 数据库 usr mysql local 主从

Ubuntu20.04安装Mysql8主从

一.主数据库安装

1.下载安装包并初始化数据库

# 进入目录
cd /opt

# 下载安装包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

# 解压
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

# 拷贝到/usr/local
mv /opt/mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local

# 进入/usr/local
cd /usr/local

# 修改名称为mysql-8.0.20
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0.20

# 创建存放数据文件夹
mkdir /usr/local/mysql-8.0.20/data

# 创建用户及用户组
groupadd mysql
useradd -g mysql mysql

# 授权
chown -R mysql.mysql /usr/local/mysql-8.0.20

# 初始化数据库(记录临时密码)
cd /usr/local/mysql-8.0.20/

./bin/mysqld --user=mysql --lower-case-table-names=1 --basedir=/usr/local/mysql-8.0.20/ --datadir=/usr/local/mysql-8.0.20/data/ --initialize

image-20230918114152527

2.修改配置文件

# 配置my.cnf
vi /etc/my.cnf
# 清空,使用下面内容
[mysqld]
basedir=/usr/local/mysql-8.0.20
datadir=/usr/local/mysql-8.0.20/data
character-set-server=utf8
lower-case-table-names=1
default_authentication_plugin=mysql_native_password

# 主从复制-主机配置
# 主服务器唯一ID
server-id=1
# 启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=sys
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
# 设置需要复制的数据库(可设置多个)
binlog-do-db=xxl_job
binlog-do-db=nacos
# 设置logbin格式
binlog_format=STATEMENT

3.创建并启动Mysql服务

# 建立Mysql服务
cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
# 启动、停止、重启
systemctl start mysql.service
systemctl restart mysql.service
systemctl stop mysql.service

# 创建软连接
ln -s /usr/local/mysql-8.0.20/bin/mysql /usr/bin 
# 登录(使用临时密码)
mysql -uroot -p
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new password';
# 退出,使用新密码登录
quit
mysql -uroot -p

# 修改root权限,增加远程连接(从服务器为了安全可以不必执行)
use mysql
update user set host ='%' where user='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'cquisse';
flush privileges;
# 退出
quit

二.从数据库安装

安装步骤和主数据库的安装步骤基本一样,但配置文件内容不同,以及不必开启远程连接。

vi /etc/my.cnf
#添加如下内容
[mysqld]
basedir=/usr/local/mysql-8.0.20
datadir=/usr/local/mysql-8.0.20/data
character-set-server=utf8
lower-case-table-names=1
default_authentication_plugin=mysql_native_password

# 主从复制-从机配置
# 从服务器唯一ID
server-id=2
# 启用中继日志
relay-log=mysql-relay

三.配置主从复制

1.检查防火墙

  • 关闭主从数据库服务器防火墙或开放3306端口

    这里以firewall为例

    # 查看防火墙状态
    systemctl status firewalld
    # 关闭防火墙
    systemctl stop firewalld
    
    #往防火墙添加3306端口
    firewall-cmd --add-port=3306/tcp --permanent
    #重新加载防火墙配置
    firewall-cmd --reload 
    

2.数据库测试是否已经可以访问

# 从数据库服务器测试主数据库
mysql -uroot -p -h<主服务器IP> -P3306

3.主数据库创建用户slave并授权

# 登录
mysql -uroot -p

# 创建用户
create user 'slave'@'%' IDENTIFIED WITH mysql_native_password by 'password';

# 授权
grant replication slave on *.* to 'slave'@'%';

# 刷新权限
flush privileges;
  • 从数据库验证slave用户是否可用

    mysql -uslave -p -h<主服务器IP> -P3306
    

4.开始配置主从

  • 主数据库查询服务ID及Master状态

    # 登录
    mysql -uroot -p
    
    # 查询server_id是否可配置文件中一致
    show variables like 'server_id';
    
    # 若不一致,可设置临时ID(重启失效)
    set global server_id = 1;
    
    # 查询Master状态,并记录 File 和 Position 的值
    show master status;
    
    # 注意:执行完此步骤后退出主数据库,防止再次操作导致 File 和 Position 的值发生变化
    
  • 从数据库中设置主数据库

    # 登录
    mysql -uroot -p
    
    # 查询server_id是否可配置文件中一致
    show variables like 'server_id';
    
    # 若不一致,可设置临时ID(重启失效)
    set global server_id = 2;
    
    # 设置主数据库参数
    change master to master_host='主数据库IP',master_port=3306,master_user='slave',master_password='password',master_log_file='mysql-bin.000002',master_log_pos=156;
    
    # 开始同步
    start slave;
    
    # 若出现错误,则停止同步,重置后再次启动
    stop slave;
    reset slave;
    start slave;
    
    # 查询Slave状态
    show slave status\G
    
    # 查看是否配置成功
    # 查看参数 Slave_IO_Running 和 Slave_SQL_Running 是否都为yes,则证明配置成功。若为no,则需要查看对应的 Last_IO_Error 或 Last_SQL_Error 的异常值。
    
  • 测试
      通过工具连接主从数据库或者在服务器连接。
      注意:主数据库的配置文件中配置了需要同步的数据库,因此只会同步配置的数据库,不配置则同步全部。

# 在主数据库创建数据库test
create database test;

# 从数据库查看
show databases;

# 在主数据库创建表
use test;
create table t_user(id int, name varchar(20));

# 插入数据
insert into t_user values(1, 'C3Stones');

# 在从数据库查看
use test;
select * from t_user;

标签:Ubuntu20.04,8.0,20,Mysql8,数据库,usr,mysql,local,主从
From: https://www.cnblogs.com/blogof-fusu/p/17711895.html

相关文章

  • redis主从复制
    相关配置a.replica-read-onlyyes:从节点开启只读模式b.master-authxxxx:主节点访问密码c.replicaofip端口:从哪个主节点进行复制相关命令inforeplication查看主从信息主从复制分类主从刚连接的时候,会进行全量同步;全同步后,会进行增量同步。a.全量复制 i.mast......
  • Redis主从架构环境搭建(一主二从 + 3个sentinel)
    安装RedisServersudoadd-apt-repositoryppa:redislabs/redissudoaptupdatesudoaptinstallredis-serverredis-cli-h127.0.0.1-p6379pingsudosystemctlrestartredis-serverss-an|grep6379redis-server-vRedisserverv=7.0.12sha=00000000:0malloc=jem......
  • 基于k8s的statefulset+pv安装mysql5.7主从集群
    前提假设:1.已安装k8s环境;2.因为我使用nfs作为pv存储介质,所以需要预先配置好nfs服务nfs安装可参考:https://blog.csdn.net/wudinaniya/article/details/81068518 步骤:1.规划mysql持久化文件在nfs中的存储路径;2.创建mysqlpv;3.创建mysql configmap;4.创建mysql service;5.......
  • CentOS 7.6安装MySQL8
    下载yum源yuminstall-ywgetwgethttps://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm安装yum源rpm-ivhmysql80-community-release-el7-5.noarch.rpm安装MySQLyuminstall-ymysql-server启动mysql服务systemctlstartmysqld查看......
  • mysql8.0版本的下载与安装
    1.首先下载mysql,官网下载https://www.mysql.com/ 2.到页面底端,选择社区版 3.选择windows版本 4.选择较大的那个下载链接 5.跳过注册,直接下载二、Mysql8.0的安装1.双击下载后的安装文件,点击no,即自动升级选项  2.选择下一步  3. ......
  • 迁移pgsql从数据库(原先数据库架构为主从同步)
    迁移pgsql从数据库将原先的1.56服务器上的从数据库迁移至1.62服务器上55服务器为主库1、安装依赖包yum-yinstallreadlinegcc-yreadline-develzlib-devel2、下载对应版本的pgsql并解压编译安装下载地址:https://www.postgresql.org/ftp/source/tar-xvfpostgresql-11.6......
  • 转载:Ubuntu 开机自动运行脚本(适用于Ubuntu20.04版本及之后)
    Ubuntu开机自动运行脚本(适用于Ubuntu20.04版本及之后)原文网址:Ubuntu20.04--开机自动运行脚本(命令)--方法/实例_IT利刃出鞘的博客-CSDN博客1.创建rc-local.service文件sudocp/lib/systemd/system/rc-local.service/etc/systemd/system然后修改/etc/systemd/system/rc-l......
  • mysql8安装卸载脚本
    说明:安装8.0.34版本mysql,脚本执行完成后会自动启动mysql,修改数据库root密码为Lz!2023@aD使用方法:./mysql_install.shinstall#安装数据库./mysql_install.shuninstall#卸载数据库安装包获取地址:链接:https://pan.baidu.com/s/1qpuFXaCTo1NQ44Hq_Vd_vg?pwd=9948#!/......
  • Mysql8.0升级到8.1
    1.官网下载8.1版本本次选择的zip的方式,也可选择MSI的方式(MSI文件下载后双击即可安装)   2.备份旧版中的数据库(使用Navicate工具做的备份)命令方式备份数据:mysqldump-uroot-proot-h127.0.0.1-P3306--all-databases>“F:\MySQL\MySQLServer8.0\data\backup.sql”3......
  • Mysql主从复制原理
     本文总结自网上关于Mysql复制原理的一些文章。----------------------------------------------------------1、Mysql复制是一个异步的复制,从masterinstance到slaveinstance,实现整个复制操作主要使用3个进程完成。其中2个进程是Slave的Sql进程和IO进......