mysql数据库

Mysql阿里数据源配置参考

允我心安 提交于 2020-01-01 12:43:50
maven pom.xml 配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.5</version> </dependency> 配置 db.properties 文件 url=jdbc:mysql://localhost:3306/smbms?serverTimezone=GMT&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull driverClassName=com.mysql.jdbc.Driver user=root password=root filters=stat maxActive=20 initialSize=1 maxWait=60000 minIdle=10 maxIdle=15 timeBetweenEvictionRunsMillis=60000 minEvictableIdleTimeMillis=300000 validationQuery=SELECT 'x' testWhileIdle=true testOnBorrow=false testOnReturn=false maxOpenPreparedStatements=20 removeAbandoned

MySQL基础之事务编程学习笔记

自古美人都是妖i 提交于 2020-01-01 12:27:54
MySQL基础之事务编程学习笔记 在学习《MySQL技术内幕:SQL编程》一书,并做了笔记。本博客内容是自己学了《MySQL技术内幕:SQL编程》事务编程一章之后,根据自己的理解做的笔记,内容和书本并不一致,不过书本实验都经过自己验证,基于MySQL5.7版本。做笔记的目的是方便自己复习,同时分享出来或许对其他人或许有点帮助 1、事务概述 事务是数据库区别于文件系统的重要特性之一,提到事务肯定会想到事务的4个特性ACID,要保证业务的正常使用,必须保证ACID,ACID表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability),一个运行良好的事务系统也是要求具备这些特征 原子性(atomicity):一个事务必须被视为一个不可分割的最小工作单位,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,不能只执行一部分操作 一致性(consistency):一致性要求数据库总是从一个一致性的状态转换为另外一个一致性的状态,比如银行转账的例子,一个用户转账账号里减了200元,另外一个收账账号必须增加,一个失败数据必须全部回退状态,要保证事务一致性 隔离性(isolation):一般来说,一个事务所做的修改在提交之前对其它事务来说都是不可见的 持久性(durability):事务一旦提交

分库分表、主从、读写分离

╄→гoц情女王★ 提交于 2020-01-01 12:14:35
每天学习一点点 编程PDF电子书、视频教程免费下载: http://www.shitanlife.com/code 1. 漫谈 在进入正题之前,我想先随意谈谈对架构的拓展周期的想法(仅个人观点)。首先,我认为初期规划不该太复杂或者庞大,无论项目的中长期可能会发展地如何如何,前期都应该以灵活为优先,像分库分表等操作不应该在开始的时候就考虑进去。其次,我认为需求变更是非常正常的,这点在我等开发的圈子里吐槽的最多,其中自然有 “领导们” 在业务方面欠缺整体考虑的因素,但我们也不该局限在一个观点内,市场中变则通,不变则死,前期更是如此,因此在前几版的架构中我们必须要考虑较高的可扩展性。最后,当项目经过几轮市场的洗礼和迭代开发,核心业务趋于稳定了,此时我们再结合中长期的规划给系统来一次重构,细致地去划分领域边界,该解耦的解耦,该拆分的拆分。 2. 分库分表 2.1 概述 当数据库达到一定规模后(比如说大几千万以上),切分是必须要考虑的。一般来说我们首先要进行垂直切分,即按业务分割,比如说用户相关、订单相关、统计相关等等都可以单独成库。 图片来源 → 但仅仅如此这是完全不够的,垂直切分虽然剥离了一定的数据,但每个业务还是那个数量级,因此我们还得采取水平切分进一步分散数据,这也是本节论述的重点。 分库分表的优点相信上述两图都一目了然了,一个是专库专用,业务更集中,另一个是提升数据库服务的负载能力

MySQL复制与读写分离

[亡魂溺海] 提交于 2020-01-01 12:14:22
MySQL的复制架构就是以一台服务器充当主服务器,而一台或多台其它服务器充当从服务器。从服务器基于主服务器的二进制日志跟踪所有对数据库的更改操作,以而在从服务器上的数据拷贝执行相同的更改操作。使用MySQL复制架构可以通过在主服务器和从服务器之间分离客户处理负荷,从而得到更好的客户响应时间。使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。因而,MySQL复制架构主要应用于:分布数据、负载平衡(load balancing)、备份或其他高可用性(high availability)和容错的架构中。 大体上,复制有3个步骤: 1.主服务器把数据更改记录到二进制日志中(二进制日志事件Binary Log Events) 2.从服务器把主服务器的二进制日志事件拷贝到自己的中继日志(Relay Log)中。 3.从服务器重放中继日志中的事件,把更改应用到自己的数据上。 该过程的第一部分就是主服务器记录二进制日志。在每个事务更新数据完成之前,主服务器在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,主服务器通知存储引擎提交事务。 下一步就是从服务器将主服务器的binary log拷贝到它自己的中继日志。首先,从服务器开始一个工作线程——I/O线程。I/O线程在主服务器上打开一个普通的连接

JDBC连接MySQL

China☆狼群 提交于 2020-01-01 11:38:12
一、配置属性文件(dbconfig.properties): driver=com.mysql.jdbc.Driver dburl=jdbc\:mysql\://localhost\:3306/jsp_db user=root password=123456 二、读取配置文件: package com.jkxy.util; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; public class ConnectionFactory { // 4个成员变量,用与保存从属性文件中读取到的数据库配置信息 private static String driver; private static String dburl; private static String user; private static String password; private static final ConnectionFactory factory = new ConnectionFactory(); private Connection conn; // 配置信息的源代码 static { //

Linux中的mysql忘记密码

