首页 > 数据库 > 项目概述、部署数据库服务mysql、配置网站服务、测试配置

项目概述、部署数据库服务mysql、配置网站服务、测试配置

时间:2022-10-14 17:44:36浏览次数:52  
标签:... 服务 配置 192.168 user gamedb mysql root

Project3_day01

知识点:

一、准备数据库服务器

二、搭建数据库服务器

三、配置MySQL主从同步

四、配置读写分离服务器

五、配置数据库服务器

六、配置网站服务器

七、测试配置

八、新知识

项目二拓扑

 

 

  1. 准备数据库服务器

准备2台虚拟机

Ip地址

主机名

额外配置

角色

192.168.4.11

mysql11

添加1块3G硬盘

主数据库

192.168.4.22

mysql22

添加1块3G硬盘

从数据库

二、搭建MySQL数据库服务器

配置步骤

2.1 格式化硬盘

2.2安装mysql软件

2.3 启动数据库服务

2.4 查看初始密码

2.5 修改密码

2.6 登录服务

2.7 建库

2.8 挂载硬盘

配置mysql11

#查看硬盘名

]#lsblk

#分区

]# fdisk /dev/sdb - > n -> p -> 1 -> 回车 -> 回车 -> w

#格式化

mkfs.xfs /dev/sdb1

安装MySQL软件启动服务并登录

]# tar -xf mysql-5.7.17.tar

]# yum -y install mysql-community-*.rpm

]# systemctl start mysqld

]# grep password /var/log/mysqld.log

]# mysqladmin -uroot -p’密码’ password ‘123qqq…A’

建库

]# mysql -uroot -p123qqq…A

Mysql> create database gamedb;

MySQL> exit;

#挂载硬盘

]# vim /etc/fstab

/dev/sdb1 /var/lib/mysql/gamedb xfs defaults 0 0

:wq

]# mount -a

]# df -h | grep “gamedb”

[root@mysql11 ~]# chown -R mysql:mysql /var/lib/mysql/gamedb/

配置mysql22

#查看硬盘名

]#lsblk

#分区

]# fdisk /dev/sdb - > n -> p -> 1 -> 回车 -> 回车 -> w

#格式化

mkfs.xfs /dev/sdb1

安装MySQL软件启动服务并登录

]# tar -xf mysql-5.7.17.tar

]# yum -y install mysql-community-*.rpm

]# systemctl start mysqld

]# grep password /var/log/mysqld.log

]# mysqladmin -uroot -p’密码’ password ‘123qqq…A’

建库

]# mysql -uroot -p123qqq…A

Mysql> create database gamedb;

MySQL> exit;

#挂载硬盘

]# vim /etc/fstab

/dev/sdb1 /var/lib/mysql/gamedb xfs defaults 0 0

:wq

]# mount -a

]# df -h | grep “gamedb”

[root@mysql22 ~]# chown -R mysql:mysql /var/lib/mysql/gamedb/

三、配置主从同步

3.1、配置主数据库服务器 mysql11(192.168.4.11)

具体操作如下:

1) 启用binlog日志文件

2) 用户授权

3) 查看正在使用的binlog日志名和偏移量

mysql11]# vim /etc/my.cnf

[mysqld]

server_id=11

log_bin=master11

:wq

mysql11]# systemctl restart mysqld

mysql11]# mysql -uroot -p123qqq...A

mysql> grant replication slave on *.* to repluser@"%" identified by "123qqq...A";

mysql>

mysql> show master status;

+-----------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+-----------------+----------+--------------+------------------+-------------------+

| master11.000001 | 441 | | | |

+-----------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

3.2、 配置从数据库服务器 mysql22(192.168.4.22)

具体操作如下:

1)指定server_id并重启服务

2)管理员登录数据库服务,指定主服务器信息

3)启动slave进程

4)查看IO线程和SQL线程的状态(都是Yes 就配置对了)

mysql22]# vim /etc/my.cnf

[mysqld]

server_id=22

