Linux企业运维——MYSQL数据库

本文详细介绍了MySQL数据库的安装部署、网页版数据库的配置、异步复制、GTID复制、半同步复制、组复制以及MySQL路由器和MHA高可用方案。通过实例演示了主从复制、多主模式配置、延迟同步、并行复制和故障切换过程,展示了MySQL在高可用性和数据一致性方面的多种策略和技术实践。

1.mysql数据库的安装部署

lftp 172.25.254.250
cd pub/docs/lamp
get mysql-boost-5.7.31.tar.gz   #下载压缩包
tar zxf mysql-boost-5.7.31.tar.gz  #解压
cd mysql-5.7.31/
yum install cmake  #安装cmake
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DWITH_BOOST=/root/mysql-5.7.31/boost/boost_1_59_0      #配置测试
缺少两个插件,下载安装
yum install bison.x86_64
yum install gcc-c++ -y
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DWITH_BOOST=/root/mysql-5.7.31/boost/boost_1_59_0    ##再次测试
make    #编译
make install    #安装 

安装完成!

cd    #切换环境到家目录
vim .bash_profile   #配置全局文件,添加mysql路径
\\\
PATH=$PATH:$HOME/bin:/usr/local/lnmp/php/bin:/usr/local/mysql/bin
\\\

source .bash_profile   #文件生效
mkdir -p /data/mysql  #建立mysql目录
useradd -M -d /data/mysql -s /sbin/nologin mysql  #建立mysql用户
chown mysql.mysql /data/mysql/   #设置目录的用户及用户组

vim /etc/my.cnf   #修改mysql文件的路径,具体见下图
\\\
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
[mysqld_safe]
log-error=/data/mysql/mariadb.log
pid-file=/var/run/mariadb.pid
\\\

cd data/mysql/
mysqld --initialize --user=mysql    #mysql初始化,初始化后最后会显示初始化后的密码,登陆时需要使用
cd /usr/local/mysql/support-files/
ls
cp mysql.server /etc/init.d/mysqld   #将mysql数据库服务拷贝到指定目录下
/etc/init.d/mysqld start   #指定路径启动服务
mysql_secure_installation   #更改密码登陆数据库
首次登陆需要时定一些参数,我这里设定如下:
\\\
Press y|Y for Yes, any other key for No: n
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
\\\

更改全剧配置文件修改路径界面:
在这里插入图片描述

初始化界面:

在这里插入图片描述

mysql数据库安装配置完毕!
可以使用mysql -p 登陆

2.网页版数据库mysql

下载 phpMyAdmin-5.0.2-all-languages.zip 压缩包

我这里直接本地文件拿到压缩包

unzip phpMyAdmin-5.0.2-all-languages.zip   #解压
mv phpMyAdmin-5.0.2-all-languages /usr/local/nginx/html/phpadmin   #移动到nginx的html目录下
systemctl start php-fpm.service   #开启php-fpm服务
systemctl enable php-fpm.service  #设置开机自启
vim /usr/local/lnmp/php/etc/php.ini   #编辑php文件,添加mysql文件的路径
systemctl reload  php-fpm  #修改完文件,重载

编辑php.ini文件界面如下:
在这里插入图片描述
在这里插入图片描述

此时确保nginx开启的情况下,浏览器访问172.25.7.1/phpadmin
在这里插入图片描述

建立一个westos库,linux表,插入一组数据
在这里插入图片描述

进入数据库查看westos.linux表数据
在这里插入图片描述

3.MySQL异步复制

在这里插入图片描述

异步复制:配置文件/etc/my.cnf最后写了同步方式,是使用二进制日志的方式进行复制,master做的任何操作都会记录在日志里,master不会等待slave复制完之后再开始下一步,一直都是自己做自己的,不会管slave的状态,自己做好了就写在自己的日志里,能否同步成功取决于slave自身,而slave能否同步成功取决于两个线程,I/O线程和sql线程,I/O线程不是yes,则获取不到master的日志,(master的dumper线程会和slave的I/O线程进行通信),slave把二进制日志拿过来之后,先把master所作的事情写在中继日志relay_log里,然后sql线程回放(replay),把relay_log日志里的事再做一次,所以异步复制slave的数据比master稍慢一些。master主机不会管slave两个线程的状态异常,如果状态异常,这就会导致数据不同步。
异步复制失败的原因可能是两台主机数据不同步,master数据比slave数据多太多。同步之

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值