数据库安装和升级和双主配置

备份和导入数据

./mysqldump -u root -p123321 test > test.sql

rsync -av test.sql root@192.168.0.212:/usr/local/mysql/

./mysql -uroot -p test < .../test.sql

sudo tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

sudo ln -sfn /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql

设置目录权限

sudo chown -R mysql:mysql /usr/local/mysql

sudo chmod -R 755 /usr/local/mysql

进入MySQL的bin目录

cd /usr/local/mysql/bin

执行初始化(生成临时root密码 记住该密码!!!)

sudo ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

记录生成的临时密码(在输出日志中查找)

输出示例:A temporary password is generated for root@localhost: XXXXXXXX

-------------修改配置vi /etc/my.cnf

#[mysqld]

#datadir=/var/lib/mysql

#socket=/var/lib/mysql/mysql.sock

#symbolic-links=0

Settings user and group are ignored when systemd is used.

If you need to run mysqld under a different user or group,

customize your systemd unit file for mariadb according to the

instructions in http://fedoraproject.org/wiki/Systemd

添加以下内容(按需修改路径)

mysqld

basedir=/usr/local/mysql

datadir=/usr/local/mysql-5.7.33-linux-glibc2.12-x86_64/data

socket=/tmp/mysql.sock

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

bind-address = 0.0.0.0

双M结构(互为主备)配置开始

server-id = 1

log-bin = mysql-bin

binlog_format = ROW

gtid_mode = ON

enforce_gtid_consistency = ON

auto_increment_increment = 2

auto_increment_offset = 1

主库配置(确保只记录目标库的变更)

binlog-do-db = test

从库配置(确保只同步目标库的变更)

replicate-do-db = test

双M结构(互为主备)配置结束

client

socket=/tmp/mysql.sock

default-character-set=utf8mb4

#[mysqld_safe]

#log-error=/var/log/mariadb/mariadb.log

#pid-file=/var/run/mariadb/mariadb.pid

#log-error=/usr/local/mysql/log/mariadb/mariadb.log

#pid-file=/usr/local/mysql/run/mariadb/mariadb.pid

include all files from the config directory

!includedir /etc/my.cnf.d

-------------结束修改配置vi /etc/my.cnf

添加系统服务(可选)

sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

sudo chmod +x /etc/init.d/mysqld

启动服务

sudo service mysqld start

检查状态

sudo service mysqld status

登录MySQL

/usr/local/mysql/bin/mysql -u root -p

执行简单查询

SHOW DATABASES;

SELECT VERSION();

修改root密码:

UPDATE mysql.user SET Host='%' WHERE User='root';

FLUSH PRIVILEGES;

ALTER USER 'root'@'%' IDENTIFIED BY '123321';

FLUSH PRIVILEGES;

-------双主配置开始

-- 在两个服务器都执行:

CREATE USER 'repl'@'%' IDENTIFIED BY 'StrongPassword';

GRANT REPLICATION SLAVE ON . TO 'repl'@'%';

FLUSH PRIVILEGES;

stop slave;

CHANGE MASTER TO

MASTER_HOST='192.168.0.211',

MASTER_USER='repl',

MASTER_PORT=3306,

MASTER_PASSWORD='StrongPassword',

MASTER_AUTO_POSITION=1;

START SLAVE;

SHOW SLAVE STATUS;

stop slave;

RESET MASTER;

-------双主配置结束

--------升级

sudo tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

sudo ln -sfn /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql

备份旧文件(可选)

sudo cp /usr/local/mysql/bin/mysqld /backup/

替换二进制文件

sudo cp /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64/bin/* /usr/local/mysql/bin/

升级表

sudo service mysqld start

/usr/local/mysql/bin/mysql_upgrade -u root -p

--------升级结束

相关推荐
Edingbrugh.南空1 小时前
Flink SQLServer CDC 环境配置与验证
数据库·sqlserver·flink
码不停蹄的玄黓1 小时前
MySQL分布式ID冲突详解:场景、原因与解决方案
数据库·分布式·mysql·id冲突
爱上语文2 小时前
Redis基础(6):SpringDataRedis
数据库·redis·后端
Java初学者小白2 小时前
秋招Day14 - Redis - 应用
java·数据库·redis·缓存
丶意冷3 小时前
mybatisPlus分页方言设置错误问题 mybatisPlus对于Oceanbase的Oracle租户分页识别错误
java·数据库·oracle·oceanbase
时序数据说5 小时前
为什么时序数据库IoTDB选择Java作为开发语言
java·大数据·开发语言·数据库·物联网·时序数据库·iotdb
戒不掉的伤怀5 小时前
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
服务器·数据库·mysql
cv高级工程师YKY5 小时前
服务器 - - QPS与TPS介绍
数据库
nbsaas-boot5 小时前
高可扩展属性建模设计:架构师的全局思考与落地方案
数据库
爱上语文5 小时前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端