:wq

Mysql22]# systemctl restart mysqld

Mysql22]# mysql -uroot -p123qqq...A

mysql> change master to

master_host="192.168.4.11,

master_user="repluser" ,

master_password="123qqq...A",

master_log_file="master11.000001" ,

master_log_pos=441;

mysql> start slave;

mysql> show slave status \G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

四、配置读写分离服务:

准备虚拟机

主机名

Ip地址

角色

Maxscale77

192.168.4.77

读写分离服务器

具体配置步骤如下:

1)安装软件

yum -y install maxscale-2.1.2-1.rhel.7.x86_64.rpm

2)修改配置文件

vim /etc/maxscale.cnf

[maxscale]

threads=auto

[server1]

type=server

address=192.168.4.11

port=3306

protocol=MySQLBackend

[server2]

type=server

address=192.168.4.22

port=3306

protocol=MySQLBackend

[MySQL Monitor]

type=monitor

module=mysqlmon

servers=server1,server2

user=mysqla

passwd=123qqq...A

monitor_interval=10000

#[Read-Only Service]

#type=service

#router=readconnroute

#servers=server1

#user=myuser

#passwd=mypwd

#router_options=slave

[Read-Write Service]

type=service

router=readwritesplit

servers=server1,server2

user=mysqlb

passwd=123qqq...A

max_slave_connections=100%

[MaxAdmin Service]

type=service

router=cli

#[Read-Only Listener]

#type=listener

#service=Read-Only Service

#protocol=MySQLClient

#port=4008

[Read-Write Listener]

type=listener

service=Read-Write Service

protocol=MySQLClient

port=3306

[MaxAdmin Listener]

type=listener

service=MaxAdmin Service

protocol=maxscaled

socket=default

port=4016

:wq

五、配置数据库服务器

5.1 、用户授权

只需要在主数据库服务器mysql11 用户 从服务器会自动同步用户

replication slave, 查看主从角色

replication client 查看mysql数据库服务运行状态

[root@mysql11 ~]# mysql -uroot -p123qqq...A

添加监控用户

mysql> grant replication slave , replication client on *.* to mysqla@"%" identified by "123qqq...A";

添加路由用户

mysql> grant select on mysql.* to mysqlb@"%" identified by "123qqq...A";

mysql> exit;

在从数据库服务器查看是否同步授权用户名

[root@mysql22 ~]# mysql -uroot -p123qqq...A

mysql> select user from mysql.user where user="mysqla";

mysql> select user from mysql.user where user="mysqlb";

 

5.2、启动maxscale服务 (在maxscale77 主机启动服务)

[root@maxscale77 ~]# maxscale /etc/maxscale.cnf

5.3、查看maxscale服务状态

[root@maxscale77 ~]# netstat -utnlp | grep 4016

tcp6 0 0 :::4016 :::* LISTEN 1125/maxscale

[root@maxscale77 ~]# netstat -utnlp | grep 3306

tcp6 0 0 :::3306 :::* LISTEN 24809/maxscale

tcp 0 0 192.168.4.77:43696 192.168.4.11:3306 ESTABLISHED 24809/maxscale

tcp 0 0 192.168.4.77:56990 192.168.4.22:3306 ESTABLISHED 24809/maxscale

 

5.4查看监控信息(在maxscale77 访问自己的管理服务,查看监控信息)

[root@maxscale77 ~]# maxadmin -uadmin -pmariadb -P4016

MaxScale> list servers

Servers.

-------------------+-----------------+-------+-------------+--------------------

Server | Address | Port | Connections | Status

-------------------+-----------------+-------+-------------+--------------------

server1 | 192.168.4.11 | 3306 | 0 | Master, Running

server2 | 192.168.4.22 | 3306 | 0 | Slave, Running

-------------------+-----------------+-------+-------------+--------------------

MaxScale> exit

[root@maxscale77 ~]#

六、配置网站服务

准备虚拟机

Ip地址

主机名

角色

192.168.4.33

