注意: 都是基于MySQL8.0以上版本
1、检查是否安装过sql
[ root@localhost ~ ] # rpm - [ qa] ( https: / / so. csdn. net/ so/ search? q= qa& spm= 1001.2101 .3001 .7020 ) | grep mysql
[ root@localhost ~ ] # rpm - qa | grep [ mariadb] ( https: / / so. csdn. net/ so/ search? q= mariadb& spm= 1001.2101 .3001 .7020 )
[ root@localhost ~ ] # whereis mysql
2、修改MySQL配置
需要注意的是,修改 MySQL 的配置参数时需要谨慎,如果参数配置不合理,可能会导致数据库性能下降或出现其他问题。修改 MySQL 的配置参数时,最好具有一定的经验或者了解相关的 MySQL 参数调优知识。
vi /etc/my.cnf
第一步: cd /etc #进入etc目录下
第二步: cp my.cnf my.cnf.bak #备份复制my.cnf文件
第三步: ①vi my.cnf #编辑my.cnf文件
②修改port=3306------------> port=更改的端口号
③ :wq #保存退出
第四步: /usr/sbin/setenforce 0 #关掉selinux
第五步: systemctl restart mysqld #重启MySQL服务
service mysql restart
第六步: systemctl status mysqld #查看mysql服务的状态
第七步: netstat -nltp #查看mysql端口号
第八步: iptables-save #查看防火墙策略
(备注1:如果防火墙策略没有新添加的策略就执行第九步添加防火墙策略)
第九步: firewall-cmd --zone=public --add-port=80/tcp --permanent #将端口号80做防火墙策略
(延申:firewall-cmd --zone=public --remove-port=80/tcp --permanent#将端口号80删除防火墙策)
第十步: firewall-cmd --reload #更新防火墙策略
(备注1:更新完之后可以再执行第八步进行查看是否有防火墙策略)
(备注2:可以利用mysql连接工具连接进行测试)
(备注3:在mysql数据库中看端口号 show global variables like ‘port’;)
[mysql]
#MySQL 提示符配置
#用户名@主机名+数据库名
#prompt="\\u@\\h [\\d]>"
#用户名@主机名+mysql版本号+数据库名
prompt=\\u@\\h \\v [\\d]>\\_
#用户名@主机名+当前时间+mysql版本号+数据库名
#prompt="(\\u@\\h) \\R:\\m:\\s \\v [\\d] \n>"
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#mysql安装根目录
basedir = /usr/local/mysql/mysql-8.0.30/
#mysql数据文件所在位置
datadir = /usr/local/mysql/mysql-8.0.30/data/
#设置socke文件所在目录
socket = /tmp/mysql.sock
#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)服务端使用的字符集默认为UTF8
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
# MySQL设置免密登录
skip-grant-tables
# 用于设置数据传输时的最大数据包大小,默认值为 4MB(即 4 * 1024 * 1024),可以通过修改这个值来提高 SQL 语句执行时的性能。设置为 1000M(即 1000 * 1024 * 1024),表示最大数据包大小为 1GB,这意味着 MySQL 可以在一个查询中发送多达 1GB 的数据,对于需要传输大量数据的应用场景,这种设置可以带来非常大的性能优势。
max_allowed_packet=1000M
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#设置表名不区分大小写
show variables like '%case_table%';
#端口设置
port = 3306
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
3、MySQL中user表详解
3.1 用户列(用户连接MySQL数据库需要输入的信息)
Host:主机名,双主键之一,值为%时表示匹配所有主机。User:用户名,双主键之一。Password:密码名。
Host
User
Password
%
root
*55B565DA3839E5955A68EA96EB735
localhost
root
*55B565DA3839E5955A68EA96EB735
127.0.0.1
root
*55B565DA3839E5955A68EA96EB735
::1
root
*26C378D308851D5C717C13623EFD6
(root,%),表示可以远程登录,并且是除服务器外的其他任何终端,%表示任意IP都可登录。 (root,localhost), 表示可以本地登录,即可以在服务器上登陆,localhost则只允许本地登录。 (root,127.0.0.1 ),表示可以本机登录,即可以在服务器上登陆 (root,sv01),表示主机名为sv1可以登录,sv01具体指的哪台机器,可以在cat /etc/hostname查看 (root,::1) , 表示本机可以登录, 看密码都是相同嘛,具体::1代表意义,待查
3.2 权限列
权限列决定了用户的权限,描述了用户在全局范围内允许对数据库和数据库表进行的操作,字段类型都是枚举Enum,值只能是Y或N,Y表示有权限,N表示没有权限。
权限字段名称
备注说明
Select_priv
确定用户是否可以通过SELECT命令选择数据
Insert_priv
确定用户是否可以通过INSERT命令插入数据
Delete_priv
确定用户是否可以通过DELETE命令删除现有数据
Update_priv
确定用户是否可以通过UPDATE命令修改现有数据
Create_priv
确定用户是否可以创建新的数据库和表
Drop_priv
确定用户是否可以删除现有数据库和表
Reload_priv
确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表重新加载权限表
Shutdown_priv
确定用户是否可以关闭MySQL服务器在将此权限提供给root账户之外的任何用户时,都应当非常谨慎
Process_priv
确定用户是否可以通过SHOW PROCESSLIST命令查看其他用户的进程
File_priv
确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令
3.3 安全列
安全字段名称
备注说明
ssl_type
支持ssl标准加密安全字段
ssl_cipher
支持ssl标准加密安全字段
x509_issuer
支持x509标准字段
x509_subject
支持x509标准字段
password_expired
密码是否过期。Y:说明该用户密码已过期 N:没有过期
plugin
5.5.7开始,mysql引入plugins以进行用户连接时的密码验证,plugin创建外部/代理用户
authentication_string
通过authentication_string可以控制两者的映射关系,(PAM plugin等,PAM可以支持多个服务名)
3.4 资源控制列
控制字段名称
字段类型
是否为空
默认值
备注说明
max_questions
int(11)unsigned
NO
0
每小时允许执行多少次查询:0表示无限制
max_updates
int(11)unsigned
NO
0
每小时可以执行多少次更新:0表示无限制
max_connections
int(11)unsigned
NO
0
每小时可以建立的多少次连接:0表示无限制
max_user_connections
int(11)unsigned
NO
0
单用户可以同时具有的连接数:0表示无限制
4、创建用户和组以及授权
4.1 创建用户
1. 使用CREATE USER语句创建用户
可以使用 CREATE USER 语句来创建 MySQL 用户,并设置相应的密码。其基本语法格式如下:
CREATE USER '用户名'@'host' IDENTIFIED BY '密码';
其中,username 为新用户的用户名,password 为新用户的密码。此外,@‘localhost’ 表示该用户只能从本地连接到 MySQL,如果想要允许该用户从其它 IP 地址连接,则需要将 localhost 替换成对应的 IP 地址。
举例:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
2. 使用 INSERT 语句新建用户
可以使用 INSERT 语句将用户的信息添加到 mysql.user 表中,但必须拥有对 mysql.user 表的 INSERT 权限。通常 INSERT 语句只添加 Host、User 和 authentication_string 这 3 个字段的值。
MySQL 5.7 的 user 表中的密码字段从 Password 变成了 authentication_string,如果你使用的是 MySQL 5.7 之前的版本,将 authentication_string 字段替换成 Password 即可。
使用 INSERT 语句创建用户的代码如下:
INSERT INTO mysql.user(User, Host, authentication_string, ssl_cipher, x509_issuer, x509_subject, ssl_type, Super_priv, Create_priv, Insert_priv, Update_priv, Delete_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, Grant_priv, References_priv, Alter_priv, Show_db_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Index_priv, Alter_routine_priv, Create_view_priv, Show_view_priv, create_role_priv, Trigger_priv, password_last_changed)
VALUES('admin1', 'localhost', SHA2('123456', 512), '', '', '', '', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'N', CURRENT_TIMESTAMP);
由于 mysql 数据库的 user 表中,ssl_cipher、x509_issuer 和 x509_subject 这 3 个字段没有默认值,所以向 user 表插入新记录时,一定要设置这 3 个字段的值,否则 INSERT 语句将不能执行。
3.为什么user表删除的用户还能进行登录操作
该用户被其他用户重新授权。在MySQL数据库中,授权是一项独立的权限,它可以被授予给其他用户。如果一个被删除的用户的权限被授予给了其他用户,那么该用户就可以使用该被删除用户的身份信息进行登录。
垃圾数据残留。有时候,我们在删除用户时,可能会犯一些错误,例如删除不完整或者删除错误的用户。在这种情况下,这些被删除用户的信息仍然存在于数据库中,如果没有及时清理,可能会导致其可以进行登录。
4.2 GRANT授权
1. 权限列表
管理员特有的权限
权限
说明
SELECT
允许用户读取指定的表中的数据。
INSERT
允许用户插入表中的数据。
UPDATE
允许用户修改表中的数据。
DELETE
允许用户删除表中的数据。
CREATE
允许用户创建新的数据库或表。
DROP
允许用户删除数据库或表。
INDEX
允许用户创建或删除数据库中的索引。
ALTER
允许用户修改数据库的结构,如更改表的列、添加或删除索引等。
GRANT OPTION
允许用户将自己拥有的权限授予给其他用户。
ALL PRIVILEGES
允许用户执行所有的操作。
除了上述基本权限之外,也存在一些特殊的权限,比如:
权限
说明
CREATE TEMPORARY TABLES
允许用户创建临时表。
EXECUTE
允许用户执行存储过程或函数。
FILE
允许用户将数据写入服务器文件系统。
PROCESS
允许用户查看所有的 MySQL 进程。
RELOAD
允许用户重新加载服务端配置或刷新日志。
REPLICATION CLIENT
允许用户查看 MySQL 复制状态。
REPLICATION SLAVE
允许用户作为 MySQL 复制从库连接到主库。
SHOW DATABASES
允许用户查看服务器上所有的数据库。
SHUTDOWN
允许用户关闭 MySQL 服务器。
表格中的每个权限都描述了该权限的作用和用途。希望这个表格对你有所帮助!
虽然 CREATE USER 和 INSERT INTO 语句都可以创建普通用户,但是这两种方式不便授予用户权限。于是 MySQL 提供了 GRANT 语句。
2. 使用 GRANT 语句进行用户授权的基本语法形式如下:
GRANT < permissions> ON < database> . < table> TO < user> @[ < host> ] ;
其中,各个部分的含义如下:
:指定用户的权限,可以是特定的权限(如SELECT、INSERT、UPDATE、DELETE等),也可以是ALL PRIVILEGES表示拥有全部权限。
.:指定用户的权限作用的数据库和表。
:指定要创建的用户的名称。
:指定用户的连接主机。可以是本地主机(localhost)、特定的IP地址,或者是通配符(%)表示所有主机。
:为用户指定密码。
下面是一个示例:
GRANT SELECT , INSERT ON mydatabase. mytable TO 'myuser' @'localhost';
这条语句会授予名为’myuser’、连接主机为localhost的用户在mydatabase数据库的mytable表上执行SELECT和INSERT操作的权限,并指定了用户的密码为’mypassword’。请根据实际情况进行相应调整。
3. 刷新权限
注意: (每次更新权限都需要刷新一次,不然可能不生效)
FLUSH PRIVILEGES ;
4.3 删除GRANT授权
要删除之前授予的权限,可以使用REVOKE
语句。下面是REVOKE
语句的基本语法形式:
REVOKE < permissions> ON < database> . < table> FROM < user> @[ < host> ] ;
其中,各个部分的含义与GRANT
语句相同。
下面是一个示例,演示如何撤销之前授予的SELECT和INSERT权限:
REVOKE SELECT , INSERT ON test. test FROM 'myuser' @'localhost';
执行这条语句将从用户’myuser’@'localhost’身上撤销在test数据库的test表上的SELECT和INSERT权限。
请注意,REVOKE
语句只会撤销已经授予的权限,而不会删除用户本身。如果需要删除用户,可以使用DROP USER
语句。例如,DROP USER 'myuser'@'localhost';
将删除’myuser’@'localhost’用户。
在执行REVOKE
或DROP USER
语句时,请确保你有足够的权限执行这些操作。只有具有足够权限的用户才能撤销或删除其他用户的权限。
4.4 查看用户权限
SHOW GRANTS FOR 'username'@' host';
将 'username'@'host'
替换为你要查看权限的用户名和主机信息。对于 'host'
部分,可以使用 'localhost'
表示本地连接,也可以使用实际的 IP 地址或主机名。
另外,你还可以通过查询 MySQL 的权限表来查看用户的权限信息。可以运行以下命令:
SELECT * FROM mysql. user WHERE User = 'username' AND Host = 'host' ;
将 'username'
和 'host'
替换为你要查询的用户名和主机信息。这将返回与给定用户和主机相对应的权限记录。
2、修改数据库密码
第一步:
mysql - uroot - p
输入密码,然后回车
修改数据库账户密码 4.1 更新密码
语法:update user set authentication_string=password('新密码') where user = '用户名';
mysql > update user set authentication_string=password('新密码') where user = '用户名';
mysql5.7以下版本:UPDATE mysql.user SET Password=PASSWORD('新密码') where USER='用户名';
mysql5.7版本:UPDATE mysql.user SET authentication_string=PASSWORD('新密码') where USER='用户名';
mysql8.0版本:update mysql.user set authentication_string=‘新密码’ where user=‘root’;
mysql8.0版本:ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '新密码';
4.2 刷新权限
mysql > flush privileges;
然后就可以使用新密码登录数据库了
3、设置允许远程登录
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
https://blog.csdn.net/weixin_44234912/article/details/109078167
https://blog.csdn.net/qq_57389269/article/details/126248678
https://blog.csdn.net/qq_38914940/article/details/127216367
你可能感兴趣的:(数据库,mysql,android)
主流行架构
rainbowcheng
架构 架构
nexus,gitlab,svn,jenkins,sonar,docker,apollo,catteambition,axure,蓝湖,禅道,WCP;redis,kafka,es,zookeeper,dubbo,shardingjdbc,mysql,InfluxDB,Telegraf,Grafana,Nginx,xxl-job,Neo4j,NebulaGraph是一个高性能的,NOSQL图形数据库
《Android进阶之光》读书笔记
soleil雪寂
读书笔记 # Android进阶之光
文章目录第1章Android新特性1.1.Android5.0新特性1.2.RecyclerView1.1.4.3种Notification1.1.5.Toolbar与Palette1.1.6.Palette1.2.Android6.0新特性1.2.2.运行时权限机制1.3.Android7.0新特性第2章MaterialDesign2.2.DesignSupportLibrary常用控件详解第3
Oracle(125)如何执行不完全恢复?
辞暮尔尔-烟火年年
Oracle oracle 数据库
不完全恢复(IncompleteRecovery)是指将Oracle数据库恢复到一个特定时间点、SCN(系统变更号)或取消点,而不是恢复到最近的备份后的最新状态。以下是详细的步骤和代码示例,展示如何执行不完全恢复。准备工作备份控制文件:确保你有控制文件的备份。备份数据文件:确保你有数据文件的备份。备份归档日志:确保你有最新的归档日志。不完全恢复的基本步骤关闭数据库:确保数据库处于关闭状态。启动数据
《Android进阶之光》— Android 书籍
王睿丶
Android 永无止境 《Android进阶之光》 Android书籍 Android phoenix 移动开发
文章目录第1章Android新特性1第2章MaterialDesign48第3章View体系与自定义View87第4章多线程编程165第5章网络编程与网络框架204第6章设计模式271第7章事件总线308第8章函数响应式编程333第9章注解与依赖注入框架382第10章应用架构设计422第11章系统架构与MediaPlayer框架460出版年:2017-7简介:《Android进阶之光》是一本And
【十一】【SQL】外连接(左外连接,右外连接)
妖精七七_
数据库SQL 数据库 sql
数据库中的外连接(OuterJoin)用于连接两个表,并包括两个表中的匹配行以及左表(LEFTJOIN)或右表(RIGHTJOIN)中未匹配的行。外连接分为两种主要类型:左外连接(LEFTOUTERJOIN):返回左表(FROM子句中第一个表)的所有行,即使在右表中没有匹配的行。如果右表中没有匹配的行,则结果集中右表的部分将包含NULL值。右外连接(RIGHTOUTERJOIN):返回右表(JOI
《android进阶之光》——多线程编程(上)
TAING要一直努力
读书笔记
今天了解了下多线程编程,知识点如下:进程与线程:进程是什么?线程是什么?进程可以看作是程序的实体,是线程的容器,是受操作系统管理的基本运行单元,例如exe文件就是一个进程。线程是进程运行的一些子任务,是操作系统调度的最小单元,各线程拥有自己的计数器,堆栈,局部变量等,也可以访问线程间共享的内存。线程的状态有哪些?新创建,可运行,等待,超时等待,阻塞,终止怎么创建一个线程?-三种方法第一种,MyTr
什么是 PHP? 为什么用 PHP? 谁在用 PHP?
m0_37438181
永远学习 php 开发语言
一、什么是PHP?PHP(HypertextPreprocessor,超文本预处理器)是一种广泛应用于Web开发的通用开源脚本语言。PHP主要用于服务器端编程,可以嵌入HTML中,与数据库进行交互,生成动态网页内容。它具有以下特点:简单易学:语法相对简单,容易上手,对于初学者来说是一个不错的选择。跨平台性:可以在多种操作系统上运行,如Windows、Linux、Unix等。丰富的函数库:提供了大量
【YashanDB知识库】数据库获取时间和服务器时间不一致
YashanDB
YashanDB知识库 数据库 运维 崖山数据库 YashanDB yashandb知识库
本文转自YashanDB官网,具体内容可见数据库获取时间和服务器时间不一致【问题分类】功能使用【关键字】服务器时间、数据库时间【问题描述】数据库获取的时间和服务器时间不一致。【问题原因分析】YashanDB并没有时区的概念,数据库的时间以数据库启动时的系统时间为准。出现这个情况有可能是数据库部署时服务器时间为0时区,因此数据库以0时区拉起,后来系统修改为东八区,但是数据库仍然为0时区,导致数据库获
释放“AI+”新质生产力,深算院如何“把大数据变小”?
YashanDB
YashanDB 国产数据库 数据库 数据库 大数据
近期,南都·湾财社推出《新质·中国造》栏目,深入千行百业,遍访湾区企业,解锁湾区新质生产力,共探高质量发展之道。本期对话深圳计算科学研究院YashanDB首席技术官陈志标,探讨国产数据库如何实现创新突围,抢抓数字经济时代的新机遇。以下是专访内容:如何应对AI时代所面临的算力挑战?南都·湾财社:数据、算力和算法是发展人工智能的三要素,深算院做了怎样的前瞻性布局?陈志标:今年,政府工作报告中首次提及开
【YashanDB知识库】YashanDB 开机自启
YashanDB
YashanDB知识库 数据库 数据库系统 崖山数据库 YashanDB oracle
【问题分类】YashanDB开机自启【关键字】开机自启,依赖包【问题描述】数据库所在服务器重启后只拉起monit、yasom、yasom进程,缺少yasdb进程:【问题原因分析】数据库安装的时候未启动守护进程【解决/规避方法】进入数据库之前的安装目录,启动守护进程:Shellcd/home/yashan/install./bin/yasbootmonitstart--clusteryashandb
android进阶之光!Android面试必备的集合源码详解,系列篇
程序员Sunbu
程序员 Android
前言面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。文末会给大家分享下我整理的Android面试专题及答案其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列的肯定不可能覆盖全部方式,不过对大家找工作肯定是有帮助!本月飞机到达上海,到今天第6天了,四家大公司华为,小米,映客,抖音,还有二家中小型公司。有几家已经面了几轮,下周还要面,挂了几家,不过目前已经选择了
Java应用的数据库连接池连接池性能测试
微赚淘客机器人开发者联盟@聚娃科技
java 数据库 开发语言
Java应用的数据库连接池连接池性能测试大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!数据库连接池的性能测试是确保Java应用能够高效运行的关键步骤。性能测试可以帮助我们评估连接池在高并发条件下的表现,以及识别可能的性能瓶颈。本文将介绍如何对Java应用中的数据库连接池进行性能测试。性能测试的重要性性能测试对于数据库连接池至关重要,因为它可以:评估性能:确定连接
MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现
OEC小胖胖
web后端 mybatis xml java web 后端
MyBatis如何将Mapper接口与其XML映射文件关联:深入原理与实现1.概述MyBatis是一个简单、灵活的持久层框架,它通过SQL语句将Java对象与数据库进行映射。MyBatis支持基于XML和注解的配置方式。在实际开发中,XML映射文件与Mapper接口的关联是MyBatis的核心功能之一。通过这种关联,开发者可以在Mapper接口中定义方法,并在XML文件中编写SQL语句,从而实现数
2024上半年软考系统架构设计师-综合知识选择题及答案
不对法
系统架构
1.操作系统先来先服务调度算法2.操作系统多道程序设计,利用率3.操作系统状态流转错误的,执行态到运行态4.数据库2NF每一个非主属性完全依赖主键5.数据库笛卡尔积m*n6.数据库不属于事务的特点,并发性7.数据库交集表达式R-(R-S)8.数据库反规范化属于逻辑设计9.网络没有加密功能,物理层10.网络二层交换机数据,数据链路层11.知识产权专利法是否属于民法12.知识产权商标不属于,其他几个是
oracle数据库安装和配置详细讲解
程序员小羊!
运维 数据库 oracle
大家好,我是程序员小羊!前言:Oracle数据库是全球广泛使用的关系型数据库管理系统(RDBMS),提供高性能、可靠性、安全性和可扩展性,广泛应用于企业关键任务系统。下面详细介绍如何在CentOS系统上安装和配置Oracle数据库。1.前提条件1.1硬件要求内存:最小1GB,推荐2GB以上。硬盘:至少10GB的可用空间,视具体应用需求而定。1.2软件要求操作系统:CentOS7或CentOS8(确
Android-悬浮窗功能的实现(附Java、KT实现源码)(1)
egrhef
程序员 android java 开发语言
//获取服务的操作对象valbinder=serviceasFloatWinfowServices.MyBinderbinder.service}overridefunonServiceDisconnected(name:ComponentName){}}overridefunonActivityResult(requestCode:Int,resultCode:Int,data:Intent){
渗透测试的了解
锅盖'awa'
网络安全小白之路 安全性测试 安全
文章目录概述一、渗透测试分类1.黑盒测试/外部测试2.白盒测试/内部测试3.灰盒测试/组合测试二、渗透测试-目标分类1、主机操作系统渗透2、数据库系统渗透3、应用系统渗透4、网络设备渗透三、渗透测试过程(七个阶段)1.前期交互阶段(Pre-EngagementInteraction)2.情报搜集阶段(InformationGathering)3.威胁建模阶段(ThreatModeling)4.漏洞
springboot整合MongoDB时碰到的问题
生产队队长
Database Spring All mongodb spring
1.账号总是不对,导致查不出数据,报错Auth…权鉴错误这次,我也是第一次接触MongoDB,非常的生疏springboot整合MongoDB,要在properties文件中配置账号mongodb基本语法:useDATABASE_NAME;--创建数据库showdbs;--查看我们所有的库,注意,我们刚创建的库,如果没有数据,是不会被显示的showusers;--查看当前库所有拥有的账号db.cr
Mall4j商城实战 - 部署 canal 数据库增量日志解析
yueerba126
Mall4j商城实战 数据库 spring cloud 微服务 架构
Canal简介Canal是基于MySQL数据库增量日志解析的工具,主要用于增量数据的订阅和消费。Canal主要用途基于MySQL数据库增量日志解析详细功能:实时解析MySQL的二进制日志(Binlog)。捕获数据库中的所有增量变更,如插入、更新和删除操作。使用场景:适用于实时监控数据库变化的应用,比如数据复制、数据备份或实时数据分析等。提供增量数据订阅和消费服务
小程序云函数遇到的问题(未安装wx-server-sdk依赖 | errMsg: Environment not found)
甜辣嘟嘟嘟
前端
在学习小程序云开发中的云函数的时候,代码执行方面遇到了一些小小的问题。1.关于未安装wx-server-sdk依赖首先,在云函数中使用wx-server-sdk,需先调用初始化方法init一次,init用于设置接下来在该云函数实例中调用云函数、数据库、文件存储时要访问的环境。例如以下代码中,constcloud=require('wx-server-sdk')cloud.init({env:'te
单节点canal的介绍和搭建(对接mysql和rocketMQ)
汀风
中间件 阿里云 mysql java
单节点canal-server+canal-admin的介绍和搭建(对接mysql和rocketMQ)一、简介1、Canal1、工作原理2、MySQL主从复制实现3、canal架构4、binarylog1、新增binlog2、更新binglog3、增加字段bin-log4、删除字段bin-log5、修改字段bin-log二、使用2.1安装1、本地安装2、docker安装canal-admincan
PostgreSQL | 生成UUID 报错:HINT: No function matches the given name and argument types
慌途L
PostgreSQL postgresql uuid uuid_generate gen_random_uuid
在PG数据库上新建表结构:CREATETABLE"public"."t_test"("guid"uuidNOTNULLDEFAULTuuid_generate_v4(),"data"jsonb,"create_time"timestamptz(6)DEFAULTnow(),CONSTRAINT"test_pkey"PRIMARYKEY("guid"));报错:ERROR:functionuuid_
解决 PostgreSQL的uuid_generate_v4() 不存在异常
这是然少
PostgreSQL postgresql 数据库
详细的异常信息如下所示:>错误:函数uuid_generate_v4()不存在导致这个问题的原因就是,uuid_generate_v4()这个uuid函数默认的是在Postgresql扩展中的,数据库迁移后,extension扩展就没有了,需要重新安装。有3种方法可以让PostgreSQL数据库支持uuid_generate_v4()或uuid_generate_v1()函数。方案一安装uuid-
【网上商城项目结构】
启山智软 商城 源码
小程序 java
文章目录前言一、网站前台二、运营商后台三、商家管理后台四、系统架构五、数据库设计六、关键技术总结前言网上商城项目结构通常包括网站前台、运营商后台和商家管理后台三个子系统,以及多个功能模块,如门户、搜索、购物车、订单、秒杀、个人中心等。在设计网上商城项目结构时,需要从用户需求和企业运营两个维度考虑,确保系统既能为用户提供良好的购物体验,又能满足企业高效管理的需求。以下是对网上商城项目结构的详细介绍:
Visual Studio中的Android模拟器使用详解
wurui8
android android studio android android应用
关注微信号:javalearns随时随地学Java或扫一扫随时随地学JavaMicrosoft本周发布了VisualStudio2015预览版,里面包含Android开发工具.安装的时候,如果选Android开发,VisualStudio会把调试Android应用程序用的VisualStudio模拟器也装上.在介绍这个新模拟器之前,我们先来聊一聊,为什么需要一个新的Android模拟器–当然,你也
Unity 热更 之 【HybirdCLR】+【YooAsset】 [安卓 Android端] [代码 + 资源热更] 功能的 简单实现演示
仙魁XAN
Unity 进阶 unity HybirdCLR YooAsset HotUpdate 热更新
Unity热更之【HybirdCLR】+【YooAsset】[安卓Android端][代码+资源热更]功能的简单实现演示目录Unity热更之【HybirdCLR】+【YooAsset】[安卓Android端][代码+资源热更]功能的简单实现演示一、简单介绍二、HybridCLR三、YooAsset四、HybirdCLR引入工程五、YooAsset引入工程六、Python服务器简单构建七、Hybir
【爸爸带娃 日更174】吃维生素的计算机思考
蓝色眼镜007
中午,家里人为了有没有给冬冬喂过维生素,而反复确认。问冬冬,她就算吃了,也就是很被动的张口,而且每天都吃,她也不清楚。再问当事人,因为也是每天都喂,也不太确定。好像吃了,好像又没吃。有时,A顺手已喂冬冬吃了,B却并不知道。确认混乱。其实,无非就是没有「中心化数据库」嘛。以后,在墙上贴张表格,不管谁喂完后,就马上在上面打个勾。或者,每天的量都用纸包起来,纸外面写上日期,吃完就扔,这是「分布的思维」。
Android 用线程池实现一个简单的任务队列(Kotlin)
深海呐
Android # Android进阶 # Kotlin android kotlin 线程池 延时任务队列 线程池延时任务
关于线程池,Kotlin和java的使用方式一样在Android中,很多人喜欢用Handler的postDelayed()去实现延时任务.要使用postDelayed(),去实现延时任务队列,就不可避免要使用递归.但是这样做,代码的简洁性,和书写的简易,就远不如使用线程池.使用线程池的简单程度:privatevalmThreadPool=Executors.newSingleThreadSched
(小白入门)Windows环境下搭建React Native Android开发环境
码农老黑
前端 React Native 移动开发 Android studio
ReactNative(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的UI框架React在原生移动应用平台的衍生产物,目前支持iOS和Android两大平台。RN的环境搭建在RN的中文社区有所介绍,但是对于小白来说还是有些太过简略了。RN中文社区详见参考,本文不涉及的问题也许在其中能够有所解答。ReactNative思想底层引擎是JavaSc
Android Dialog圆角设置无效的问题
ly969434341
android
一,参考AndroidDialog圆角设置无效的问题https://blog.csdn.net/woshi_awei/article/details/99664527Android自定义Dialog实现通用圆角对话框https://cloud.tencent.com/developer/article/1740956二,原因Diallog的默认背景是白色(直角背景),我自定义的Dialog背景也是
基本数据类型和引用类型的初始值
3213213333332132
java基础
package com.array;
/**
* @Description 测试初始值
* @author FuJianyong
* 2015-1-22上午10:31:53
*/
public class ArrayTest {
ArrayTest at;
String str;
byte bt;
short s;
int i;
long
摘抄笔记--《编写高质量代码:改善Java程序的151个建议》
白糖_
高质量代码
记得3年前刚到公司,同桌同事见我无事可做就借我看《编写高质量代码:改善Java程序的151个建议》这本书,当时看了几页没上心就没研究了。到上个月在公司偶然看到,于是乎又找来看看,我的天,真是非常多的干货,对于我这种静不下心的人真是帮助莫大呀。
看完整本书,也记了不少笔记
【备忘】Django 常用命令及最佳实践
dongwei_6688
django
注意:本文基于 Django 1.8.2 版本
生成数据库迁移脚本(python 脚本)
python manage.py makemigrations polls
说明:polls 是你的应用名字,运行该命令时需要根据你的应用名字进行调整
查看该次迁移需要执行的 SQL 语句(只查看语句,并不应用到数据库上):
python manage.p
阶乘算法之一N! 末尾有多少个零
周凡杨
java 算法 阶乘 面试 效率
&n
spring注入servlet
g21121
Spring注入
传统的配置方法是无法将bean或属性直接注入到servlet中的,配置代理servlet亦比较麻烦,这里其实有比较简单的方法,其实就是在servlet的init()方法中加入要注入的内容:
ServletContext application = getServletContext();
WebApplicationContext wac = WebApplicationContextUtil
Jenkins 命令行操作说明文档
510888780
centos
假设Jenkins的URL为http://22.11.140.38:9080/jenkins/
基本的格式为
java
基本的格式为
java -jar jenkins-cli.jar [-s JENKINS_URL] command [options][args]
下面具体介绍各个命令的作用及基本使用方法
1. &nb
UnicodeBlock检测中文用法
布衣凌宇
UnicodeBlock
/** * 判断输入的是汉字 */ public static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
java下实现调用oracle的存储过程和函数
aijuans
java orale
1.创建表:STOCK_PRICES
2.插入测试数据:
3.建立一个返回游标:
PKG_PUB_UTILS
4.创建和存储过程:P_GET_PRICE
5.创建函数:
6.JAVA调用存储过程返回结果集
JDBCoracle10G_INVO
Velocity Toolbox
antlove
模板 tool box velocity
velocity.VelocityUtil
package velocity;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.c
JAVA正则表达式匹配基础
百合不是茶
java 正则表达式的匹配
正则表达式;提高程序的性能,简化代码,提高代码的可读性,简化对字符串的操作
正则表达式的用途;
字符串的匹配
字符串的分割
字符串的查找
字符串的替换
正则表达式的验证语法
[a] //[]表示这个字符只出现一次 ,[a] 表示a只出现一
是否使用EL表达式的配置
bijian1013
jsp web.xml EL EasyTemplate
今天在开发过程中发现一个细节问题,由于前端采用EasyTemplate模板方法实现数据展示,但老是不能正常显示出来。后来发现竟是EL将我的EasyTemplate的${...}解释执行了,导致我的模板不能正常展示后台数据。
网
精通Oracle10编程SQL(1-3)PLSQL基础
bijian1013
oracle 数据库 plsql
--只包含执行部分的PL/SQL块
--set serveroutput off
begin
dbms_output.put_line('Hello,everyone!');
end;
select * from emp;
--包含定义部分和执行部分的PL/SQL块
declare
v_ename varchar2(5);
begin
select
【Nginx三】Nginx作为反向代理服务器
bit1129
nginx
Nginx一个常用的功能是作为代理服务器。代理服务器通常完成如下的功能:
接受客户端请求
将请求转发给被代理的服务器
从被代理的服务器获得响应结果
把响应结果返回给客户端
实例
本文把Nginx配置成一个简单的代理服务器
对于静态的html和图片,直接从Nginx获取
对于动态的页面,例如JSP或者Servlet,Nginx则将请求转发给Res
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugin
blackproof
maven 报错
转:http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin
maven报错:
Plugin execution not covered by lifecycle configuration:
发布docker程序到marathon
ronin47
docker 发布应用
1 发布docker程序到marathon 1.1 搭建私有docker registry 1.1.1 安装docker regisry
docker pull docker-registry
docker run -t -p 5000:5000 docker-registry
下载docker镜像并发布到私有registry
docker pull consol/tomcat-8.0
java-57-用两个栈实现队列&&用两个队列实现一个栈
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/*
* Q 57 用两个栈实现队列
*/
public class QueueImplementByTwoStacks {
private Stack<Integer> stack1;
pr
Nginx配置性能优化
cfyme
nginx
转载地址:http://blog.csdn.net/xifeijian/article/details/20956605
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出Nginx的性能,你必
[JAVA图形图像]JAVA体系需要稳扎稳打,逐步推进图像图形处理技术
comsci
java
对图形图像进行精确处理,需要大量的数学工具,即使是从底层硬件模拟层开始设计,也离不开大量的数学工具包,因为我认为,JAVA语言体系在图形图像处理模块上面的研发工作,需要从开发一些基础的,类似实时数学函数构造器和解析器的软件包入手,而不是急于利用第三方代码工具来实现一个不严格的图形图像处理软件......
&nb
MonkeyRunner的使用
dai_lm
android MonkeyRunner
要使用MonkeyRunner,就要学习使用Python,哎
先抄一段官方doc里的代码
作用是启动一个程序(应该是启动程序默认的Activity),然后按MENU键,并截屏
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRun
Hadoop-- 海量文件的分布式计算处理方案
datamachine
mapreduce hadoop 分布式计算
csdn的一个关于hadoop的分布式处理方案,存档。
原帖:http://blog.csdn.net/calvinxiu/article/details/1506112。
Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同ja
以資料庫驗證登入
dcj3sjt126com
yii
以資料庫驗證登入
由於 Yii 內定的原始框架程式, 採用綁定在UserIdentity.php 的 demo 與 admin 帳號密碼: public function authenticate() { $users=array( &nbs
github做webhooks:[2]php版本自动触发更新
dcj3sjt126com
github git webhooks
上次已经说过了如何在github控制面板做查看url的返回信息了。这次就到了直接贴钩子代码的时候了。
工具/原料
git
github
方法/步骤
在github的setting里面的webhooks里把我们的url地址填进去。
钩子更新的代码如下: error_reportin
Eos开发常用表达式
蕃薯耀
Eos开发 Eos入门 Eos开发常用表达式
Eos开发常用表达式
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2014年8月18日 15:03:35 星期一
&
SpringSecurity3.X--SpEL 表达式
hanqunfeng
SpringSecurity
使用 Spring 表达式语言配置访问控制,要实现这一功能的直接方式是在<http>配置元素上添加 use-expressions 属性:
<http auto-config="true" use-expressions="true">
这样就会在投票器中自动增加一个投票器:org.springframework
Redis vs Memcache
IXHONG
redis
1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3. Redis支持数据的备份,即master-slave模式的数据备份。
4. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Red
Python - 装饰器使用过程中的误区解读
kvhur
JavaScript jquery html5 css
大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, Cache等。
原文链接:http://www.gbtags.com/gb/share/5563.htm
Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:
@function_wrapper
de
架构师之mybatis-----update 带case when 针对多种情况更新
nannan408
case when
1.前言.
如题.
2. 代码.
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="list" index=&
Algorithm算法视频教程
栏目记者
Algorithm 算法
课程:Algorithm算法视频教程
百度网盘下载地址: http://pan.baidu.com/s/1qWFjjQW 密码: 2mji
程序写的好不好,还得看算法屌不屌!Algorithm算法博大精深。
一、课程内容:
课时1、算法的基本概念 + Sequential search
课时2、Binary search
课时3、Hash table
课时4、Algor
C语言算法之冒泡排序
qiufeihu
c 算法
任意输入10个数字由小到大进行排序。
代码:
#include <stdio.h>
int main()
{
int i,j,t,a[11]; /*定义变量及数组为基本类型*/
for(i = 1;i < 11;i++){
scanf("%d",&a[i]); /*从键盘中输入10个数*/
}
for
JSP异常处理
wyzuomumu
Web jsp
1.在可能发生异常的网页中通过指令将HTTP请求转发给另一个专门处理异常的网页中:
<%@ page errorPage="errors.jsp"%>
2.在处理异常的网页中做如下声明:
errors.jsp:
<%@ page isErrorPage="true"%>,这样设置完后就可以在网页中直接访问exc