首页
关于
Search
1
阿里云rds数据库mysql版cpu占用100%排查问题过程
1,384 阅读
2
解决Gitlab进行clone、push、pull的时候报错aborting due to possible repository corruption on the remote side. git-pack-objects died with error.index-pack failed问题
1,282 阅读
3
nginx、php-fpm、thinkphp接口请求偶尔返回502导致前端报CORS跨域错误问题
819 阅读
4
使用VMware Workstation pro 15安装黑苹果后,开机卡在logo的问题
753 阅读
5
mysql查询某个字段有两条重复记录的SQL语句
580 阅读
计算机
数据库
Linux
PHP开发
前端
好文收藏
产品
创业
天天向上
阅读
工作
登录
Search
标签搜索
PHP
ss
pdo
mysql
php8
阅读
摘抄
PHP后端开发技术学习
累计撰写
104
篇文章
累计收到
1
条评论
首页
栏目
计算机
数据库
Linux
PHP开发
前端
好文收藏
产品
创业
天天向上
阅读
工作
页面
关于
搜索到
18
篇与
数据库
的结果
2022-03-03
Redis持久化方式对比
Redis持久化方式对比
2022年03月03日
303 阅读
2020-04-22
MySQL根据某个字段值进行排序
使用case when语句SELECT id,name FROM user ORDER BY CASE WEHN id = '1' TEHN 1 WHEN id = '2' THEN 2 ELSE 3 END ;
2020年04月22日
179 阅读
2019-10-07
mysql查询某个字段有两条重复记录的SQL语句
由于写代码的疏忽,可能会导致数据库多出一条重复的记录,这时需要找到重复的记录把其中一条删除,例如查找以下数据表多出了的parent_order_id相同并且备注为某某某获得奖励的记录CREATE TABLE `x_fenxiao_reward` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `user_id` int(10) unsigned NOT NULL COMMENT '总部id', `parent_order_id` int(10) unsigned NOT NULL COMMENT 'x_ordinary_pay_record表id', `sub_order_id` int(10) unsigned NOT NULL COMMENT 'x_ordinary_pay_goods表id', `state` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '0:未结算 1:冻结(发生退款退货) 2:已结算 3:作废', `confirm_time` int(10) unsigned NOT NULL COMMENT '自动结算时间:确认收货的时间点+结算的时间间隔fenxiao_settlement_day(转为秒)', `reward_level_1` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '业务员的佣金', `reward_level_1_client_code` varchar(10) NOT NULL DEFAULT '' COMMENT '业务员的邀请码', `last_update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最近更新时间', `end_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最终结算时间', `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '推广备注(用于关注人推广,签到推广)', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=2915 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='业务员佣金明细表';利用临时表、子查询、count函数和group by结合,整理出来的语句为SELECT * FROM x_fenxiao_reward WHERE id in( SELECT id FROM ( SELECT parent_order_id, COUNT(*) AS count FROM x_fenxiao_reward WHERE state = '0' GROUP BY parent_order_id HAVING count = 2 ) AS result LEFT JOIN x_fenxiao_reward ON x_fenxiao_reward.parent_order_id = result.parent_order_id ) AND remark LIKE '%获得的奖励记录%'
2019年10月07日
580 阅读
2019-10-06
MySQL通过goldengate单向同步到Oracle数据库
操作系统以及软件版本源端:操作系统centos7.6 数据库MYSQL5.6.45 goldengate版本122022_ggs_Linux_x64_MySQL_64bit目标端:操作系统win10 数据库Oracle11gR2 goldengate版本122023_ggs_Windows_x64_shiphome配置mysql 在/var/lib/mysql目录下创建存放binlog日志的文件夹binlogmkdir /var/lib/mysql/binlog编辑my.cnf文件,在[mysqld]后面添加以下配置项log-bin = /usr/local/var/mysql/logs/mysql-bin.log expire-logs-days = 14 max-binlog-size = 500M server-id = 1 binlog_format=row重启mysqlservice mysql restart,登录mysql,执行fsd可以看到是否开启binlog日志,log_bin为ON表示开启成功| log_bin | ON | | log_bin_basename | /var/lib/mysql/binlog/mysql-bin | | log_bin_index | /var/lib/mysql/binlog/mysql-bin.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON同时可以看到/var/lib/mysql/binlog文件夹生成mysql-bin.000001 mysql-bin.index创建测试数据库以及数据表create database ogg default character set utf8 collate utf8_general_ci; CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `name` varchar(10) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '姓名', `age` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '年龄', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='人物表';安装和配置源端mysql版goldengate通过网址https://www.oracle.com/middleware/technologies/goldengate-downloads.html下载软件包 122022_ggs_Linux_x64_MySQL_64bit.zip切换至mysql用户 su - mysql新建文件夹oggmkdir ogg将122022_ggs_Linux_x64_MySQL_64bit.zip文件通过fizezilla或其它工具上传至ogg文件夹,并更改所有者为mysqlchown mysql:mysql 122022_ggs_Linux_x64_MySQL_64bit.zip切换至mysql用户并解压文件到当前文件夹unzip 122022_ggs_Linux_x64_MySQL_64bit.zip tar -xvf ggs_Linux_x64_MySQL_64bit.tar配置ogg参数 进入ogg文件夹,运行ogg主程序./ggsci执行创建子目录命令create subdirs配置管理进程,输入命令edit params mgr,创建配置文件填入以下内容后保存PORT 7809 autorestart extract *,waitminutes 2,resetminutes 5启动管理进程,输入命令start mgr,启动成功后显示如下Manager started.输入命令info mgr可以看到管理进程运行状态Manager is running (IP port localhost.localdomain.7809, Process ID 3862).配置抽取进行e_m执行命令edit params e_m创建配置文件,并填入以下内容EXTRACT e_m setenv (MYSQL_HOME=/var/lib/mysql) TRANLOGOPTIONS ALTLOGDEST /var/lib/mysql/binlog/mysql-bin.index SOURCEDB ogg@localhost:3306, USERID root, PASSWORD 123456 REPORTCOUNT EVERY 30 MINUTES, RATE EXTTRAIL /var/lib/mysql/ogg/dirdat/mq,FORMAT RELEASE 12.2 TABLE ogg.user;添加抽取进程add extract e_m,tranlog,begin now add exttrail /var/lib/mysql/ogg/dirdat/mq,extract e_m启动抽取进程start e_m使用info e_m命令查看启动状态,成功如下EXTRACT E_M Last Started 2019-10-06 04:37 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:04 ago) Process ID 5032 VAM Read Checkpoint 2019-10-06 04:33:54.477981配置推送进程p_m执行edit params p_m命令创建配置文件并填入以下内容extract p_m SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) sourcedb ogg@127.0.0.1:3306 userid root password 123456 PASSTHRU numfiles 20000 rmthost 192.168.56.1,mgrport 7809,compress rmttrail F:\oracle12\product\12.2.0\oggcore_1\dirdat\mq,FORMAT RELEASE 12.2 table ogg.user;添加推送进程add extract p_m,exttrailsource /var/lib/mysql/ogg/dirdat/mq add rmttrail F:\oracle12\product\12.2.0\oggcore_1\dirdat\mq,extract p_m,megabytes 500启动推送进程start p_m输入info p_m命令查看启动状态,成功如下EXTRACT P_M Last Started 2019-10-06 05:01 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:02:37 ago) Process ID 6315 Log Read Checkpoint File /var/lib/mysql/ogg/dirdat/mq000000000 First Record RBA 0输入info all命令,可以查看mgr、e_m、p_m进程已经启动成功MANAGER RUNNING EXTRACT RUNNING E_M 00:00:00 00:00:08 EXTRACT ABENDED P_M 00:00:00 00:04:00 配置异构文件defgen.prm(异构数据库需要配置) 输入命令edit params defgen创建配置文件并填入内容defsfile ./dirdef/defgen.prm sourcedb ogg@127.0.0.1:3306 userid root, password 123456 table ogg.user;输入exit退出ogg主程序,执行defgen程序生成表定义文件defgen.prm./defgen paramfile ./dirprm/defgen.prm将生成在/dirdef/defgen.prm文件传到目标端对应文件夹下创建Oracle测试表创建测试表CREATE TABLE "CXWT"."user" ( "id" NUMBER(10,0) DEFAULT 0 NOT NULL ENABLE, "name" VARCHAR2(15) DEFAULT '' NOT NULL ENABLE, "age" NUMBER(10,0) DEFAULT 0 NOT NULL ENABLE, PRIMARY KEY ("id") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "CXWT_SPACE" ENABLE ) SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "CXWT_SPACE"; CREATE UNIQUE INDEX "CXWT"."SYS_C0011103" ON "CXWT"."user" ("id") PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "CXWT_SPACE";安装目标端Oracle版goldengate通过网址https://www.oracle.com/middleware/technologies/goldengate-downloads.html下载软件包122023_ggs_Windows_x64_shiphome.zip 解压软件包,并打开setup.exe文件进行安装,在弹出的安装界面第一步选择Oracle 11g数据库,安装路径选择了F:\oracle12\product\12.2.0\oggcore_1使用cmd打开goldengate安装目录,运行ogg主程序.\ggsci.exe配置管理进程,输入命令edit params mgr,修改配置文件,内容改为PORT 7809 ACCESSRULE, PROG REPLICAT, IPADDR 192.168.56.101 ALLOW //IPADDR为源端IP地址输入命令start mgr启动管理进程,启动成功将弹出另外两个窗口,一个管理进程窗口,另外一个是收集进程窗口配置GLOBALS和checkpoint输入命令edit params ./GLOBALS创建配置文件并填入以下内容checkpointtable cxwt.checkpoint输入命令dblogin userid cxwt,password 123456登录Oracle数据库输入以下命令添加checkpoint表 add checkpointtable cxwt.checkpoint创建复制进程e_m输入命令edit params r_m创建配置文件并填入以下内容replicat r_m setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) setenv(ORACLE_HOME=F:\oracle12\product\11.2.0\dbhome_1) sourcedefs F:\oracle12\product\12.2.0\oggcore_1\dirdef\defgen.prm userid cxwt,password remainconfident discardfile F:\oracle12\product\12.2.0\oggcore_1\dirrpt\r_m.dsc,purge HANDLECOLLISIONS map ogg.user,target cxwt.user;添加复制进程add replicat r_m,exttrail F:\oracle12\product\12.2.0\oggcore_1\dirdat\mq,checkpointtable cxwt.checkpoint启动goldengate进行同步拷贝源端defen.prm到目标端F:\oracle12\product\12.2.0\oggcore_1\dirdef文件夹下 源端开启mgr、e_m、p_m进程start mgr start e_m start p_m使用info all命令查看启动状态,成功开启如下Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING E_M 00:00:00 00:00:03 EXTRACT ABENDED P_M 00:00:00 02:50:50 目标端开启mgr、r_m进程start mgr start r_m使用info all命令查看启动状态,成功如下突然间遇到问题:投递进程会异常中断,解决后再补充剩下的
2019年10月06日
490 阅读
2019-10-05
win10安装Oracle数据库11gR2提示环境不满足最低要求问题
解决办法编辑\database\stage\cvu\cvu_prereq.xml文件,在CERTIFIED_SYSTEMS节点添加以下内容,如果是32位则将64-bit改为32-bit<OPERATING_SYSTEM RELEASE="6.2"> <VERSION VALUE="3"/> <ARCHITECTURE VALUE="64-bit"/> <NAME VALUE="Windows 10"/> <ENV_VAR_LIST> <ENV_VAR NAME="PATH" MAX_LENGTH="1023" /> </ENV_VAR_LIST> </OPERATING_SYSTEM>
2019年10月05日
149 阅读
2019-10-05
Centos7通过rpm包安装MySQL5.6.45
卸载自带的Mariadb数据库 输入命令rpm -qa | grep mariadb查看是否已经安装Mariadb,如果已经安装,则显示如下mariadb-libs-5.5.60-1.el7_5.x86_64需要卸载才能继续安装mysql5.5。输入rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64进行卸载 下载rpm安装包 访问网址https://dev.mysql.com/downloads/mysql/,选择操作系统版本,下载rpm安装包MySQL-5.6.45-1.el7.x86_64.rpm-bundle.tar,或者使用wget进行下载安装mysql5.6.45 将安装包下载到指定文件夹,输入命令解压文件tar -xvf MySQL-5.6.45-1.el7.x86_64.rpm-bundle.tar,解压出如下文件MySQL-shared-compat-5.6.45-1.el7.x86_64.rpm MySQL-test-5.6.45-1.el7.x86_64.rpm MySQL-server-5.6.45-1.el7.x86_64.rpm MySQL-client-5.6.45-1.el7.x86_64.rpm MySQL-embedded-5.6.45-1.el7.x86_64.rpm MySQL-devel-5.6.45-1.el7.x86_64.rpm MySQL-shared-5.6.45-1.el7.x86_64.rpm输入yum install MySQL-{server,client}-*安装MySQL服务端和客户端,其他按需安装配置mysql 启动服务service mysql start安装成功后,会自动生成一个root用户的随机密码,位于/root/.mysql_secret文件里面,可以通过该密码登录mysql重置root密码。除此之外,可以运行/usr/bin/mysql_secure_installation并输入生成随机密码进行初始化工作。
2019年10月05日
288 阅读
2019-09-20
Win7/10安装zip版本MySQL8.0数据库方法
到官网mysql8.0下载zip文件,解压到指定目录配置系统环境变量到bin目录下在根目录下创建my.ini文件,并输入配置信息[mysqld] # 服务端端口 port=3306 # mysql安装路径 basedir=F:\webserver\mysql8.0 # mysql数据库存储路径 datadir=F:\webserver\mysql8.0\data # 最大连接数 max_connections=200 # 错误数量 max_connect_errors=10 # 服务端字符编码 character-set-server=utf8 # 数据库引擎 default-storage-engine=INNODB # 验证方式 default_authentication_plugin=mysql_native_password #运行模式 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #log-bin=mysql-bin #log-bin = "E:\mysql\logbin.log" # 自定义目录,日志保存路径 #log-bin-index = "E:\mysql\logindex.index" # 自定义目录,日志保存路径 #log-bin=ON #log_bin=D:\webserver\mysql_bin_log\log-bin #binlog_cache_size=32m #max_binlog_cache_size=512m #max_binlog_size=512m # binary logging format - mixed recommended #binlog_format=mixed #OGG同步必须指定日志为row #binlog_format=row # The maximum amount of concurrent sessions the MySQL server will # allow. One of these connections will be reserved for a user with # SUPER privileges to allow the administrator to login even if the # connection limit has been reached. [mysql] # 客户端字符编码 default-character-set=utf8 [client] # 客户端端口 port=3306 default-character-set=utf8打开cmd命令行,输入mysqld --initialize --console进行初始化,记住生成的随机密码。如果不需要生成生成随机密码,将--initialize参数改为--initialize-insecure安装mysql系统服务,输入命令mysqld install ,如果需要安装特殊的服务名,例如mysql8,则输入mysqld install mysql8进行安装启动服务,输入命令net start mysql 进行启动登录mysql,如果使用安全模式则输入mysql -uroot -p ,接着输入随机密码,如果使用非安全模式则输入mysql -uroot -p --skip-password进行连接更改初始密码ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
2019年09月20日
251 阅读
2019-09-20
MySQL连接查询使用count函数计算总数不正确
使用左连接查询数据,在查询字段的前面加上DISTINCT关键字,例子如下SELECT COUNT(DISTINCT x_client.client_id) AS `numrows` FROM (`x_client`) LEFT JOIN `x_client_agent` ON `x_client_agent`.`client_id` = `x_client`.`client_id` WHERE ( x_client.client_code LIKE '%王小卓%' OR x_client.real_phone LIKE '%王小卓%' OR x_client. NAME LIKE '%王小卓%' OR x_client.real_name LIKE '%王小卓%' ) AND `x_client`.`user_id` = '123'
2019年09月20日
251 阅读
1
2
3