Web33

Nginx网站服务器

具体配置如下:

1)安装软件

2) 修改nginx配置文件

3)启动服务

安装依赖

[root@web33 ~]# yum -y install gcc zlib-devel pcre-devel

安装NGINX

[root@web33 ~]# tar -xf nginx-1.12.2.tar.gz //解压

[root@web33 ~]# cd nginx-1.12.2 //进源码目录

[root@web33 nginx-1.12.2]# ./configure //配置

[root@web33 nginx-1.12.2]# make && make install

修改配置文件

[root@web33 ~]# vim +65 /usr/local/nginx/conf/nginx.conf //修改主配置文件

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

:wq

//启动服务

[root@web33 ~]# /usr/local/nginx/sbin/nginx

安装php软件

[root@web33 ~]# yum -y install php php-devel php-mysql php-fpm

启动服务

[root@web33 ~]# systemctl start php-fpm

七、测试配置

7.1、 添加网站存储数据的连接用户

在主服务器连接服务

[root@mysql11 ~]# mysql -uroot -p123qqq...A

创建存储数据的表

create table gamedb.user ( name char(30) , password char(20));

添加用户

grant select, insert on gamedb.* to yaya@"%" identified by "123qqq...A";

7.2、在从服务器数据同步

[root@mysql22 ~]# mysql -uroot -p123qqq...A -e 'desc gamedb.user'

[root@mysql22 ~]# mysql -uroot -p123qqq...A -e 'select user from mysql.user where user="yaya"'

7.3 编写PHP脚本

web33]# vim /usr/local/nginx/html/test.php

<?php

#连接数据库服务器

$conn=mysql_connect("192.168.4.77","yaya","123qqq...A");

#选择库

mysql_select_db("gamedb");

#定义存储数据命令

$sql = 'insert into user (name,password) values ("AAA","666888")';

#执行命令

mysql_query($sql);

#关闭连接

mysql_close();

#数据存储提示

echo "save data ok";

?>

:wq

访问脚本

Web33~]$ curl http://localhost/test.php

Save data ok

 

7.4在据库服务器查看数据

[root@mysql11 ~]# mysql -uroot -p123qqq...A -e 'select * from gamedb.user'

mysql: [Warning] Using a password on the command line interface can be insecure.

+------+----------+

| name | password |

+------+----------+

| AAA | 654321 |

+------+----------+

[root@mysql11 ~]#

[root@mysql22 ~]# mysql -uroot -p123qqq...A -e 'select * from gamedb.user'

mysql: [Warning] Using a password on the command line interface can be insecure.

+------+----------+

| name | password |

+------+----------+

| AAA | 654321 |

+------+----------+

[root@mysql22 ~]#

八、新知识

实现数据读写分离的同时,实现从服务器查询数据负载均衡

8.1、准备新虚拟机

主机名

Ip地址

角色

额外配置

Pxc66

192.168.4.66

Slave服务器

添加一块3G硬盘

8.2 部署MySQL服务

#查看硬盘名

]#lsblk

#分区

]# fdisk /dev/sdb - > n -> p -> 1 -> 回车 -> 回车 -> w

#格式化

mkfs.xfs /dev/sdb1

安装MySQL软件启动服务并登录

]# tar -xf mysql-5.7.17.tar

]# yum -y install mysql-community-*.rpm

]# systemctl start mysqld

]# grep password /var/log/mysqld.log

]# mysqladmin -uroot -p’密码’ password ‘123qqq…A’

建库

]# mysql -uroot -p123qqq…A

Mysql> create database gamedb;

MySQL> exit;

#挂载硬盘

]# vim /etc/fstab

/dev/sdb1 /var/lib/mysql/gamedb xfs defaults 0 0

:wq

]# mount -a

]# df -h | grep “gamedb”

]# chown -R mysql:mysql /var/lib/mysql/gamedb

8.3 确保数据一致

第一步:在MySQL11主机完全备份数据

1 安装软件

2 完全备份

