mysql数据库

mysql 主从同步

限于喜欢 提交于 2020-02-21 07:11:18
确认主从两服务器的MySQL,特别是从服务器的默认链接编码,否则同步可能会出现乱码。 [mysqld] server-id = 2 slave-skip-errors=all default-character-set=utf8 expire_logs_days=8; [client] default-character-set=utf8 binlog: set global expire_logs_days=8; PURGE MASTER LOGS TO ‘mysql-bin.010′; PURGE MASTER LOGS BEFORE ‘2008-06-22 13:00:00′; 清除3天前的 binlog PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); BEFORE变量的date自变量可以为’YYYY-MM-DD hh:mm:ss’格式。MASTER和BINARY是同义词。 修改主服务器: log-bin=/data/mysql/bin binlog_do_db = uc binlog_do_db = web #下面是不需要同步的 #binlog-ignore-db = mysql #binlog-ignore-db = test #binlog-ignore-db = information

在CentOS7上安装mysql并设置远程访问

安稳与你 提交于 2020-02-21 07:02:40
  今天带大家来安装一下mysql,并修改一下mysql的相关配置,并且授予远程登录权限,在window上的数据库管理工具上操纵linux上的数据库。在安装前最好先保存一份快照,以防安装过程中出现问题。 1、检查,卸载系统自带的版本 rpm -qa | grep mariadb 卸载: rpm -e --nodeps mariadb-libs 2、授权 chmod -R 777 /tmp   3、安装mysql ① 将mysql目录拷贝到/opt目录下 mysql目录包括的rpm安装包: mysql-community-common-5.7.16-1.el7.x86_64.rpm mysql-community-libs-5.7.16-1.el7.x86_64.rpm mysql-community-client-5.7.16-1.el7.x86_64.rpm mysql-community-server-5.7.16-1.el7.x86_64.rpm ② 进行安装: rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.16-1.el7.x86

Mysql之基于GTID的主从异步复制

房东的猫 提交于 2020-02-21 05:51:04
1. GTID的工作原理 1、master更新数据时,会在事务前产生GTID,一同记录到binlog日志中。 2、slave端的i/o 线程将变更的binlog,写入到本地的relay log中。 3、sql线程从relay log中获取GTID,然后对比slave端的binlog是否有记录。 4、如果有记录,说明该GTID的事务已经执行,slave会忽略。 5、如果没有记录,slave就会从relay log中执行该GTID的事务,并记录到binlog。 6、在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描。 2. GTID的优点 1.一个事务对应一个唯一ID,一个GTID在一个服务器上只会执行一次 2.GTID是用来代替传统复制的方法,GTID复制与普通复制模式的最大不同就是不需要指定二进制文件名和位置 3.减少手工干预和降低服务故障时间,当主机挂了之后通过软件从众多的备机中提升一台备机为主机 3. GTID的主从异步复制实现 在上一个基于二进制的主从异步服务的基础上实现,保证主从数据库的数据一致 <1>主库修改配置文件,开启gtid gtid_mode=ON enforce-gtid-consistency=true systemctl restart mysqld <2>server2从库同样修改配置文件 gtid_mode=ON enforce

Java Spring用properties配置数据库连接池出现错误的处理方法[图]

