Project3_day01
知识点:
一、准备数据库服务器
二、搭建数据库服务器
三、配置MySQL主从同步
四、配置读写分离服务器
五、配置数据库服务器
六、配置网站服务器
七、测试配置
八、新知识
项目二拓扑
- 准备数据库服务器
准备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