3 拷贝备份文件给主机pxc66

[root@mysql11 ~]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm

[root@mysql11 ~]# yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

[root@mysql11 ~]# innobackupex -uroot -p123qqq…A /allbak --no-timestamp

[root@mysql11 ~]# scp -r /allbak [email protected]:/root/

第二步:在pxc66主机数据完全恢复

1 安装软件

2 停止服务

3 清空数据库目录

4 准备恢复数据

5 拷贝数据

6 修改所有者组用户为MySQL

7 启动服务

[root@pxc66 ~]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm

[root@pxcnode66 ~]# yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

[root@pxc66 ~]# systemctl stop mysqld

[root@pxc66 ~]# umount /var/lib/mysql/gamedb 卸载挂载

[root@pxc66 ~]# vim /etc/fstab

#/dev/vdb1 /var/lib/mysql/gamedb xfs defaults 0 0

[root@pxc66 ~]# rm -rf /var/lib/mysql/*

[root@pxc66 ~]# innobackupex --apply-log /root/allbak/ 准备恢复数据

[root@pxc66 ~]# innobackupex --copy-back /root/allbak/ 拷贝到数据库目录里

[root@pxc66 ~]# chown -R mysql:mysql /var/lib/mysql //修改所有者

[root@pxc66 ~]# systemctl start mysqld //启动服务

第三步: 把pxc66 主机配置为mysql11的slave服务器

#指定server_id

[root@pxc66 ~]# vim /etc/my.cnf

[mysqld]

Server_id = 66

:wq

[root@pxc66 ~]# systemctl restart mysqld

#在备份文件里查看 完全备份后 对应的日志名和偏移量

[root@pxc66 ~]# grep master11 /root/allbak/xtrabackup_info

binlog_pos = filename 'master11.000001', position '5543'

[root@pxc66 ~]#

#管理员登录指定主服务器信息

[root@pxc66 ~]# mysql -uroot -p123qqq...A

mysql> change master to

master_host="192.168.4.11",

master_user="repluser",

master_password="123qqq...A",

master_log_file="master11.000001",

master_log_pos=5543;

mysql> start slave ;

 

Mysql> show slave status \G

Slave_IO_Running: Yes //IO线程正常

Slave_SQL_Running: Yes //SQL线程正常

第四步:配置读写分离服务器

修改配置文件

[root@maxscale77 ~]# vim /etc/maxscale.cnf

指定第3台服务器Ip地址

[server3]

type=server

address=192.168.4.66

port=3306

protocol=MySQLBackend

添加监视server3

[MySQL Monitor]

type=monitor

module=mysqlmon

servers=server1,server2,server3

user=mysqla

passwd=123qqq...A

monitor_interval=10000

定义只读服务

[Read-Only Service]

type=service

router=readconnroute

servers=server2,server3

user=mysqlb

passwd=123qqq...A

router_options=slave

读写分离服务添加server3

[Read-Write Service]

type=service

router=readwritesplit

servers=server1,server2,server3

user=mysqlb

passwd=123qqq...A

max_slave_connections=100%

定义只读服务端口

[Read-Only Listener]

type=listener

service=Read-Only Service

protocol=MySQLClient

port=4008

重启服务

[root@maxscale77 ~]# killall -9 maxscale

[root@maxscale77 ~]# maxscale /etc/maxscale.cnf

[root@maxscale77 ~]# netstat -utnlp | grep maxscale

tcp6 0 0 :::4008 :::* LISTEN 22949/maxscale

tcp6 0 0 :::3306 :::* LISTEN 22949/maxscale

tcp6 0 0 :::4016 :::* LISTEN 22949/maxscale

[root@maxscale77 ~]#

查看监控信息

[root@maxscale77 ~]# maxadmin -uadmin -pmariadb -P4016

MaxScale> list servers

Servers.

-------------------+-----------------+-------+-------------+--------------------

Server | Address | Port | Connections | Status

-------------------+-----------------+-------+-------------+--------------------

