mysql软件包存放目录:Mysql-5.6.40 全球速看料
1. Mysql-5.6.40
软件包存放目录:/usr/local/src/
1.1 安装mysql
(相关资料图)
cd /usr/local/src/# 1.切换到软件包目录wget http://...mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz# 2.获取php5.6.40源码包tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz# 3.解压mkdir /usr/local/mysql# 4.查看是否有 /usr/local/mysql这个文件夹,如果有那就重命名(mv) mysqlold。# 然后创建(mkdir)/usr/local/mysql这个文件夹cd mysql-5.6.43-linux-glibc2.12-x86_64mv * /usr/local/mysql# 5.将解压出来的文件移到/usr/local/mysql文件夹内mkdir -p /data/mysql# 6.创建数据库存放位置的文件夹useradd -s /sbin/nologin mysql# 7.创建mysql用户chown -R mysql:mysql /data/mysql# 8.更改文件夹权限yum -y install perl-Module-Install# 9.安装依赖包cd /usr/local/mysql./scripts/mysql_install_db --user=mysql --datadir=/data/mysql# 10.安装mysql,如果成功/data/mysql目录下将会有文件和目录
1.2 配置mysql
cd /usr/local/mysqlcp support-files/my-default.cnf /etc/my.cnf# 1.将mysql源码包内的默认配置文件放入并命名 /etc/my.cnfvim /etc/my.cnfbasedir = /usr/local/mysql # 源码存放目录datadir = /data/mysql # 上文数据库存放目录port = 3306 # 端口server_id = 128 # 服务idsocket = /tmp/mysql.sock# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.join_buffer_size = 128Msort_buffer_size = 2Mread_rnd_buffer_size = 2M# 2.进入并修改/etc/my.cnf文件# 开始设置自启动cp support-files/mysql.server /etc/init.d/mysqldchmod 755 /etc/init.d/mysqldvim /etc/init.d/mysqld修改:datadir=/data/mysql# 3.复制文件,修改权限,修改配置chkconfig --add mysqldchkconfig mysqld onservice mysqld on# 4.设置开机自启和启动服务
2. Apache-2.4.54
软件包存放目录:/usr/local/src/
2.1 安装apache
cd /usr/local/srcwget http://...httpd-2.4.54.tar.gzwget http://...apr-1.7.0.tar.gzwget http://...apr-util-1.6.1.tar.gztar zxvf httpd-2.4.54.tar.gztar zxvf apr-1.7.0.tar.gztar zxvf apr-util-1.6.1.tar.gz# 1.获取并解压源码包yum -y install expat-devel libxml2-devel pcre pcre-devel# 2.安装依赖包cd /usr/local/src/apr-1.7.0./configure --prefix=/usr/local/aprmake && make install# 3.编译并安装aprcd /usr/local/src/apr-util-1.6.1./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprmake && make install# 4.编译并安装apr-utilcd /usr/local/src/httpd-2.4.54./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=mostmake && make install# 5.编译并安装apache,如果安装成功那么/usr/local/apache2.4目录下将会有文件和目录
如果需要重新编译,需要使用make clean清除之前的缓存
2.2 配置虚拟主机
vim /usr/local/apache2.4/conf/httpd.conf# 修改#Include conf/extra/httpd-vhosts.conf->Include conf/extra/httpd-vhosts.conf# 1.让配置文件生效vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf# 修改ServerAdmin webmaster@dummy-host.example.com # 管理员邮箱 可忽略 DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com" # 网站根目录 ServerName dummy-host.example.com # 网站web站点名 ServerAlias www.dummy-host.example.com # 站点别名 可忽略 ErrorLog "logs/dummy-host.example.com-error_log" # 错误访问日志 CustomLog "logs/dummy-host.example.com-access_log" common # 成功访问日志ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common->ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/apache2.4/test.com" ServerName test.com ServerAlias www.test.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common## ServerAdmin webmaster@dummy-host2.example.com# DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com"# ServerName dummy-host2.example.com# ErrorLog "logs/dummy-host2.example.com-error_log"# CustomLog "logs/dummy-host2.example.com-access_log" common## 2.修改虚拟主机配置文件 test.com访问主机的/usr/local/apache2.4/test.com目录mkdir /usr/local/apache2.4/test.comecho "test.com" > /usr/local/apache2.4/test.com/index.html# 3.创建/usr/local/apache2.4/test.com目录,并创建网站主页/usr/local/apache2.4/bin/apachectl -t/usr/local/apache2.4/bin/apachectl graceful# 4.检查配置文件,重新加载http服务curl -x127.0.0.1:80 www.test.com# 5.检查虚拟主机是否正常 正常输出是 test.com
2.3 用户认证
vim /usr/local/apache2.4/conf/httpd.conf# 修改ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/apache2.4/test.com" ServerName test.com ServerAlias www.test.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common->ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/apache2.4/test.com" ServerName test.com ServerAlias www.test.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common# 保护目录 AllowOverride AuthConfig # 认证开关 AuthName "test.com user auth" # 认证名字,可无 AuthType Basic # 认证类型,一般为Basic AuthUserFile /data/.htpasswd # 密码文件目录 require valid-user # 指定需要认证的用户# 1.修改配置文件/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd user1# 2.创建认证用户 user1 -c创建 -m密码加密方式/usr/local/apache2.4/bin/apachectl -t/usr/local/apache2.4/bin/apachectl graceful# 3.检查配置文件,重新加载http服务
2.4 域名跳转
vim /usr/local/apache2.4/conf/httpd.conf# 修改ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/apache2.4/test.com" ServerName test.com ServerAlias www.test.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" commonAllowOverride AuthConfig AuthName "test.com user auth" AuthType Basic AuthUserFile /data/.htpasswd require valid-user->ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/apache2.4/test.com" ServerName test.com ServerAlias www.test.com# 需要mod_rewrite模块 RewriteEngine on # 打开rewrite功能 RewriteCond %{HTTP_HOST} !^test.com$ # 当主机名不是test.com时触发下面条件 RewriteRule ^/(.*)$ http://test.com/$1 [R=301,L]ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common# 1.修改配置文件vim /usr/local/apache2.4/conf/httpd.conf#修改#LoadModule rewrite_module modules/mod_rewrite.soLoadModule rewrite_module modules/mod_rewrite.so# 2.修改配置文件,让rewrite模块生效/usr/local/apache2.4/bin/apachectl -t/usr/local/apache2.4/bin/apachectl graceful# 3.检查配置文件,重新加载http服务/usr/local/apache2.4/bin/apachectl -M | grep -i rewrite# 4.查看模块是否生效,生效会提示 rewrite_module (shared)curl -x127.0.0.1:80 -I 123.com HTTP/1.1 301 Moved Permanently Date: Tue, 06 Sep 2022 08:06:04 GMT Server: Apache/2.4.54 (Unix) PHP/5.6.40 Location: http://test.com/ Content-Type: text/html; charset=iso-8859-1# 5.查看跳转是否正常,正常 状态码为301,location为test.com
3.PHP-5.6.40
软件包存放目录:/usr/local/src/
3.1 安装php
cd /usr/local/srcwget http://...php-5.6.40.tar.gztar zxvf php-5.6.40.tar.gz# 1.获取并解压php源码包yum -y install libxml2 openssl openssl-devel bzip2 bzip2-develyum -y install libjpeg libjpeg-devel libpng libpng-devel# 获取下面的依赖包rpm -ivh freetype-2.8-14.el7_9.1.x86_64.rpmrpm -ivh freetype-devel-2.8-14.el7_9.1.x86_64.rpmrpm -ivh libmcrypt-2.5.8-13.el7.x86_64.rpmrpm -ivh libmcrypt-devel-2.5.8-13.el7.x86_64.rpm# 2.安装依赖包./configure -prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysq1=/usr/1ocal/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exifmake && make install# 3. 编译并安装
3.2 配置php
cd /usr/local/src/php-5.6.40cp php.ini-production /usr/local/php/etc/php.ini# 复制配置文件
4.整合
4.1 配置httpd支持php
vim /usr/local/apache2.4/conf/httpd.conf#修改#ServerName www.example.com:80->ServerName www.example.com:80#修改AllowOverride none Require all denied->AllowOverride none Require all granted#添加(在AddType application/x-gzip .gz .tgz 下)AddType application/x-httpd-php .php#修改DirectoryIndex index.html->DirectoryIndex index.html index.php# 1.进入apache的配置文件并修改/usr/local/apache2.4/bin/apachectl -t# 2.检验apache配置文件是否正确,正确会显示Syntax OK/usr/local/apache2.4/bin/apachectl start# 3.开启apache
4.2 检测LAMP环境是否正确
curl localhost# 1.检查apache是否正确vim /usr/local/apache2.4/htdocs/test.phpcurl localhost/test.php# 2.检查php是否正确cd /usr/local/mysql/bin/./mysql# 3.检查mysql是否正确
https://www.cnblogs.com/zhijiyiyu/p/15142509.html
4.3 配置访问日志
# 通常访问日式是用来查看网站访问记录以及异常问题的vim /usr/local/apache2 .4/conf/extra/httpd-vhosts.conf#找到之前配置的123.com 虚拟主机 增加一句Customlog "1ogs/testdomain. com-access_ log" combined#保存配置文件后,测试语法并重新加载配置/usr/local/apache2.4/bin/apachectl -t/usr/local/apache2.4/bin/apachectl graceful#验证curl -x127.0.0.1:80 -I 123.comtail /usr/local/apache2.4/logs/123-access_log
4.4 配置静态元素过期时间
#当服务器上的某个东西更改了,那再访问新东西的时候 这期间的间隔 就叫做缓存过期时间vim /usr/local/apache2 .4/conf/extra/httpd-vhosts.conf#找到之前配置的123.com 虚拟主机并修改DocumentRoot "/data/wwwroot/testdomain.com" ServerName www.testdomain.com ServerAlias testdomain.comDocumentRoot "/data/wwwroot/testdomain.com" ServerName www.testdomain.com ServerAlias testdomain.comRewriteEngine on RewriteCond %{HTTP_HOST} !^www.testdomain.com$ RewriteRule ^/(.*)$ http://www.testdomain.com/$1 [R=301,L]SetEnvIf Request_URI ".*\.gif$" image-request SetEnvIf Request_URI ".*\.jpg$" image-request SetEnvIf Request_URI ".*\.png$" image-request SetEnvIf Request_URI ".*\.bmp$" image-request SetEnvIf Request_URI ".*\.swf$" image-request SetEnvIf Request_URI ".*\.js$" image- request SetEnvIf Request_URI ".*\.css$" image- request CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined env=!image-requestExpiresActive on ExpiresByType image/gif "access plus 1 days“ ExpiresByType image/jpeg "access plus 24 hours" ExpiresByType image/png "access plus 24 hours" ExpiresByType text/css "now plus 2 hour" ExpiresByType application/x-javascript "now plus 2 hours" ExpiresByType application/javascript "now plus 2 hours" ExpiresByType application/x-shockwave-flash "now plus 2 hours" ExpiresDefault "now plus 0 min"#开启模块vim /usr/local/apache2.4/conf/httpd.conf#搜索关键词expires,找到这一行 删除前面的#LoadModule expires_ module modules/mod_ expires .so#测试curl -x127.0.0.1:80 -I www.123.com/123.jpeg
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ji18QzZv-1663114696420)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220908093410227.png)]
1.owncloud部署
1.1 前期工作
Nginx + ownCloud + PHP + MySQL搭建[私有云]
centos7系统
可联网
准备好owncloud安装包
1.2安装过程
yum install -y httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdosystemctl start httpd 注释:开启httpdsystemctl start mariadb 注释:开启MariaDB数据库管理系统setenforce 0 注释:关闭selinux防火墙systemctl stop firewalld.service 注释:关闭firewalld服务yum install net-tools 注释:安装 net-toolsnetstat -anpt | grep httpd 注释:再次执行此命令netstat -anpt | grep 3306 注释:显示所有TCP端口号连接程序的使用情况 | 显示有关3306端口进程
1.3源码嵌入
用ssh连接到主机
在搭建好的LAMP的基础上部署OwnCloud站点,将准备好的所以 ownCloud 源码文件传输至网站根目录
cd /var/www/html 注释:前往网站根目录将 ownCloud文件夹内所有源码文件 传输进此/var/www/html/目录内重要说明:请传输源码文件!而不是传输 owncloud 整个文件夹!否则网页登陆需要加后缀:主机IP/owncloud 切记!# chown -R apache.apache /var/www/html 注释:将html当前目录下的所有文件与子目录的拥有者皆设为apache 群体的使用者:apache
1.4数据库初始化
mysqladmin -u root password 123456 注释:设置root密码为123456mysql -uroot -p123456 注释:以超级用户root进入MySQL数据库管理系统Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 5Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type "help;" or "\h" for help. Type "\c" to clear the current input statement.MariaDB [(none)]>create database owncloud 注释:创建ownCloud数据库 -> ; 注释:输入符号;进入下一步Query OK, 1 row affected (0.00 sec)MariaDB [(none)]>show databases 注释:列出当前用户可查看的所有数据库并找到owncloud数据库 -> ;+--------------------+| Database |+--------------------+| information_schema || mysql || owncloud || performance_schema || test |+--------------------+5 rows in set (0.00 sec)————————————————
1.5php升级
这部分就不阐述了 至少需要php版本为5.6.0以上
1.6浏览器访问测试
访问主机IP出下如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IokqaPH1-1663114696421)(C:\Users\lenovo\Desktop\捕获.PNG)]
管理员账号:admin 管理员密码:admin@2021 数据库储存目录:/var/www/html/data 数据库用户:root 数据库密码:123456 数据库名称:owncloud 数据库主机:localhost
到这里就结束了。
2。实战案例——构建读写分离的数据库集群
2.1案例目标
(1)了解Mycat提供的读写分离功能。
(2)了解MySQL数据库的主从架构。
(3)构建以Mycat为中间件的读写分离数据库集群。
2.2案例分析
规划节点
使用Mycat作为数据库中间件服务构建读写分离的数据库集群,节点规划见表4-1-1。
表4-1-1 节点规划
IP主机名节点
172.16.51.6mycatMycat中间件服务节点
172.16.51.18db1MariaDB数据库集群主节点
172.16.51.30db2MariaDB数据库集群从节点
基础准备
使用CentOS 7.2系统,flavor使用2vCPU/4G内存/50G硬盘,创建3台虚拟机进行实验。
其中2台虚拟机db1和db2部署MariaDB数据库服务,搭建主从数据库集群;一台作为主节点,负责写入数据库信息;另一台作为从节点,负责读取数据库信息。
使用一台虚拟机部署Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库节点。这样将用户的访问操作、数据库的读与写操作分给3台主机,只有数据库集群的主节点接收增、删、改SQL语句,从节点接收查询语句,分担了主节点的查询压力。
Yum源使用提供的gpmall-repo文件夹作为本地源,Mycat组件使用提供的Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz压缩包安装。
2.3案例实施
Mycat节点修改主机名命令:
[root@localhost ~]# hostnamectl set-hostname mycat
[root@localhost ~]# bash
[root@mycat ~]#
db1节点修改主机名命令:
[root@localhost ~]# hostnamectl set-hostname db1
[root@localhost ~]# bash
[root@db1 ~]#
db2节点修改主机名命令:
[root@localhost ~]# hostnamectl set-hostname db2
[root@localhost ~]# bash
[root@db2 ~]#
(1)编辑hosts文件
3台集群虚拟机的/etc/hosts文件配置部分:
[root@mycat ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.51.6 mycat
172.16.51.18 db1
172.16.51.30 db2
(2)安装JDK环境
部署Mycat中间件服务需要先部署JDK 1.7或以上版本的JDK软件环境,这里部署JDK 1.8版本。
Mycat节点安装Java环境:
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
*2********.********部署MariaDB主从数据库集群服务*
(1)安装MariaDB服务
通过YUM命令在db1和db2虚拟机节点上安装MariaDB服务,命令如下。
# yum install -y mariadb mariadb-server
# systemctl start mariadb
# systemctl enable mariadb
初始化数据库
mysql_secure_installation
(3)配置数据库集群主节点
编辑主节点db1虚拟机的数据库配置文件my.cnf,在配置文件my.cnf中增添下面的内容。
[root@db1 ~]# cat /etc/my.cnf
[mysqld]
log_bin = mysql-bin #记录操作日志
binlog_ignore_db = mysql #不同步MySQL系统数据库
server_id = 18 #数据库集群中的每个节点id都要不同,一般使用IP地址的最后段的数字,例如172.16.51.18,server_id就写18
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
(4)开放主节点的数据库权限
在主节点db1虚拟机上使用mysql命令登录MariaDB数据库,授权在任何客户端机器上可以以root用户登录到数据库。
[root@db1 ~]# mysql -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 137
Server version: 10.3.18-MariaDB-log MariaDB Server
Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> grant all privileges on .to root@’%’ identified by “123456”;
在主节点db1数据库上创建一个user用户让从节点db2连接,并赋予从节点同步主节点数据库的权限,命令如下。
MariaDB [(none)]> grant replication slave on .to ‘user’@‘db2’ identified by ‘123456’;
(5)配置从节点db2同步主节点db1
在从节点db2虚拟机上使用mysql命令登录MariaDB数据库,配置从节点连接主节点的连接信息。master_host为主节点主机名db1,master_user为在步骤(4)中创建的用户user,命令如下。
[root@db2 ~]# mysql -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 88
Server version: 10.3.18-MariaDB-log MariaDB Server
Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> change master to master_host=‘db1’,master_user=‘user’,master_password=‘123456’;
配置完毕主从数据库之间的连接信息之后,开启从节点服务。使用show slave status\G; 命令并查看从节点服务状态,如果Slave_IO_Running和Slave_SQL_Running的状态都为YES,则从节点服务开启成功。查询结果如图4-1-1所示。
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XxKwlrRs-1663114696421)(file:///C:\Users\lenovo\AppData\Local\Temp\ksohtml2904\wps1.jpg)]
图4-1-1查询slave状态
*防火墙*
(6)验证主从数据库的同步功能
先在主节点db1的数据库中创建库test,并在库test中创建表company,插入表数据。创建完成后,查看表company数据,如下所示。
MariaDB [(none)]> create database test;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> use test
Database changed
MariaDB [test]> create table company(id int not null primary key,name varchar(50),addr varchar(255));
Query OK, 0 rows affected (0.165 sec)
MariaDB [test]> insert into company values(1,“facebook”,“usa”);
Query OK, 1 row affected (0.062 sec)
MariaDB [test]> select * from company;
±—±---------±-----+
| id | name | addr |
±—±---------±-----+
| 1 | facebook | usa |
±—±---------±-----+
1 row in set (0.000 sec)
这时从节点db2的数据库就会同步主节点数据库创建的test库,可以在从节点查询test数据库与表company,如果可以查询到信息,就能验证主从数据库集群功能在正常运行。查询结果如下所示。
MariaDB [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
±-------------------+
4 rows in set (0.001 sec)
MariaDB [(none)]> select * from test.company;
±—±---------±-----+
| id | name | addr |
±—±---------±-----+
| 1 | facebook | usa |
±—±---------±-----+
1 row in set (0.001 sec)
*3********.********部署Mycat读写分离中间件服务*
(1)安装Mycat服务
将Mycat服务的二进制软件包Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz上传到Mycat虚拟机的/root目录下,并将软件包解压到/use/local目录中。赋予解压后的Mycat目录权限。
[root@mycat ~]# tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
[root@mycat ~]# chown -R 777 /usr/local/mycat/
在/etc/profile系统变量文件中添加Mycat服务的系统变量,并生效变量。
[root@mycat ~]# echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile
[root@mycat ~]# source /etc/profile
(2)编辑Mycat的逻辑库配置文件
配置Mycat服务读写分离的schema.xml配置文件在/usr/local/mycat/conf/目录下,可以在文件中定义一个逻辑库,使用户可以通过Mycat服务管理该逻辑库对应的MariaDB数据库。在这里定义一个逻辑库schema,name为USERDB;该逻辑库USERDB对应数据库database为test(在部署主从数据库时已安装);设置数据库写入节点为主节点db1;设置数据库读取节点为从节点db2。(可以直接删除原来schema.xml的内容,替换为如下。)
注意:IP需要修改成实际的IP地址。
[root@mycat ~]# cat /usr/local/mycat/conf/schema.xml
select user()
代码说明:
l sqlMaxLimit:配置默认查询数量。
l database:为真实数据库名。
l balance=“0”:不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
l balance=“1”:全部的readHost与stand by writeHost参与select语句的负载均衡,简单来说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2、S1、S2都参与select语句的负载均衡。
l balance=“2”:所有读操作都随机的在writeHost、readhost上分发。
l balance=“3”:所有读请求随机地分发到wiriterHost对应的readhost执行,writerHost不负担读压力,注意balance=3只在1.4及其以后版本有,1.3版本没有。
l writeType=“0”:所有写操作发送到配置的第一个writeHost,第一个挂了需要切换到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件dnindex.properties中。
l writeType=“1”:所有写操作都随机的发送到配置的writeHost。
(3)修改配置文件权限
修改schema.xml的用户权限,命令如下:
[root@mycat ~]# chown root:root /usr/local/mycat/conf/schema.xml
(4)编辑mycat的访问用户
修改/usr/local/mycat/conf/目录下的server.xml文件,修改root用户的访问密码与数据库,密码设置为123456,访问Mycat的逻辑库为USERDB,命令如下。
[root@mycat ~]# cat /usr/local/mycat/conf/server.xml
在配置文件的最后部分,
123456
USERDB
然后删除如下几行:
user
TESTDB
true
保存并退出server.xml配置文件。
(5)启动Mycat服务
通过命令启动Mycat数据库中间件服务,启动后使用netstat -ntpl命令查看虚拟机端口开放情况,如果有开放8066和9066端口,则表示Mycat服务开启成功。端口查询情况如图4-1-2所示。
[root@mycat ~]# /bin/bash /usr/local/mycat/bin/mycat start
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RX1PeX6V-1663114696422)(file:///C:\Users\lenovo\AppData\Local\Temp\ksohtml2904\wps2.jpg)]
图4-1-2 查询Mycat服务端口
*4********.********验证数据库集群服务读写分离功能*
(1)用Mycat服务查询数据库信息
先在Mycat虚拟机上使用Yum安装mariadb-client服务。
[root@mycat ~]# yum install -y MariaDB-client
ps:这里有个坑 就是怎么都安装不上去这个客户端 我是同步官网的版本号过后才能下载的
在Mycat虚拟机上使用mysql命令查看Mycat服务的逻辑库USERDB,因为Mycat的逻辑库USERDB对应数据库test(在部署主从数据库时已安装),所以可以查看库中已经创建的表company。命令如下。
[root@mycat ~]# mysql -h127.0.0.1 -P8066 -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat Server (OpenCloundDB)
Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MySQL [(none)]> show databases;
±---------+
| DATABASE |
±---------+
| USERDB |
±---------+
1 row in set (0.001 sec)
MySQL [(none)]> use USERDB
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MySQL [USERDB]> show tables;
±---------------+
| Tables_in_test |
±---------------+
| company |
±---------------+
1 row in set (0.003 sec)
MySQL [USERDB]> select * from company;
±—±---------±-----+
| id | name | addr |
±—±---------±-----+
| 1 | facebook | usa |
±—±---------±-----+
1 row in set (0.005 sec)
(2)用Mycat服务添加表数据
在Mycat虚拟机上使用mysql命令对表company添加一条数据(2,“basketball”,“usa”),添加完毕后查看表信息。命令如下。
MySQL [USERDB]> insert into company values(2,“bastetball”,“usa”);
Query OK, 1 row affected (0.050 sec)
MySQL [USERDB]> select * from company;
±—±-----------±-----+
| id | name | addr |
±—±-----------±-----+
| 1 | facebook | usa |
| 2 | bastetball | usa |
±—±-----------±-----+
2 rows in set (0.002 sec)
(3)验证Mycat服务对数据库读写操作分离
在Mycat虚拟机节点使用mysql命令,通过9066端口查询对数据库读写操作的分离信息。可以看到所有的写入操作WRITE_LOAD数都在db1主数据库节点上,所有的读取操作READ_LOAD数都在db2主数据库节点上。由此可见,数据库读写操作已经分离到db1和db2节点上了。命令如下。
[root@mycat ~]# mysql -h127.0.0.1 -P9066 -uroot -p123456 -e ‘show @@datasource;’
查询结果如图4-1-3所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8KiZiCim-1663114696422)(file:///C:\Users\lenovo\AppData\Local\Temp\ksohtml2904\wps3.jpg)]
图4-1-3 查询读写分离
MySQL [USERDB]> select * from company;
±—±---------±-----+
| id | name | addr |
±—±---------±-----+
| 1 | facebook | usa |
±—±---------±-----+
1 row in set (0.005 sec)
(2)用Mycat服务添加表数据
在Mycat虚拟机上使用mysql命令对表company添加一条数据(2,“basketball”,“usa”),添加完毕后查看表信息。命令如下。
MySQL [USERDB]> insert into company values(2,“bastetball”,“usa”);
Query OK, 1 row affected (0.050 sec)
MySQL [USERDB]> select * from company;
±—±-----------±-----+
| id | name | addr |
±—±-----------±-----+
| 1 | facebook | usa |
| 2 | bastetball | usa |
±—±-----------±-----+
2 rows in set (0.002 sec)
(3)验证Mycat服务对数据库读写操作分离
在Mycat虚拟机节点使用mysql命令,通过9066端口查询对数据库读写操作的分离信息。可以看到所有的写入操作WRITE_LOAD数都在db1主数据库节点上,所有的读取操作READ_LOAD数都在db2主数据库节点上。由此可见,数据库读写操作已经分离到db1和db2节点上了。命令如下。
[root@mycat ~]# mysql -h127.0.0.1 -P9066 -uroot -p123456 -e ‘show @@datasource;’
查询结果如图4-1-3所示。
[外链图片转存中…(img-8KiZiCim-1663114696422)]
图4-1-3 查询读写分离
至此,Mycat读写分离数据库案例完成。
标签: 配置文件
相关推荐:
最新新闻:
- 新一代office不支持xpsp3的操作系统 XPsp2安装office2010全过程
- css编写红色星号 垂直居中显示更美观
- 当前资讯!酷我音乐盒V5.2.1版本更新 全新乐库火热上线
- 前端页面的截取:MARK下一、引入头部二:全球新资讯
- 快看:如何申请CSDN博客?如何开通博客?
- 历史上的船到底有多厉害?蒸汽船的发展
- 反向解析:Linux搭建DNS服务器的步骤
- 全球速讯:不锈钢冷轧钢带外包装上的标签 你了解多少?
- 字幕助手电脑版:专业实用的视频字幕制作软件
- 速看:电梯安全知识——电梯关门的注意事项
- 焦点报道:HTC G14怎么刷MIUI?HTCG14刷MIUI教程
- mysql软件包存放目录:Mysql-5.6.40 全球速看料
- 【商户管理】数字签名安全检测系统-Md5
- 什么是邮箱地址?邮箱系列软件最新版本下载_全球球精选
- 友信达手机多少钱?友信达手机报价大全-视焦点讯
- gps电子狗怎样升级?gps电子狗方法详解
- 百度云Linux版本来了!deepin上安装百度网盘版本
- 环球观察:lbe安全大师纯净版 安卓手机必备的安全软件
- 好电影有哪些推荐?《追风筝的人》(The Kite Runner)
- 索尼xperia z刷flyme4.0步骤是什么?索尼l36h刷flyme4教程
- 中小企业如何开源节流?RPA:经济下行增效降本的良方
- 天天微资讯!诺基亚7500硬格如何操作?诺基亚7500硬格操作的介绍
- 世界微头条丨青橙m3如何刷机?青橙m3刷机教程
- 前端ol是啥意思是什么?前端开发基础入门--HTML
- 松下官宣:停止生产蓝光刻录碟 此前已生产3.3亿片!:世界热门
- 续航1200公里的铝离子电池 明年年底实现量产
- 世界热消息:不干胶印刷机价格怎么样?不干胶印刷机报价详情
- 【案例分享】降维案例探究
- word07目录如何生成?word07目录右侧页码怎样对齐?
- 环球最资讯丨第一中标获选人!北京地铁12号线电梯供货及安装中标结果公示
- 手机套子品牌哪款好?手机套子品牌推荐
- 开机要按f1怎么解决?开机启动项怎么设置?
- 世界今亮点!无线信号放大模式(Client+AP)怎么设置?设置步骤
- 环球快消息!联通无限流量卡套餐资费多少?联通无限流量卡套餐资费
- 什么是数据库系统?数据库系统有什么特点?
- 金鹏手机报价及推荐:金鹏a0001、668、5808 -全球通讯
- 世界最新:【turtle库】Python画图源码
- 诊断卡代码是什么意思?电脑主板故障诊断卡代码大全
- 石油是什么?油气地质储量及其分级:实时焦点
- 搜狐视频怎么看不了?如何下载搜狐网站里的视频?
- 【热闻】4g手机可以用3g卡吗?4g手机和3g手机区别
- 怎么看手机是否支持java?javax.lcdui.Display开发程序
- 全球热讯:【软件设计】XX模块详细设计说明书
- skype无法登录怎么解决?skype无法登录的操作方法
- Request、Form、Query、params的使用方法
- dnf怎么上不去了是什么原因?电脑登不上dnf的解决方法
- 每日快报!Typora1.0正式版开始收费!价格不算便宜
- 怎么把内存分给显卡?怎么看电脑内存显卡?
- 微头条丨魅族mx手机壳的价格和使用方法介绍 魅族mx手机壳的使用方法
- 一般试卷的纸张大小是多少?试卷标准字体大小是多少?|每日播报
- 松下官宣:停止生产蓝光刻录碟 此前已生产3.3亿片!:世界热门
- word07目录如何生成?word07目录右侧页码怎样对齐?
- 开机要按f1怎么解决?开机启动项怎么设置?
- 什么是数据库系统?数据库系统有什么特点?
- 诊断卡代码是什么意思?电脑主板故障诊断卡代码大全
- 搜狐视频怎么看不了?如何下载搜狐网站里的视频?
- skype无法登录怎么解决?skype无法登录的操作方法
- dnf怎么上不去了是什么原因?电脑登不上dnf的解决方法
- 怎么把内存分给显卡?怎么看电脑内存显卡?
- wupdmgr.exe文件是什么?wupdmgr.exe文件信息介绍
- 电话在线怎么激活win8.1?电话激活win8.1的具体方法
- 电脑任务栏没有声音图标是怎么回事?电脑任务栏没有声音图标解决方法
- DX11安装路径是什么?DX11安装路径位置
- 如何安装12306根证书?安装12306根证书的操作教程
- 手机如何进行彩信设置?已中国移动为例详解设置方法
- 诺顿磁盘医生是什么软件?诺顿磁盘医生使用方法介绍
- xp桌面美化怎么操作?电脑桌面美化软件哪个好用?
- 微信夜间模式是什么意思?手机如何切换夜间模式?
- win10第三方软件模糊是什么原因?win10第三方软件模糊解决方法
- 如何关闭445端口的网络访问权限?两种详细关闭445端口的方法
- 登录百度云提示错误1550010是什么情况?百度云提示错误解决方法
- 苹果App Store打不开怎么办?苹果App Store打不开解决方案
- 《怪奇物语》第五季5月开拍!预计2024年播出 -环球消息
- 不是云南也不是海南 四川春节接待游客人数全国第一
- 环球快消息!饭制《艾尔登法环》DLC预告片:PPT播片有内味儿了!