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读写分离数据库案例完成。
标签: 配置文件
精彩放送:
- []天天热点评!前端页面的截取:MARK下一、引入头部二
- []三国穿越小说排行榜 最好看小说排行
- []每日精选:Godaddy是世界第一大域名注册商 进军主机领域发展迅速
- []世界消息!六种超级boss杀法 问道六道轮回
- []张杰演唱《看月亮爬上来》 好听极了
- []mysql软件包存放目录:Mysql-5.6.40
- []错误619已拒绝远程连接 你还不知道吗?
- []天天新消息丨水平仪是什么?什么牌子水平仪质量好?
- []看点:油价走势分析 江海博3/17油价分析
- []全球百事通!怎么看手机是否支持java?javax.lcdui.Display开发程序
- []每日关注!百度云Linux版本来了!deepin上安装百度网盘版本
- []每日热文:一本书用起来你的恨意就少了 不经历不知道有多难?
- []友信达手机多少钱?友信达手机报价大全
- []速讯:诺基亚7500硬格如何操作?诺基亚7500硬格操作的介绍
- []全球滚动:怎么登陆163邮箱?登陆163邮箱教程
- []当前热议!不同型号的亿和源手机 报价多少钱?
- []快看:HTC G14怎么刷MIUI?HTCG14刷MIUI教程
- []天天微动态丨4g手机可以用3g卡吗?4g手机和3g手机区别
- []全球速看:无敌加速器怎么用?使用方法大全
- []每日快讯!大连短租公寓价格表 大连短租公寓详情介绍
- []天天热议:金鹏手机报价及推荐:金鹏a0001、668、5808
- []控制柜空调怎么安装?控制柜空调定安装方法
- []环球热资讯!什么是邮箱地址?邮箱系列软件最新版本下载
- []世界热门:联通无限流量卡套餐资费多少?联通无限流量卡套餐资费
- []北京爱情故事简介电视剧 北京爱情故事是谁主演?
- []关于单排脚手架搭设要求 你知道多少?
- []天天热资讯!美的空气能热泵热水机怎么样?美的“空气能”热泵热水机组最新价格
- []世界热消息:【我叫MT2】女神血精灵降临 1月签到活动开启
- []世界最新:《爱情公寓》中的陆展博扮演者 你知道吗?
- []全球聚焦:何为盘石桑苞?盘苞什么意思?
- []天天短讯!赣州卫计委地址 赣州市卫生局地址及联系电话一览
- []DNF谁爱拍命运的羽毛?谁虚伪而温柔?
- []全球新消息丨青橙m3如何刷机?青橙m3刷机教程
- []手机套子品牌哪款好?手机套子品牌推荐
- []每日动态!2021年怎么买车险最划算?2022车险怎么买最划算?
- []软件开发中的“OO”到底是什么?真实案例解析OO理论与实践
- []甄嬛传主题曲有哪些歌词?求歌词:甄嬛传主题曲
- []当前热议!【记录分享】Android常用应用市场和应用包名工作
- []原道n90双擎2怎么刷机?原道n90双擎2刷机教程详解
- []全球新消息丨为什么新拟态UI和可访问性是无法共存的?原因分析
- []【环球时快讯】小米cc9配置有多高?小米CC系列智能手机
- []【独家焦点】索尼xperia z刷flyme4.0步骤是什么?索尼l36h刷flyme4教程
- []全球热推荐:不干胶印刷机价格怎么样?不干胶印刷机报价详情
- []数学思想方法猜想与反驳 反例反驳在学习中的用处
- []【环球新要闻】生殖器疱疹的症状有哪些?女性性病有很多种
- []青海省理科400到450分之间的大学名单 有没有公办大学?
- []焦点!配置完Kafka集群后 通过JavaAPI方式来操作
- []东东助手显示无法连接服务器怎么办?模拟器常见问题及解决办法
- []压铸模的使用特点是什么?压铸模的使用特点及使用原则
- []【体验】Xoom评测:比iPad重50克 屏幕倒更大?
- []魅族mx手机壳的价格和使用方法介绍 魅族mx手机壳的使用方法
- []南天pr2e怎么设置?南天pr2e设置与参数修改
- []gps电子狗怎样升级?gps电子狗方法详解
- []环球即时看!QQ邮箱发邮件受限制怎么办?SMTP发送邮件限制的解决方案
- []热门看点:推荐21个高质量图片网站 免费免版权值得收藏
- []【当前独家】什么是执行力?执行力详情介绍
- []环球快看点丨java编程题:如何判断四个棋子连在一起?
- []何删除定时器?MyLibco协程网络库定时器的设计
- []资讯:北京:2023年计划,启动危旧楼房改建和简易楼腾退20万平方米
- []环球快播:免费下载国外视频的网站 你值得拥有
- []【聚看点】华容道有哪些通关技巧?15数字华容道解法
- []泥巴潭:《新龙族》免费卷土重来 拒绝“菜鸟玩家”
- []POI 4.1.2 操作Excel的技巧 POI4.1.2操作Excel的快速应用
- []圆形体癣是什么样子?圆圈状的癣不痛不痒的起因
- []世界观速讯丨速读2023年北京市政府工作报告 | 2023年北京将筹建保障性租赁住房8万套,竣工各类保障性住房9万套
- []世界微资讯!职务与职级并行套改表 新旧“职务与职级并行”套改与晋升实例
- []艾尔文与花栗鼠2/花鼠明星俱乐部 详情介绍
- []每日热讯!泸州老窖:公司销售工作按计划顺利推进
- []北京:过去5年,建设筹集各类政策性住房54万套
- []环球看点!贵州石阡 中国最古老温泉的旅游热度如何继续升温?|新春里的中国经济
- []今亮点!* 中创新航遭摩根大通减持超5%,持股比例降至1.78%
- []【焦点热闻】海南瑞泽:截至2023年1月20日,公司股东人数为66,155
- []【BT金融分析师】比亚迪电动车市场份额持续扩大,分析师称其增长超过特斯拉
- []全球视讯!白求恩大夫是哪国人?诺尔曼·白求恩资料介绍
- []全球热消息:货郎是什么意思?现在的货郎指的是什么?
- []孤城闭帝后结局怎么样?孤城闭剧情介绍
- []【世界聚看点】苹果手机怎么打开微信深色模式?苹果手机打开微信深色模式的步骤
- []陕西的简称是什么?陕西省资料介绍
- []屈原历史资料介绍?对屈原的人物评价怎么写?
- []【独家】猎狐电视剧胡军演谁?猎狐剧情介绍
- []【独家】愚人节怎么发朋友圈?愚人节适合发朋友圈的搞笑说说有哪些?
- []全球观点:华为手机nfc是什么意思?近场通信的技术原理是什么?
- []每日热点:去哪儿2023春节报告:平均每个旅客多走400公里,出境机票同比增长6.7倍
- []天天日报丨这个春节,旅游人信心又来了
- []世界最资讯丨春运返程迎来客流高峰,有人坐绿皮火车返岗开工
- []“零下53度”的东北游,能火多久?
- []简讯:租赁模式的住宿业:合作、匹配、把控
- []全球今头条!我,过年不回家,“和9个陌生人去旅游”
- []【速看料】地产律师的一年| 飞了10多个城市,为购房者追回千万损失
- []天天热推荐:地产营销人的一年| 要时刻保证自己不被淘汰,“还没想过离开房地产行业”
- []今日热门!致远新能:截止2023年1月20日股东人数为11966人
- []热资讯!物业人的一年| 经历了疫情和高温考验,“我们圆满完成年度KPI考核”
- []产业策划人的一年| 产业板块被集团地产业务拖累,“相信今年会比去年好”
- []豪宅中介的一年| 在单价屡破30万元/平的区域卖房是一种什么体验?
- []蓝盾光电:公司将严格按照信息披露的相关规定,及时履行信息披露义务
- []环球快讯:132亿!宁德时代工厂投产!
- []【环球新视野】防城港各大景区人气爆棚
- []全球今日报丨国泰君安证券:美国经济外强中干 核心GDP继续回落
- []【环球新视野】马亮:扎堆式旅游何时休?游客要理性,景区更应强化能力建设
- []总投资53亿元!20万吨负极材料项目落地
- 天天快资讯:【商户管理】数字签名安全检测系统-Md5
- 字幕助手电脑版:专业实用的视频字幕制作软件
- 环球讯息:反向解析:Linux搭建DNS服务器的步骤
- LeetCode算法 IntegertoEnglishWords的解题方法
- 新一代office不支持xpsp3的操作系统 XPsp2安装office2010全过程
- 焦点信息:历史上的船到底有多厉害?蒸汽船的发展
- 今日要闻!lbe安全大师纯净版 安卓手机必备的安全软件
- 每日播报!无线信号放大模式(Client+AP)怎么设置?设置步骤
- 第一中标获选人!北京地铁12号线电梯供货及安装中标结果公示
- 【全球速看料】酷我音乐盒V5.2.1版本更新 全新乐库火热上线
- 世界实时:【首席展望】海通证券余文心:医药板块有望反转 看好三条主线
- 244亿!特斯拉又投两工厂
- 焦点快看:白酒“霸屏”春节假期 开门红迎新增长周期 今年收益或超额
- 环球观焦点:宁德时代牵头!斥资67亿元 开发玻利维亚锂资源
- 全球热文:中海董事长颜建国拜会香港特首李家超 积极参与北部都会区和明日大屿建设
- 渣打预测布油有望反弹至90美元以上,但对突破100美元并不乐观!
- 每日视讯:现货黄金交易策略:金价见顶风险增加,关注美国PCE数据
- 文化和旅游部:春节假期国内旅游出游3.08亿人次 同比增长23.1%
- 快讯:香港财政司司长:未有定案是否再派消费券 楼市现时有秩序调整
- 美国12月新屋销售量连续第三个月上升 同比仍降26.6%
- 天天观焦点:CFTC商品持仓解读:投机者提高美国原油净多头头寸
- 新春走基层丨保障多地轨道交通正常运行,众合科技员工誓要站好春节最后一班岗
- 广西出台16条措施 加快文化旅游业全面恢复振兴
- 环球即时:1月28日财经早餐:黄金连续第六周周线上涨,焦点转向美联储
- 速读:美原油交易策略:美国GDP数据缓解需求担忧,油价将重拾涨势?
- 热门:美股异动 | 移动金融智选平台简普科技(JT.US)涨超9% 年初至今累涨超31%
- 环球快播:美股异动 | 途牛(TOUR.US)涨超9.5% 年初至今累涨近67%
- 最新资讯:威海广泰:公司以技术创新为龙头,始终重视消防救援装备的技术研发工作,每年都有10余型新产品完成开发
- 环球即时:奥维通信:具体内容请详见公司于2023年1月20日披露的《关于终止筹划重大资产重组的公告》
- 新春行业动态合集 | 日媒:春节中国旅客访日需求依旧低迷;国航回应“一航班颠簸下坠”
- 当前快报:查询车辆保险怎么查询
- 全球快消息!手工钥匙扣制作图片_手工钥匙扣制作过程
- 【世界报资讯】文化和旅游部:今年春节国内出游人次恢复至疫前同期88.6%
- 旅游强劲复苏:多地游客数追平2019年,部分已反超
- 近3.08亿人次出游,收入3758.43亿元, 春节假期各OTA数据战报PK
- 世界快看点丨上万只基金产品 2000余位基金经理 兔年养基如何选?
- 携程2023春节旅游报告:旅游订单同比增长超4倍,其中出境游增长640%
- 状态火热!欧文三分球4中3半场独砍18分
- 钠电池元年将至 产业化到哪一步了?
- 快播:特斯拉杀疯了 价格还能降?美国重磅数据公布 传递什么信号?
- 当前动态:报价上涨12%,西藏山南光伏增配储能EPC中标公示发布
- 峰谷电价差扩大,低价谷电储热采暖优势明显
- 快讯:宝马计划量产全固态电池,最快2025年实现装车
- 今日视点:重磅发声!兔年怎么投?多家公募巨头最新研判
- 环球百事通!机构展望2023:中国市场更具吸引力 多元化投资组合提供机会
- 天天热点评!盘点︱2023年即将上市IPO光伏公司统计表
- 立冬的优美诗词句子_立冬的优美诗词
- 【世界聚看点】平安福7000交了5年能退多少,保单现金价值
- 世界速递!被银行忽悠买了保险可以退吗,可以退
- 热点聚焦:公积金能不能每月还商贷,当然可以
- 全球微动态丨最低-1℃郴州未来几天将迎霜冻天气
- 【环球速看料】兔年港股开门红!恒生指数涨逾2% 科技指数大涨超4%!多板块集体爆发
- 扩张性财政政策包括哪些(扩张性货币政策包括哪些)
- 天天简讯:为什么美金汇率一直在跌(最近美元汇率为什么一直在跌 最近美元汇率为啥一直在)
- 解析基金“专业买手”!FOF基金经理为何喜欢低换手?还有哪些特征?
- 农村信用社贷款无力偿还怎么办理(农村信用社贷款10万还不上怎么办)
- 基金gp和lp的区别优先和劣后(基金gp和lp的区别优先和劣后)
- 发力定制化场景金融布局 钱小乐探索精准营销新模式
- 最低或8万/吨!硅料价格拐点何时来临?
- 当前信息:微信转账退回对方会收到提示吗?(别人微信转账给我我退回有记录吗)
- 宏观经济分析包括哪些内容(宏观经济分析包括哪些内容)
- 今日聚焦!工商宝贝成长卡好不好(工行宝贝成长卡有什么弊端)
- 农业银行怎么查询冻结原因(怎样判断是永久冻结还是临时冻结)
- 全球今亮点!公积金4万可贷款多少(公积金账户4w可以贷款多少)
- 全球今亮点!地方债谁在买(地方专项债谁来买单)
- 天天热讯:京郊民宿老板:过完最冷清的春节,盼春暖花开不愁客人
- 焦点快报!携程:兔年春节过半,香港、澳门领跑春节出境热门目的地
- 天天最资讯丨春节楼市不打烊,部分楼盘推“0月供”计划,有客户打飞的到佛山买房
- 日元计价的黄金周三创新高,美元计价的或将紧随其后!
- 【全球新视野】中信证券交易手续费是多少(中信交易手续费)
- 环球观热点:明星税收怎么收费比例(明星的收入税率是多少)
- 杜邦奖学金_关于杜邦奖学金简述
- 热讯:港元1个月拆息四连跌 报2.94345
- 世界今热点:宣发“重大失误”!邓超新片紧急撤档,上映首日票房、上座率倒数第一;春节档票房已超50亿
- 环球微资讯!多家光伏逆变器上市公司2022年业绩预喜 储能正成为重要增长点
- 年终:2022跨界储能企业一览表
- 头条焦点:投资600亿!比亚迪合作伙伴造电池!
- 山东和山西为何成为储能引领者
- 消息!碳酸锂涨价?再度直逼50万大关!
- 资讯:港交所兔年首个交易日 财政司司长陈茂波冀股市吐气扬眉
- 专题回顾 | 房地产企业并购融资现状解析
- 报告:今年房企主要“保交付”,销售和投资规模呈前低后高走势
- 天天热资讯!红星美凯龙:行使换股权后 阿里巴巴持有公司权益已达到9.99%
- 盘后机构策略:市场维持强势格局 关注春节后内资流入情况
- 以岭药业:奋力推进新时代中医药传承创新发展
- 当前要闻:五矿地产(00230)首季度合约销售额30.7亿元 同比下跌30.7%
- 热讯:已签收的电子汇票在哪里查询 在哪里查询已签收的电子(已签收的电子汇票在哪里查询 在哪里查询已签收的电子)
- 当前报道:股票分红在什么时间(股票分红多长时间到账)
- 覆铜板是什么东西及用途(覆铜板是什么东西及用途)
- 环球视讯!全部资本化比率公式(全部资本化比率公式)
- 小规模纳税人收到专票的风险(小规模收到13%的专票有风险没)
- 【天天速看料】按单利计算是什么意思 什么是按单利计算(按单利计算是什么意思 什么是按单利计算)
- 热点聚焦:利润率的公式怎么算的(利润和利润率的计算公式)
- 世界今头条!春节假期海南离岛免税购物“南北两旺”
- 当前要闻:什么叫收现比(收现比是什么意思)
- 热资讯!税金贷款有什么银行做(什么银行有税金贷)
- 速看:集中趋势指标包括哪些方面(集中趋势指标包括哪些方面)
- 天天播报:大学生可以开佳物分期吗(佳物分期大学生能用吗 大学生可不可以用佳物分期)
- 央行100亿逆回购是什么意思(央行100亿逆回购意味着什么)
- 环球速读:大年初四,怎么做能接好运?
- 新资讯:货币资金包括哪三项(货币资金包括哪三个部分)
- 当前播报:强赎触发价什么意思?(强赎触发价什么意思科普)
- 当前资讯!银行卡信息不完善是怎么回事(银行提示此卡状态异常)
- 无卡是否可以存款(不带卡可以存款吗)
- 全球播报:转账二十四小时没到账怎么办(跨行转账4天了还没到账)
- 【环球时快讯】红字冲销什么意思(红字冲销什么意思)
- 2022年房贷利率是降还是升(银行利率表2022最新住房贷款利率,房贷利率每年都会变吗)
- 【速看料】林木不动产权证可以贷款吗(没有林权证可以去银行贷款吗)
- 环球时讯:广发为什么叫废行(存钱要小心五家银行)
- 天天观点:监管账户什么意思(监管账户怎么查)