server1 | 192.168.4.11 | 3306 | 0 | Master, Running

server2 | 192.168.4.22 | 3306 | 0 | Slave, Running

server3 | 192.168.4.66 | 3306 | 0 | Slave, Running

-------------------+-----------------+-------+-------------+--------------------

MaxScale>

在从主机添加不同的记录

[root@mysql22 ~]# mysql -uroot -p123qqq...A

mysql> insert into gamedb.user values("22AA","22AA");

[root@pxc66 ~]# mysql -uroot -p123qqq...A

mysql> insert into gamedb.user values("66BB","66BB");

测试配置

[root@web33 ~]# mysql -h192.168.4.77 -P4008 -uyaya -p123qqq...A -e 'select * from gamedb.user'

+------+----------+

| user | password |

+------+----------+

| AAA | 666888 |

| 22AA | 22AA |

+------+----------+

[root@web33 ~]# mysql -h192.168.4.77 -P4008 -uyaya -p123qqq...A -e 'select * from gamedb.user'

+------+----------+

| user | password |

+------+----------+

| AAA | 666888 |

| 66BB | 66BB |

+------+----------+

[root@web33 ~]#

标签:...,服务,配置,192.168,user,gamedb,mysql,root
From: https://www.cnblogs.com/zky-1/p/16792406.html

相关文章

  • 部署 GitLab、配置 GitLab、CI/CD 概述、部署 Jenkins
    版本控制版本库版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。简单来说,就是为目录打快照。将来可以回到某一个历史记录点。是一个典型的......
  • Jenkins 项目管理、构建分发服务器、自动化上线
     Jenkins项目管理、构建分发服务器、自动化上线永久关闭防火墙和selinux[root@gitlab~]#systemctlstopfirewalld[root@gitlab~]#systemctldisablefirewalld[ro......
  • 项目4 MySQL数据表的检索总结
    目录​​【任务4.1】查询时选择列​​​​1.基本查询语句​​​​2,检索所有列​​​​3.检索指定列​​​​(1)检索单个字段​​​​(2)检索多个字段​​​​(3)定义别名​​​......
  • 使用 KubeSphere 实现微服务的灰度发布
    前言今天来说一说,在KubeSphere中两个"小姐姐"如何来回切换,这是什么意思哩?其实就是互联网产品中常用的灰度发布方式。互联网产品需要快速迭代上线,既要保证新功能运......
  • 保护香港服务器的方法
    保护香港服务器的方法当你把一个香港服务器完全留给一个组织、应用程序或个人使用时,它被称为香港服务器租用。在这种类型的主机配置中,客户端将会借出整个服务器,并且不允许......
  • 保护香港服务器的方法
    保护香港服务器的方法当你把一个香港服务器完全留给一个组织、应用程序或个人使用时,它被称为香港服务器租用。在这种类型的主机配置中,客户端将会借出整个服务器,并且不允许......
  • 【网络基础】手把手带你配置EIGRP协议 !
    EIGRP作为思科的私有协议,只能在思科的设备上完成配置,今天我们就从该协议的特性、工作原理、配置方法以及三张表来给大家系统介绍EIGRP。1.协议特性(1)EIGRP是距离矢量协议,对路......
  • 华为弹性云服务器ECS,自动调整搭配安全保障,畅享硬核存算能力
    华为弹性云服务器ECS,自动调整搭配安全保障,畅享硬核存算能力​现在很多企业都喜欢大内存、大存储的服务器,可加快数据的交互和处理,可满足量大的数据访问使用场景,比如电商行业......
  • 弹性云服务器ECS终究有企业想要的样子
    在现有的数字化平台,如电子商务、互联网企业中,数据服务器的存在就好比像心脏一样重要。随着数据的累积和访问量的急剧增加,企业对服务器的要求也在变得严苛,无论是大量的数据访......
  • MySQL全局锁和表锁
    MySQL全局锁和表锁该文摘抄自林晓斌老师的文章数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁......