首页
友情链接
关于
Search
1
Docker 拉取镜像报错 “missing signature key” 解决办法
1,257 阅读
2
如何在CentOS 7中升级Linux内核
438 阅读
3
docker 常用命令
192 阅读
4
k8s 常用命令
190 阅读
5
Ubuntu 系统LVM 磁盘扩容
157 阅读
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
登录
/
注册
Search
标签搜索
Docker
shell脚本
Linux 系统管理
k8s
LVM
KVM
网络服务
Nginx
Ubuntu
内核升级
Linux用户管理
系统管理
MySQL
共享存储
Abbott
累计撰写
35
篇文章
累计收到
2
条评论
首页
栏目
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
页面
友情链接
关于
搜索到
2
篇与
的结果
2024-12-17
mycat 读写分离
环境介绍系统版本内核版本数据库版本读写分离组建java 版本Red Hat Enterprise Linux 8.8 (Ootpa)Linux 4.18.0-477.10.1.el8_8.x86_64mysql-8.4.3-linux-glibc2.28-x86_64Mycat-server-1.6java version "1.8.0_431"系统架构实现主从主从不在这叙述mysql> show replica status \G; *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event #复制IO的状态 Source_Host: 192.168.137.69 #源主机地址 Source_User: repl5 #连接源主机数据库的用户 Source_Port: 3306 Connect_Retry: 60 #连接重试时间 60 Source_Log_File: 3306bin.000007 #源日志文件名称 Read_Source_Log_Pos: 1955 #读取源日志的起始位置(偏移量) Relay_Log_File: mysql-slave-relay-bin.000002 #中继日志文件 Relay_Log_Pos: 786 #中继日志的位置(偏移量) Relay_Source_Log_File: 3306bin.000007 #从master同步中继日志文件的名称 Replica_IO_Running: Yes #复制节点的IO线程的状态:YES 表示成功;connection:正在连接 NO:连接不成功 Replica_SQL_Running: Yes #复制节点的SQL线程的状态 ====================== 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_Source_Log_Pos: 1955 #执行源日志的偏移量 Relay_Log_Space: 1003 #中继日志的空间 Until_Condition: None #直到条件 Until_Log_File: Until_Log_Pos: 0 ===================== Source_SSL_Allowed: No 描述SSL验证 Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source: 0 Source_SSL_Verify_Server_Cert: No ====================== Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 19 #源server的ID Source_UUID: f7b42b90-b769-11ef-8b2f-525400d39ac1 #源UUID Source_Info_File: mysql.slave_master_info #源数据库文件描述信息 SQL_Delay: 0 #SQL线程的延迟时间 SQL_Remaining_Delay: NULL #SQL 剩余延迟时间 Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates #SQL线程的状态 Source_Retry_Count: 10 #重试次数10 Source_Bind: Last_IO_Error_Timestamp: #最新/上一次IO错误的时间戳 Last_SQL_Error_Timestamp: #最新/上一次SQL错误的时间戳 Source_SSL_Crl: Source_SSL_Crlpath: Retrieved_Gtid_Set: f7b42b90-b769-11ef-8b2f-525400d39ac1:8-9 #已获取全局事务标识符集合 Executed_Gtid_Set: f7b42b90-b769-11ef-8b2f-525400d39ac1:1-9 #已执行全局事务标识符集合 Auto_Position: 1 #自动定位 Replicate_Rewrite_DB: Channel_Name: Source_TLS_Version: Source_public_key_path: Get_Source_public_key: 0 Network_Namespace:部署mycat节点一、获取软件包及解压wget https://github.com/MyCATApache/Mycat-download/blob/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/二、修改配置文件server.xml(保持原文件不动)schema.xml[root@mycat-server ~]# cat /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="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <!-- auto sharding by id (long) --> <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> <!-- global table is auto cloned to all defined data nodes ,so can join with any table whose sharding node is in the same data node --> <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" /> <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" /> <!-- random sharding using mod sharind rule --> <table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" /> <!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global" needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3" rule="mod-long" /> --> <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" /> <table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile"> <childTable name="orders" primaryKey="ID" joinKey="customer_id" parentKey="id"> <childTable name="order_items" joinKey="order_id" parentKey="id" /> </childTable> <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id" parentKey="id" /> </table> <!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> --> </schema> <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743" /> --> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost1" database="db2" /> <dataNode name="dn3" dataHost="localhost1" database="db3" /> <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" /> <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" /> <dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" /> <dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" dbType="mysql" dbDriver="jdbc"> <heartbeat>select user()</heartbeat> <writeHost host="192.168.137.69" url="jdbc:mysql://192.168.137.69:3306" user="mycat1" password="mycat@123"> <readHost host="192.168.137.61" url="jdbc:mysql://192.168.137.61:3306" user="mycat1" password="mycat@123" /> </writeHost> </dataHost> </mycat:schema>三、启动Mycat[root@mycat-server mycat]# bin/mycat start错误过程错误的原因:JDBC 驱动未正确配置Mycat 在执行 JDBC 操作时找不到合适的驱动程序。MySQL的JDBC驱动通常是com.mysql.cj.jdbc.Driver,但是 Mycat 可能没有正确加载该驱动。解决方法:1. 确保 JDBC 驱动在 Mycat 中正确配置:检查Mycat 配置文件 conf/mysql.properties 或其他相关的配置文件,确保 mysql.driver 参数正确指定为 MySQL 驱动:mysql.driver=com.mysql.cj.jdbc.Driver2. 确保 MySQL JDBC 驱动存在:确保 Mycat的lib/目录中包含 MySQL JDBC 驱动 mysql-connector-java-x.x.x.jar。如果没有,可以手动下载并将其放置到 lib/ 目录中。你可以从 MySQL 官方下载页面 下载适合的 JDBC 驱动,并将其放入 lib 目录。[root@mycat-server ~]# wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.4.0-1.el8.src.rpm [root@mycat-server ~]# rpm -ivh mysql-connector-j-8.4.0-1.el8.src.rpm [root@mycat-server ~]# cd rpmbuild/SOURCES/ [root@mycat-server SOURCES]# tar xf mysql-connector-j-8.4.0.tar.gz [root@mycat-server SOURCES]# cd mysql-connector-j-8.4.0 [root@mycat-server mysql-connector-j-8.4.0]# cp mysql-connector-j-8.4.0.jar /usr/local/mycat/lib/3.重新启动mycat[root@mycat-server mycat]# bin/mycat start切记一定:要观察日志
2024年12月17日
73 阅读
0 评论
0 点赞
2024-07-05
Red Hat 8 源码构建mysql:8.0.35版
一、主机信息[root@bogon mysql]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.8 (Ootpa) [root@bogon mysql]# uname -r 4.18.0-477.10.1.el8_8.x86_64 [root@bogon mysql]# lscpu | grep '^CPU(s):' CPU(s): 2 [root@bogon mysql]# free -h total used free shared buff/cache available Mem: 3.6Gi 282Mi 1.3Gi 8.0Mi 2.0Gi 3.0Gi Swap: 3.9Gi 0B 3.9Gi二、下载源码包官方下载三、创建管理目录且解压[root@bogon mysql]# mkdir /usr/local/mysql8 [root@bogon ~]# tar xf mysql-boost-8.0.38.tar.gz -C /usr/local/mysql8/ [root@bogon ~]# cd /usr/local/mysql8/ [root@bogon mysql8]# ln -s mysql-8.0.38 mysql四、检查环境&编译安装4.1 安装需要软件包[root@bogon mysql8]# dnf -y install cmake make gcc gcc-c++ gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc openssl-devel ncurses-devel libtirpc-devel rpcgen [root@bogon ~]# wget https://dl.rockylinux.org/pub/rocky/8/PowerTools/x86_64/os/Packages/r/rpcgen-1.3.1-4.el8.x86_64.rpm [root@bogon ~]# dnf -y install rpcgen-1.3.1-4.el8.x86_64.rpm4.2 创建用户1.检查是否有mysql用户 [root@bogon mysql8]# id mysql uid=995(mysql) gid=992(mysql) groups=992(mysql) 2.创建用户 [root@bogon mysql8]# useradd -r -s /sbin/false mysql4.3 检查环境及指定参数[root@bogon mysql-8.0.38]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=system -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT="zsd edition" -DWITH_BOOST=/usr/local/mysql8/mysql-8.0.38/boost/ -DMYSQL_UNIX_ADDR=/usr/local/mysql8/3306/mysql.sock -DSYSCONFDIR=/usr/local/mysql8/data/3306 -DFORCE_INSOURCE_BUILD=1描述:1. `-DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/`: 指定MySQL安装目录为`/usr/local/mysql8/`。这个目录将包含MySQL的所有组件,如二进制文件、 库和配置文件。 2. `-DDEFAULT_CHARSET=utf8`: 设定默认字符集为UTF-8。UTF-8是一种能够表示大多数文字的编码方式,适用于处理不同语言的数据。 3. `-DDEFAULT_COLLATION=utf8_general_ci`: 设定默认比较规则为`utf8_general_ci`。这是一个用于比较UTF-8字符串的规则,适用于大多数场景。 4. `-DENABLED_LOCAL_INFILE=ON`: 启用本地文件操作功能。这个选项允许MySQL从本地磁盘读取和写入数据。 5. `-DWITH_INNODB_MEMCACHED=ON`: 启用InnoDB存储引擎与Memcached集成。Memcached是一个高性能的内存对象缓存系统,可以提高MySQL的查询性能。 6. `-DWITH_SSL=system`: 使用系统提供的SSL库。这个选项允许MySQL使用安装在系统中的SSL库进行加密通信。 7. `-DWITH_INNOBASE_STORAGE_ENGINE=1`: 启用InnoDB存储引擎。InnoDB是MySQL默认的事务处理存储引擎,支持ACID特性和行级锁定。 8. `-DWITH_FEDERATED_STORAGE_ENGINE=1`: 启用联邦存储引擎。这个选项允许MySQL连接到其他MySQL服务器进行数据查询和操作。 9. `-DWITH_BLACKHOLE_STORAGE_ENGINE=1`: 启用黑洞存储引擎。这是一个虚拟存储引擎,不实际存储数据,可用于模拟其他存储引擎的行为。 10. `-DWITH_ARCHIVE_STORAGE_ENGINE=1`: 启用归档存储引擎。这个存储引擎用于保存不经常修改的数据,提高查询性能。 11. `-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1`: 禁用示例存储引擎。这个选项可以避免安装一个不常用的示例存储引擎。 12. `-DWITH_PERFSCHEMA_STORAGE_ENGINE=1`: 启用性能表存储引擎。这个存储引擎用于存储关于MySQL服务器的性能指标。 13. `-DCOMPILATION_COMMENT="zsd edition"`: 为编译过程添加注释。在这个例子中,注释设置为“zsd edition”,表示此版本是由"zsd"编译和配置的。 14. `-DWITH_BOOST=/usr/local/mysql8/mysql/boost/`: 启用Boost库并指定其安装路径。Boost是一个C++库集合,提供了各种功能和数据结构。MySQL使用Boost库进行一些特定的操作。 15. `-DMYSQL_UNIX_ADDR=/usr/local/mysql/3306/mysql.sock`: 指定MySQL Unix 地址为`/usr/local/mysql/3306/mysql.sock`。这个文件是用于Unix和 Linux系统上的MySQL通信使用的套接字文件,允许MySQL进程之间的通信。 16. `-DSYSCONFDIR=/usr/local/mysql/data/3306`: 指定MySQL的系统配置目录为`/usr/local/mysql/data/3306`。这个目录包含了MySQL服务器的数据文 件和配置文件。 17. `-DFORCE_INSOURCE_BUILD=1`: 强制使用内存源代码构建。这个选项可以确保在编译期间使用内存中的源代码,而不是从磁盘读取源代码。4.4 编译并安装[root@bogon mysql8]# make -j 2 #-j指定并发数,需要查看有多少个内核 [root@bogon mysql8]# make install 4.5 创建MySQL主配置文件[root@localhost ~]# cat /usr/local/mysql8/my.cnf [mysqld] user = mysql basedir=/usr/local/mysql8/ datadir=/usr/local/mysql8/data pid-file = /usr/local/mysql8/data/mysqld.pid socket = /usr/local/mysql8/data/mysqld.sock port = 3306 tmpdir = /tmp五、初始化数据[root@localhost mysql8]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data输出结果:六、启动数据库[root@localhost mysql8]# bin/mysqld_safe --defaults-file=/usr/local/mysql8/my.cnf --user=mysql描述1. --defaults-file # 指定mysql的主配置文件2. --user=mysql #指定管理数据库的用户隐藏内容,请前往内页查看详情七、测试数据库1.本地连接测试登录数据库[root@localhost mysql-8.0.38]# bin/mysql -uroot -S /usr/local/mysql8/data/mysqld.sock -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.38 Copyright (c) 2000, 2024, 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> -S #指定mysql数据库的sock文件
2024年07月05日
97 阅读
0 评论
0 点赞