Linux学习8-mysql数据库,主从复制及常用命令
MySQL数据库
mysql安装
官网下载链接
https://downloads.mysql.com/archives/community/
注意版本和操作系统


wget下载(最好是在虚拟机里复制一份)
![]()
解压缩

删除之前的cmake软链接
![]()
下载新的cmake压缩包

修改bash档案,把其中的路径后加上:/usr/local/cmake-3.28.4-linux-x86 64/bin
![]()
重新加载,查看cmake版本

安装额外软件仓库
![]()
切目录
![]()
编辑文件
![]()
修改配置文件,yum源改为aliyun

再修改下图文件,yum源同样改为aliyun
![]()
检查安装列表
![]()
安装gcc工具链
![]()
启动gcc工具
![]()
查看gcc与g++版本

安装编译依赖
![]()
切到mysql目录,新建目录并且切入
![]()
配置
cmake .. -DCMAKE_C_COMPILER=$(which gcc) -DCMAKE_CXX_COMPILER=$(which g++) -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DCMAKE_CXX_FLAGS="-O2" -DCMAKE_C_FLAGS="-O2" -DWITH_BOOST=../boost/boost_1_77_0 -DWITH_SYSTEMD=1 -DWITH_SSL=/usr/local/openssl -DWITH_ZLIB=bundled -DWITH_LIBAIO=1 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DMYSQL_MAINTAINER_MODE=0 -DWITH_DEBUG=0 -DINSTALL_TESTS=0 -DINSTALL_DOCS=0

以cpu核心数并行任务(耗时较长)
![]()
make install安装
初始化
添加新用户,且设置为无法登录系统,提高安全性

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
port=3306
user=mysql
pid-file=/data/mysql/mysql.pid
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
log-error=/data/mysql/mysql-error.log
innodb_buffer_pool_size=1G
max_connections=1000
[client]
socket=/data/mysql/mysql.sock
![]()
初始化

从日志中查看临时密码

在.bash_profile文件中的路径后加上新路径

切目录到scripts

复制mysqld服务到指定目录
![]()
重新加载,启用服务,设置开机自启

安全安装
![]()
输入之前的临时密码

选择如下,图中未出现的一律回车跳过,其中移除了匿名用户,禁止root远程登录,删除了测试数据库,刷新了权限表

启动mysql
![]()
查看databases

部署phpmyadmin
官网下载5.2.3压缩包

解压缩到指定目录
![]()
切目录
![]()
移动至指定目录,相当于做软链接
![]()
编辑文件
![]()
新增index.php

重新加载nginx
![]()
修改php-fpm配置
![]()


重新加载
![]()
浏览器访问

登录,成功

主从复制
master与slave配置
sever1作为master,sever2作为slave
这里应该为/etc/mysql/my.cnf
![]()
server id为1

先停止mysqld服务
将/usr/local/下的mysql远程复制到sever2,递归复制整个目录,保留源文件的修改时间、访问时间和权限模式

这里笔者犯了路径上的错误,应该是etc下的mysql目录,先确保已经在sever2上创建了mysql目录

切目录,这里只要保证sever2与sever1的uid gid相同即可,不做修改也可

创建新文件夹,提升权限

修改.bash_profile
![]()
路径更新

加载
![]()
初始化,查看临时密码

再次输入刚才生成的临时密码,之后的选择与之前相同
![]()
登录验证是否成功

这里才是正确修改了server id
![]()

重新启动服务
![]()
启动mysql

在sever2(客户端)上测试

查看master(sever1)状态

更直观的查看

sever2上指定master,LOG_FILE和LOG_POS从sever1中的SHOW MASTER STATUS中查看

启动slave

注意IO和SQL两处需为yes表示成功(记得slave与master之间的server id需不同,可以在etc下mysql的my.cnf中修改)
IO负责网络,确保从master复制日志文件成功
SQL控制数据是否同步

登录网站

新建数据库

参数如下


添加

也可以在虚拟机直接使用命令插入

slave上查看databases,出现test,代表slave从master上复制成功

第二台slave
数据流向:sever1->sever2->sever3
新slave配置
基本与原先配置slave的过程相同
先下载rsync
![]()
使用rsync命令将mysql增量负责

查看,同步成功

最好slave与master的MySQL id相同

创建文件夹

拷贝my.cnf
![]()
拷贝mysqld服务
![]()
修改.bash_profile路径

初始化
![]()
查看临时密码

选项与之前相同
![]()
sever1备份数据

复制到sever3
![]()
sever3创建数据库

备份导入sever3

成功

sever2上添加用户,授权

sever3访问sever2,成功

sever3上设置master为sever2


记得在/etc/mysql/my.cnf下修改server id,测试,成功

主从同步测试
在网站中新插入

也可以在虚拟机中使用命令插入

sever1查看

sever2同步成功

查看sever3,同步成功

一些常见mysql命令




openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)