猿创征文|万字长文搞定企业中的mysql数据库部署及使用(代码片段)

宝山的博客 宝山的博客     2023-02-15     236

关键词:

文章目录

Mysql 二进制安装及mycat 读写分离

hello~ 各位粉丝们,本期博文内容主要一企业中的一个项目数据存储案列做相关部署介绍!

很多朋友在学习linux的时候,相信大家都会部署安装mysql.但实际上呢,msyql 一般不会单独使用,就那本次项目来说,它是结合mycat 做了读写分离,通过本次分享,希望和大家共勉。

1.学习环境

主机名IP配置
master192.168.61.1528核、16G内存、200G磁盘
slave192.168.61.1538核、16G内存、200G磁盘

2. 初始化环境

2.1 关闭selinux、防火墙

[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

2.2 修改主机名

[root@localhost ~]# hostnamectl set-hostname mysql_master

[root@localhost ~]# hostnamectl set-hostname mysql_slave

2.3 配置域名解析

[root@localhost ~]# vim /etc/hosts 新增集群域名解析
192.168.61.152 mysql_master
192.168.61.153 mysql_slave

2.4 时间同步

[root@localhost ~]# yum install chrony

[root@localhost ~]# vim /etc/chrony.conf
server mysql_master iburst
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

注:注释所有server项,在下面新增server mysql_master iburst

[root@localhost ~]# systemctl enable chronyd.service
[root@localhost ~]# systemctl restart chronyd.service
[root@localhost ~]# chronyc sources

3. mysql 安装

3.1 二进制包上传服务器

分别上传至:
192.168.61.152的/root/下
192.168.61.153的/root/下


3.2 解压到/home

[root@localhost ~]# tar zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /home

3.3 清除系统环境

[root@localhost ~]# rpm -qa |grep mariadb
[root@localhost ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

3.4 创建mysql 用户

[root@localhost ~]# useradd -s /sbin/nologin -M mysql

3.5 创建数据目录并赋予权限

[root@localhost ~]# mkdir -p /home/mysql/data 			#数据目录
[root@localhost ~]# mkdir -p /home/mysql/logs 			#日志目录
[root@localhost ~]# touch /home/mysql/logs/error.log    #创建日志文件
[root@localhost ~]# mkdir -p /home/mysql/backup 			#备份目录
[root@localhost ~]# chown mysql:mysql -R /home/mysql 	#赋予权限 

3.6 配置my.cnf文件

[root@localhost mysql]# cat /etc/my.cnf 
[mysql]
socket=/home/mysql/mysql.sock
# set mysql client default chararter
default-character-set=utf8

[mysqld]
socket=/home/mysql/mysql.sock
# set mysql server port  
port = 3306 # 默认是3306,如果这里发现3306已经被占用,可以更改
# set mysql install base dir
basedir=/home/mysql
# set the data store dir
datadir=/home/mysql/data/
pid-file=/home/mysql/mysql.pid
# set the number of allow max connnection
max_connections=2048	#最大连接数
# set server charactre default encoding
character-set-server=utf8
# the storage engine
default-storage-engine=INNODB
# 设置MySQL对表名等不区分大小写
lower_case_table_names=1
max_allowed_packet=200M
explicit_defaults_for_timestamp=true
#阻止过多尝试失败的客户端以防止暴力破解密码的情况,与性能并无太大的关系
max_connect_errors=30
#此参数确定数据日志文件的大小,以M为单位,根据数据更新频率调整。
innodb_log_file_size=50
#指定大小的内存来缓冲数据和索引,最大可以把该值设置成物理内存的80%
innodb_buffer_pool_size=10G
key_buffer_size=16M
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
log-bin=/home/mysql/logs/mysql-bin #开启binlog日志
binlog-format=ROW #选择row模式
expire_logs_days=30 #日志的保存天数
#错误日志存放地址
log-error = /home/mysql/logs/error.log
#开启slow日志
slow_query_log = ON
slow_query_log_file = /home/mysql/logs/slow.log
long_query_time = 20
log_queries_not_using_indexes
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
innodb_file_per_table=1
[mysql.server]
user=mysql
basedir=/home/mysql
#可以防止出现插入中文报错;如果此时不生效,可以强制在创建表的时候指定使用utf8的编码集 
[client]
default-character-set = utf8

3.7 初始化数据库

[root@localhost ~]# /home/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/home/mysql/ --datadir=/home/mysql/data/

3.8 启动mysql

先将mysql.server放置到/etc/init.d/mysql中
[root@localhost ~]# cp /home/mysql/support-files/mysql.server /etc/init.d/mysql
启动
[root@localhost ~]# /etc/init.d/mysql restart

3.9 配置环境变量

[root@localhost ~]# vim /etc/profile 修改末尾添加两行
export PATH=$PATH:/home/mysql/support-files
export PATH=$PATH:/home/mysql/bin
[root@localhost ~]# source /etc/profile

3.10 配置密码

首先登录mysql
mysql 回车

root本地设置密码
mysql> SET PASSWORD = PASSWORD('123456');
mysql> FLUSH PRIVILEGES; 

3.11 新建远程用户

mysql> grant all on *.* to deploy@'%' identified by '123456';

3.12 新建查询用户

#创建只能查询的用户
mysql> grant select on zhihui.* to query@'%' identified by '123456';

3.13 查询权限

#查询用户权限
mysql> use mysql
Database changed
mysql> select user,host from user;

3.14 设置开机启动

[root@localhost ~]# chkconfig --add mysql
[root@localhost ~]# chkconfig --level 345 mysql on
[root@localhost ~]# chkconfig --list

3.15 设置防火墙

(1) 向防火墙添加 mysql 端口: 
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
(2) 刷新防火墙规则: 
[root@localhost ~]# firewall-cmd --reload
(3) 验证端口,查询防火墙开放端口: 
[root@localhost ~]# firewall-cmd  --list-port

3.16 使用nacicat链接测试

3.17 mysql_slave安装

部署mysql_slave需要重复执行上面指令
注:slave的my.cnf中的server-id=2,该参数不要和master的一致。

连接slave_192.168.61.153数据库

4. 数据库主从

4.1 准备工作

确认事项,如下:
1.尽量保持主服务器和从服务器的服务版本一致
2.关闭iptables,关闭selinux,保证时间的一致
3.设置主机名(方便区分主从)
4.master端开启binlog日志功能
5.主服务器正常的情况下,从服务器永远不要写入
6.主与从服务器的server id 不能相同
7.mysql_master_192.168.61.152
8.mysql_slave_192.168.61.153

4.2 数据同步工作

将主库master中的库数据导入从库中
主库执行:
[root@mysql_master home]# ln -s /home/mysql/mysql.sock /tmp/
[root@mysql_master home]# mysqldump -uroot -p --all-databases >> /home/mysql/backup/all.sql
[root@mysql_master home]# scp /home/mysql/backup/all.sql 192.168.61.153:/home/mysql/backup/

4.3 授权从库

主库给从库授权
主库执行
mysql> grant replication slave on *.* to 'slave'@'192.168.61.153' identified by '123456';

注:授权从库192.168.61.153使用slave用户,密码123456访问主库的数据

从库登录测试
[root@mysql_slave mysql]# mysql -uslave -p123456 -h 192.168.61.152
mysql> show databases;

4.4 配置主库

修改配置文件
[root@master ~]# vim /etc/my.cnf
[mysqld]
innodb_file_per_table=1
server_id=1 	#id号

注释:每个主机都需要有id号 ,范围是1-65535,是什么数字都可以,但需要保证主从不冲突

生成新的日志文件
[root@mysql_master ~]# cd /home/mysql/logs/
[root@mysql_master logs]# rm -rf mysql-bin.*
[root@mysql_master logs]# /etc/init.d/mysql restart
[root@mysql_master logs]# ls mysql-bin.*
mysql-bin.000001  mysql-bin.index

查看日志位置和状态
mysql> show binlog events\\G
mysql> show master status\\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 154 	从154开始的
Binlog_Do_DB: 
Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

4.5 配置从库

修改配置文件,从库执行
[root@mysql_slave ~]# vim /etc/my.cnf
[mysqld]
server-id=2
[root@mysql_slave ~]# /etc/init.d/mysql restart

查看slave状态
[root@mysql_slave ~]# mysql -uroot -p123456
mysql> show slave status\\G;
Empty set (0.00 sec)

4.6 主从同步

从库上执行

配置主从同步
[root@mysql_slave ~]# mysql -uroot -p123456
mysql> change master to
master_host='192.124.16.76',
master_user='slave',
master_password='123456',
master_port=3306, 
master_log_file='mysql-bin.000001',
master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.50 sec)

启动从服务器的角色
mysql> start slave;
Query OK, 0 rows affected (0.03 sec)

mysql> show slave status\\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.61.152	主库地址
Master_User: slave	同步用户
Master_Port: 3306		同步端口
Connect_Retry: 60 重试时间
Master_Log_File: mysql-bin.000001 日志文件
Read_Master_Log_Pos: 154 日志位置字符偏移量
Relay_Log_File: mysql_slave-relay-bin.000002 中继日志
Relay_Log_Pos: 320 中继日志记录到哪里了
Relay_Master_Log_File: mysql-bin.000001 日志文件
Slave_IO_Running: Yes 两个进程都正常
Slave_SQL_Running: Yes Yes就是读中继日志了
Replicate_Do_DB: 
Replicate_Ignore_DB: 
Replicate_Do_Table: 
Replicate_Ignore_Table: 
Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
Last_Errno: 0
Last_Error: 
Skip_Counter: 0
Exec_Master_Log_Pos: 120
Relay_Log_Space: 454
Until_Condition: None
Until_Log_File: 
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File: 
Master_SSL_CA_Path: 
Master_SSL_Cert: 
Master_SSL_Cipher: 
Master_SSL_Key: 
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error: 
Last_SQL_Errno: 0
Last_SQL_Error: 
Replicate_Ignore_Server_Ids: 
Master_Server_Id: 1
Master_UUID: e7955f48-f699-11de-b03d-6cf049c2f465
Master_Info_File: /usr/local/mysql/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind: 
Last_IO_Error_Timestamp: 
Last_SQL_Error_Timestamp: 
Master_SSL_Crl: 
Master_SSL_Crlpath: 
Retrieved_Gtid_Set: 
Executed_Gtid_Set: 
Auto_Position: 0
1 row in set (0.00 sec)

4.7 同步测试

主服务器建库建表,主库执行
mysql> create database kkk;
mysql> use kkk
mysql> create table t1(id int);
mysql> insert into t1 values(10000);
mysql> flush logs;

从服务器查看效果
mysql> use kkk
mysql> select * from t1;
+-------+
| id |
+-------+
| 10000 |
+-------+
1 row in set (0.00 sec)

mysql> show slave status\\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.61.152
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql_slave-relay-bin.000004
                Relay_Log_Pos: 367
        Relay_Master_Log_File: mysql-bin.000002	#第2个日志了
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 627
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: 33786cf9-e55c-11ec-8d84-000c29ada541
             Master_Info_File: /home/mysql/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

4.8 数据备份

# 值得注意的是:
AB复制并不意味着可以不用备份,因为如果master上删除了一个库,slave上会跟着删掉,所以备份还是需要的

使用mysqldump在从服务器上锁表备份,(选择执行下面参数)
mysql> flush tables with read lock;
[root@master ~]# mysqldump --all-databases > all.sql
[root@master ~]# mysql -e 'show master status' 
mysql> unlock tables;  //解锁表

5. Mycat 读写分离

5.1 背景

随着互联网行业的蓬勃发展,应用程序的数据量也越来越大,我们仅仅通过单点数据库架构已经无法满足业务的需要,经常会出现查询缓慢,严重甚至宕机的情况。很多小伙伴可能会想,我们可以对 SQL 语句进行优化、MySQL 数据库优化、甚至采用主从高可用架构是不是就可以解决这个问题了呢?

答案是否定的,SQL 语句优化以及数据库层级的优化虽然可以加快 SQL 的查询速度,但是无法解决数据库的故障切换问题。那是不是主从高可用架构就可以解决这个问题呢,也不行,主从高可用架构虽然能解决数据库服务器的故障切换功能,但是无法解决数据库压力过大问题……

5.2 简介

一个彻底开源的,面向企业应用开发的大数据库集群
• 支持事务、ACID、可以替代MySQL的加强版数据库
• 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
• 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
• 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
• 一个新颖的数据库中间件产品

所谓的读写分离就是通过代码或第三方数据库中间件对数据的读写操作进行强制分离。写操作分发到主从架构(多主多从)中的所有 Master 主服务器(可以实现故障自动切换),读操作分发到主从架构中的所有的 Slave 从服务器,并实现读操作的负载均衡。

5.3 读写分离的目的

实际工作中,数据库服务器的读操作操作明显要大于写操作,大概比例为 7:3。我们采用读写分离架构就是将读写业务分配到不同的服务器上,让服务器做特定的操作,不需要不断的切换工作模式,从而提高数据库服务器的工作效率。

5.3 安装mycat

5.3.1 安装环境概述

ip节点备注
192.168.61.152node 01master
192.168.61.153node 02slave
192.168.61.151mycat最低配置:8核、16G内存、100G磁盘

5.3.2 安装jdk

  • 上传jdk 安装包
  • 配置jdk
1. 解压缩
[root@localhost ~]# hostnamectl set-hostname mycat
[root@localhost ~]# tar zxvf jdk-8u141-linux-x64.tar.gz -C /usr/local/

2. 配置环境变量
[root@mycat ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_141
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

[root@mycat ~]# source /etc/profile

3.配置域名
[root@mycat ~]# vim /etc/hosts	#添加
192.168.61.152 mysql_master
192.168.61.153 mysql_slave
192.168.61.151 mycat

4.测试jdk 安装是否成功
[root@mycat ~]# java -version

5.3.2 部署mycat

  • 创建用户
[root@mycat ~]# useradd -s /sbin/nologin -M mycat
  • 解压缩安装包
[root@mycat ~]# tar zxvf Mycat-server-1.6.7.6-release-20210930213049-linux.tar.gz -C /home/
  • 授权
[root@mycat ~]# chown -R mycat.mycat /home/mycat/
  • 配置环境变量
.[root@mycat ~]# vim /etc/profile
export PATH=/home/mycat/bin:$PATH

[root@mycat ~]# source /etc/profile

[root@mycat mycat]# ll
总用量 12
drwxr-xr-x. 2 mycat mycat  190 6月   6 15:59 bin
drwxrwxrwx. 2 mycat mycat    6 4月  15 2020 catlet
drwxrwxrwx. 4 mycat mycat 4096 6月   6 15:59 conf
drwxr-xr-x. 2 mycat mycat 4096 6月   6 15:59 lib
drwxrwxrwx. 2 mycat mycat    6 9月  16 2021 logs
-rwxrwxrwx. 1 mycat mycat  227 9月  30 2021 version.txt
注释:
conf:java写的配置文件大多以xml为结尾
conf/schema.xml:虚拟数据库对应后端真实数据的ip和真正数据库的名字
conf/server.xml:mycat呈现给应用程序的虚拟库名、连接的用户名和密码
logs/wrapper.log:mycat的日志文件
  • 启动mycat
[root@mycat ~]# /home/mycat/bin/mycat restart
Starting Mycat-server... 


8066端口:应用程序以及开发人员写代码连接的都是mycat8066端口

5.3.3 配置mycat 实现读写分离

  • 备份
[root@mycat mycat]# cd /home/mycat/
[root@mycat mycat]# cp conf/server.xml,.bak
[root@mycat mycat]# cp conf/schema.xml,.bak
  • 修改server.xml
# 注:需要修改的地方标成紫色
# 修改底部管理员用户和只读用户信息及密码,配置schemas
[root@mycat ~]# vim /usr/local/mycat/conf/server.xml
<user name="mycatadmin" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">kkk,app</property>

</user>

<user name="mycatuser">
<property name="password">123456</property>
<property name="schemas">kkk,app</property>
<property name="readOnly">true</property>
</user>
# 退出并保存

  • 修改schema.xml
定义虚拟数据库,虚拟数据库关联数据节点,数据节点中定义真实数据库的名字;同时dataNode还需要关联数据主机,数据主机中分别定义了真正后端数据库的端口号和ip以及连接数据库的用户名和密码
# 替换为以下内容 # 其中192.168.61.152为写主机(主数据库)IP,192.168.61.153为读主机(从数据库)IP。

[root@mycat ~]# vim /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="">http://io.mycat/">

<schema name="kkk" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<schema name="app" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2">
</schema>

<dataNode name="dn1" dataHost="mycat" database="kkk" />
<dataNode name="dn2" dataHost="mycat" database="app" />
<dataHost name="mycat" maxCon="2048" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="mysql_master" url="192.168.61.152:3306" user="deploy" password="123456">
<readHost host="mysql_slave" url="192.168.61.153:3306" user="deploy" password="123456" />
</writeHost>
</dataHost>

</mycat:schema>

# 退出并保存

  • 算法介绍
balance 属性
1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。
2. balance="1", 全部的 readHost 与 stand by writeHost备用写主机参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 
互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
4. balance="2", 所有读操作都随机的在 writeHost、readhost 上分发。
5. balance="3", 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。

writeType 属性
1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后以切换后的为准.
2. writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。
  • 重启mycat
root@mycat ~]# /home/mycat/bin/mycat restart
[root@mycat ~]# netstat -antp | grep -E "8066|9066"

5.3.4 测试读写分离

[root@mysql_master ~]# mysql -u mycatadmin -p -h 192.168.61.151 -P 8066
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 2
Server version: 5.6.29-mycat-1.6.7.6-release-20210930213049 MyCat Server (OpenCloudDB)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.
mysql> show databases;
+----------+
| DATABASE |
+----------+
| app      |
| kkk      |
+----------+
2 rows in set (0.01 sec)
mysql> use app;
mysql> create table student1( id int,name varchar(50),sex enum('male','female'),age int); //创建表

mysql> insert into student1 values (1,'tom','male',23), (2,'jack','male',21),(3,'alice','female',19); //写入数据

mysql> select name,sex from student1; //查看数据
  • 日志分析
在主服务器192.168.61.152上查看数据
[root@mysql_master ~]# tail -f  /home/mysql/data/mysql_master.log
2022-06-06T14:12:06.334119Z	   18 Query	insert into student1 values (1,'tom','male',23), (2,'jack','male',21),(3,'alice','female',19)

猿创征文|万字长文搞定企业中的mysql数据库部署及使用(代码片段)

...用户3.5创建数据目录并赋予权限3.6配置my.cnf文件3.7初始化数据库3.8启动mysql3.9配置环境变量3.10配置密码3.11新建远 查看详情

猿创征文|万字长文搞定企业中的mysql数据库部署及使用(代码片段)

...用户3.5创建数据目录并赋予权限3.6配置my.cnf文件3.7初始化数据库3.8启动mysql3.9配置环境变量3.10配置密码3.11新建远程用户3.12新建查询用户3.13查询权限3.14设置开机启动3.15设置防火墙3.16使用nacicat链接测试3.17mysql_slave安装4.数据库主... 查看详情

猿创征文|使用docker部署opengauss国产数据库(代码片段)

猿创征文|使用Docker部署openGauss国产数据库一、openGauss介绍1.openGauss简介2.openGauss产品定位3.支持的架构和操作系统版本二、检查宿主机环境1.检查系统版本2.检查Docker状态三、下载openGauss镜像1.进入docker官方镜像仓库2.openGauss镜像介... 查看详情

猿创征文|国产数据库实战之tidb数据库快速入门(代码片段)

猿创征文|国产数据库实战之TiDB数据库快速入门一、系统检查1.检查系统版本2.查看本地IP地址3.TiDB集群介绍二、快速部署本地测试集群1.安装TiUP工具2.声明全局环境变量3.快速部署TiDB集群三、连接TiDB数据库1.新开一个session以访问T... 查看详情

猿创征文|13万字学会spring+springmvc+mybatis框架(代码片段)

目录Spring介绍Spring是什么Spring发展历程Spring优势Spring的体系结构  Spring快速入门Spring程序开发步骤idea中快速入门 Spring配置文件Bean标签基本配置Bean标签范围配置 无参构造创建时机Bean生命周期配置 Bean实例化三种方式  Bean的... 查看详情

猿创征文|国产数据库实战之使用docker部署oceanbase数据库(代码片段)

猿创征文|国产数据库实战之使用Docker部署OceanBase数据库一、OceanBase介绍1.OceanBase介绍2.OceanBase特点3.OceanBase数据库基础概念4.OceanBase相关概念①OBServer②区域(zone)③资源池④租户⑤数据分区⑥副本5.本次实践介绍二、检查... 查看详情

万字长文带你搞定linuxbt宝塔面板之外网上快速搭建苹果cms电影网站(代码片段)

文章目录万字长文带你搞定宝塔面板一、本地搭建宝塔面板及安装ecshop1.1前言1.2面板特色功能1.3安装环境说明1.4安装BT面板1.5常用管理命令1.6BT面板一键安装LAMP/LNMP环境1.7BT面板建站及使用技巧二、阿里云上部署高清电影网站2.1.... 查看详情

万字长文带你搞定linuxbt宝塔面板之外网上快速搭建苹果cms电影网站(代码片段)

文章目录万字长文带你搞定宝塔面板一、本地搭建宝塔面板及安装ecshop1.1前言1.2面板特色功能1.3安装环境说明1.4安装BT面板1.5常用管理命令1.6BT面板一键安装LAMP/LNMP环境1.7BT面板建站及使用技巧二、阿里云上部署高清电影网站2.1.... 查看详情

猿创征文|国产数据库之opengauss的单机主备部署及快速入门(代码片段)

猿创征文|国产数据库之openGauss的单机主备部署及快速入门一、openGauss介绍1.openGauss简介2.openGauss特点3.openGauss的逻辑架构图二、环境检查1.节点规划2.操作系统版本三、安装前环境配置1.检查admin普通用户2.给安装目录授权3.配置/etc/... 查看详情

猿创征文|国产数据库之在k8s环境下部署radondbmysql集群(代码片段)

猿创征文|国产数据库之在k8s环境下部署RadonDBMySQL集群一、RadonDBMySQL介绍1.RadonDBMySQL简介2.RadonDBMySQL的应用场景3.RadonDBMySQL核心功能4.RadonDBMySQL架构图二、检查本地k8s环境1.检查k8s节点状态2.检查helm版本三、添加helm仓库1.添加helm仓库... 查看详情

猿创征文|mysql中show的常用命令-navicat篇建议收藏(代码片段)

...示表中列名称4.显示createdatabase语句是否能够创建指定的数据库5.显示createtable语句是否能够创建指定的表6.显示当前使用或者指定的database中的每个表的信息7.显示当前数据库中所有表的名称8.显示mysql中所有数据库的名称9.显示系... 查看详情

猿创征文|国产数据库之使用pxd在docker环境下部署polardb-x集群(代码片段)

猿创征文|国产数据库之使用PXD在Docker环境下部署PolarDB-X集群一、PolarDB-X介绍1.PolarDB-X简介2.PolarDB-X特点二、PolarDB-X的产品架构1.产品架构图2.PolarDB-X架构介绍三、环境规划四、Docker安装1.安装系统工具2.配置docker的yum仓库源3.安装doc... 查看详情

猿创征文|国产数据库实战使用docker部署polardb-x云原生分布式开源数据库(代码片段)

猿创征文|【国产数据库实战】使用docker部署PolarDB-X云原生分布式开源数据库一、PolarDB-X介绍1.PolarDB-X简介2.PolarDB-X特点二、检查docker版本三、检查docker配置信息四、下载PolarDB-X镜像五、部署PolarDB-X1.创建PolarDB-X容器2.检查PolarDB-X容... 查看详情

猿创征文|前端之行,任重道远(来自大三学长的万字自述)(代码片段)

🧑‍💼个人简介:本科大三学生、前端领域新星创作者、华为云享专家、阿里云专家博主、第十三届蓝桥杯国赛三等奖获得者,拥有软件著作权1项。一个不甘平庸的平凡人🍬📖前言目前正值开学季,... 查看详情

猿创征文|国产数据实战之docker部署mywebsql数据库管理工具(代码片段)

猿创征文|国产数据实战之docker部署MyWebSQL数据库管理工具一、MyWebSQL介绍1.MyWebSQL简介2.MyWebSQL特点二、检查本地环境1.检查docker状态2.检查docker-compose版本三、下载MyWebSQL镜像四、部署MyWebSQL工具1.编辑docker-compose.yaml2.创建MyWebSQL容器... 查看详情

猿创征文|华为dws数仓配置教程及体验(代码片段)

部署DWS过程进入华为云官网http://bbs.huaweicloud.com/在搜索栏输入dws,点击进入dws数据仓库服务地区选择华北-北京四选择购买数据仓库集群可用区选择可用区1,产品类型选择标准数仓,节点规格选择dwsk.xlarge配置其它基... 查看详情

猿创征文|华为dws数仓配置教程及体验(代码片段)

部署DWS过程进入华为云官网http://bbs.huaweicloud.com/在搜索栏输入dws,点击进入dws数据仓库服务地区选择华北-北京四选择购买数据仓库集群可用区选择可用区1,产品类型选择标准数仓,节点规格选择dwsk.xlarge配置其它基... 查看详情

猿创征文|oceanbase社区版集群部署(代码片段)

📢📢📢📣📣📣哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验一位上进心十足的【大数据领域博主】!😜😜😜中国DBA联盟(ACDU)成员,目前从 查看详情