Linux学习8-mysql数据库,主从复制及常用命令
2026/8/27 13:08:01 网站建设 项目流程

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命令

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询