戏子无情 提交于 2020-01-01 11:21:24
随着社交账户的越来越多,密码的数量也是很多,这个时候就有人会经常忘记密码。忘记密码是一件很头疼的事情,接下来我就带大家看看在linux中安装了mysql,密码忘了怎么办? 想必遇到上面的报错心情是这样的 那别急接下来我将传授你一篇秘籍,从此妈妈再也不用担心我记不住密码了 废话不多说让我们开始 1、登入我们的linux系统 这一步就不用我教了,不然我会看不起的 1.1、查看mysql服务状态并关闭mysql服务 首先使用以下命令查看自己的mysql服务是否为启动的状态。 [root@centos ~] # systemctl status mysql; 如果你运行的结果为一下active ,那么恭喜你,请先把mysql服务关了。如果运行结果为dead接下来的这步关服务就不用做了,怎么关服务接着往下看。 [root@centos ~] # systemctl stop mysql; / / 执行完以上命令后再执行以下命令查看服务是否真正的关闭 [root@centos ~] # systemctl status mysql; 1.2 修改mysql的配置文件 在mysql服务关闭的状态,我们进入etc下的my.conf进行配置文件的修改 [root@centos ~] #vim /etc、my.conf 在配置文件中的[mysql]标签下写入以下信息skip-grant-tables

MySQL刚安装完,连接的时候 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded

萝らか妹 提交于 2020-01-01 07:17:52
很多用户在使用Navicat Premium 12连接MySQL数据库时会出现Authentication plugin 'caching_sha2_password' cannot be loaded的错误。 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 这里用第二种方式 ,解决方法如下 1. 管理员权限运行命令提示符,登陆MySQL(记得添加环境变量) mysql -u root -p password: #登入mysql 2. 修改账户密码加密规则并更新用户密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 3. 刷新权限并重置密码 FLUSH PRIVILEGES; #刷新权限 上面两步对应的截图

MySQL基础知识(一)-超详细MySQL安装教程

丶灬走出姿态 提交于 2020-01-01 05:56:31
简介   原计划,今天这篇想要给小伙伴们讲解一下python操作mysql数据库,但是由于近期换了一台新的电脑,所以一看mysql数据库都没安装,所有才有了这篇文章。尽管网上不乏此类型的文章,但是刚好自己要安装,所以就总结和分享一下下了 这篇博文看起来可能有点长,那是因为步骤比较详细,每一步都有截图,实际操作起来是特别简单的,别心里发虚,加油 环境准备 (1)小编电脑操作系统:win10 (2)mysql数据库版本:mysql-installer-community-5.6.15.0.msi 安装步骤 一、下载MySQL (1)首先,去数据库的官网 http://www.mysql.com 下载MySQL。点击进入后的首页如下: (2)第一步:点击downloads,第二步:点击:community,第三步:选择MySQL Community Server。如下图: (3)点击选中“MySql Community Downloads”下边的Download后,打开的页面中就可以看到相关的下载项了。如下图: 在图中第一个红色框标注的地方就是选择操作系统,这里我们选择Microsoft Windows,可以看到第二个红色框是Recommended download,这里就要区分了,如果是新手建议点击这个,因为这个版本的MySQL不用自己配置,就是普通的安装文件,

MySQL数据库唯一性设置(unique index)

你离开我真会死。 提交于 2020-01-01 05:56:06
1,命令行操作 分为两种。一种是在建表时就想好要加上唯一性,另一种是在后期才发现需要设置唯一性。 建表时: CREATE TABLE `t_user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(18) NOT NULL unique, `password` varchar(18) NOT NULL, PRIMARY KEY (`Id`) www.2cto.com ) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk; 后期加上: `` ALTER TABLE ·t_user· ADD unique( username`) `` 2,navicat方式 使用navicat操作mysql数据库更加方便,推荐大家多多使用这种方式 设计表时:如图选择索引,第一项‘名’,随便自己起一个有意义的名字就行了。第二项是你要设置唯一性的字段,然后索引类型选择unique。 表已经建好的情况:选中表,右键-设计表-和上述一样操作就行啦。 3,可能遇到的错误 如果唯一性是后期加的(设计完表之后,并且表里已经有了一些数据) 可能存在表中部分数据不满足唯一性的情况,例:想对字段sid设置唯一性,但目前表中有两条数据sid都是472,这是设置唯一性就会出错。 如下图所示

Mysql-7-mysql函数

情到浓时终转凉″ 提交于 2020-01-01 05:46:01
1.数学函数 用来处理数值数据方面的运算,主要的数学函数有:绝对值函数,三角函数,对数函数,随机函数。使用数学函数过程中,如果有错误产生,该函数会返回null值。 数学函数 功能介绍 组合键 abs(x) 返回 x 的绝对值 整数本身 pi () 返回圆周率 返回 pa 的值,默认显示 6 位 sqrt ( x ) 返回非负数 x 的二次方根 如为负数,返回 null mod(x,y) 返回 x/y 的模,即相除余数 ceil(x) 和 ceiling( x) 先这两个函数功能相同,返回不小于 x 的最小整数值 注意正负数及小数和整数的区别 floor ( x ) 返回不大于 x 的最大整数值 rand () 返回一个随机浮点值 v ,0<=v<=1 rand(x) 返回一个随机浮点值 v ,0<=v<=1,参数 x 为整数 ,被用作种子值,用来产生重复序列 round ( x ) 返回最接近参数 x 的整数,对 x 进行四舍五入 此函数返回值为整数 round(x,y) 返回最接近参数 x 的值,此值保留到小数点后面 y 位 如果参数取负值,则将小数点保留左边 y 位 truncate(x,y) 返回截去小数点后 y 位的数值 x sign ( x ) 返回参数 x 的符号 x 值为负 ,返回-1; 0 为 0 ;正,返回 1. pow ( x,y ) 返回 x 的 y