孤街浪徒 提交于 2020-02-21 03:24:48
错误 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 17 in XML document from class path resource [db-config.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 78; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'contest:property-placeholder'. 保存数据库用户名等信息的properties文件 mysql-username=root mysql-password=abcd2020 mysql-jdbcUrl=jdbc:mysql://192.168.3.16/beers mysql-driverClass=com.mysql.jdbc.Driver Java的测试类 package com.mars.springtest; import org.junit.Test; import org

[系统软件工程师面试] 6. mysql

别等时光非礼了梦想. 提交于 2020-02-21 02:54:50
1. Mysql内核 MyISAM和InnoDB内核选型 1. InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一; 2. InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败; 3. InnoDB 是聚集索引,MyISAM 是非聚集索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。 4. InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快; 5. InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。这也是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一; 如何选择: 1. 是否要支持事务

说说mysql两阶段提交

六眼飞鱼酱① 提交于 2020-02-21 02:40:17
mysql两阶段提交 两阶段提交分为prepare和commit阶段, 准备阶段:事物SQL先写入redo log buffer,然后做一个事物准备标记,在将log buffer 中的数据刷新到redo log。 提交阶段:将事物产生的binlog写入文件,刷新磁盘。 再在redo log 中做一个事物提交的标记,并把binlog写成功的标记也一并写入redo log文件。 结合以下场景分析两阶段提交如何保证数据库的一致性。 一, 准备阶段,redo log刷新到磁盘了,但是binlog写磁盘前发生了mysql实例crash,这时会发生怎样的操作呢? 即使redo log写盘成功了,但由于binlog未写入成功,需要执行回滚操作来保证数据库的一致性。 二, 提交阶段,binlog写盘成功了,这时mysql实例crash了。这时binlog已经确保写成功了,我们在重启实例进行恢复的时候,只需要让redo log重做一次就可以了。 来源: CSDN 作者: z毛毛虫_chenchen 链接: https://blog.csdn.net/weixin_40524659/article/details/104412329

docker实践-安装wordpress

浪尽此生 提交于 2020-02-20 17:35:39
很多人都有搭建 wordpress 的经历,可能被某些环境的配置搞得焦头乱耳的,这里使用 docker ,可以很轻松的进行 wordpress 的搭建工作。 安装 Docker sudo apt-get install docker.io 这样在 ubuntu 的系统下,我们就把 docker 安装好了, wordpress 需要使用到 MySQL ,先一个MySQL容器, docker pull mysql:5.6 使用 docker images 命令,可以看到镜像列表中,多了一个 mysql 的镜像。 root@:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.6 edea6175b4cb 2 weeks ago 302MB 从MySQL镜像中运行单独的容器 docker run -d --name myMysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33306:3306 mysql:5.6 参数说明: --name 容器的的名字 --link 和其他容器做连接 -d/--detach 后台运行 -p: 端口映射,33306表示宿主,3306表示容器中的端口。 这里表示将宿主机的33306映射给镜像的3306.

01_10_SERVLET如何连接Mysql数据库

拜拜、爱过 提交于 2020-02-20 16:56:43
01_10_SERVLET 如何连接 Mysql 数据库 1. 实现类 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null ; Statement stmt = null ; ResultSet rs = null ; response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println("<HEAD><TITLE>Servlet 连接 MySQL 数据库 </TITLE></HEAD>" ); out.println("<BODY>"); out.print("<table align=\"center\" border=\"1\"><tr align=\"center\"><td> 查询 world 库中 city

批量清理mysql进程

。_饼干妹妹 提交于 2020-02-20 15:09:42
批量kill掉无用的sql语句,避免影响拖垮数据库。 MariaDB [(none)]> show processlist; +--------+------+-----------------+----------+---------+------+-------+------------------+----------+ | Id | User | Host | db | Command | Time | State | Info | Progress | +--------+------+-----------------+----------+---------+------+-------+------------------+----------+ | 103258 | root | localhost:57884 | adminset | Sleep | 2 | | NULL | 0.000 | | 103259 | root | localhost | NULL | Query | 0 | NULL | show processlist | 0.000 | +--------+------+-----------------+----------+---------+------+-------+------------------+----------+ 2

DjangoBlog部署教程

我怕爱的太早我们不能终老 提交于 2020-02-20 07:48:13
本篇文章将会手把手教你如何部署DjangoBlog项目,首先介绍下我这里的基本环境,请大家仔细阅读此部分,下面的教程都会使用这些约定来介绍: 系统是 ubuntu 18.04 LTS 假设你的域名是 www.djangoblog.com 。 python虚拟环境目录在 ~/python/env djangoblog源码位置在 ~/python/DjangoBlog 登入用户 server 编辑器使用vim,你可以使用你喜欢的编辑器。 准备工作 升级系统 首先需要升级系统到最新版,终端下执行: sudo apt update sudo apt upgrade -y 待完成更新之后,建议重新启动下系统,再进行后面的操作。终端下执行: sudo reboot 待系统启动后,可以开始安装依赖的mysql以及python环境了。 安装依赖 终端下执行: sudo apt install mysql-server -y #安装mysql sudo apt install python3-dev python3-pip python-pip memcached -y #安装pip和memcached sudo apt install supervisor -y sudo apt install nginx -y sudo apt-get install python-dev default