Navicat Lite

flask+mysql的Docker 部署

*爱你&永不变心* 提交于 2020-05-01 17:51:31
##docker从入门到实践 https://yeasy.gitbooks.io/docker_practice/image/build.html <hr> ## 一、命令行方式+dockerfile部署。 1️⃣ 部署mysql容器 docker pull mysql #拉取mysql镜像 docker run --name mysql -v /Users/zhaotengwei/Desktop/mysql:/database -p 6666:3306 -e MYSQL_ROOT_PASSWORD=woaini123.. -d mysql 创建一个容器名字叫做mysql -v 挂载本地目录与容器内的目录,用:区分。冒号前面是本地宿主机目录,后面的是容器内的目录。如果/database不存在的话会自动创建。 挂载好了之后就可以实现本地与容器内目录的互联。比如你在挂载的本地目录里新增一个文件。那么容器内的那个目录也会相应的增加这个文件。 -p 6666:3306 端口映射 :前是本地端口,后是容器端口。 这样设置好之后,那么你连接宿主机上6666端口就可以访问容器内的3306端口了。(6666我随便设的) 下面的Navicat就可以连接了。 -e MYSQL_ROOT_PASSWORD=woaini123.. 设置环境变量 ,也就是设置数据库root密码,我没有设置用户

window环境自己集成MySQL,PHP,nginx用于开发

梦想的初衷 提交于 2020-05-01 11:30:36
可能给位开发者在搭建自己的网站的时候,肯定不会写一个两个文件就8uftp之类的往自己的云服务器或者虚拟主机上面传,那么本地的开发环境搭建就非常重要了,今天就给大家带来一个本地区官网下载二进制包进行自己配置这些环境的一个教学! 首先我们先去MySQL官网下载MySQL安装包: https://dev.mysql.com/downloads/mysql/ ,然后博主就下载最新版本的8.0吧,博主也算是一个强迫症了,受不了老版本的软件,然后这个地址呢一共有两个版本的MySQL安装包分别是msi安装包和zip二进制包,那楼主就选择绿色版的下载了,各位可以依照自己的喜好下载! 然后呢我们再去nginx官网: http://nginx.org/en/download.html 选择中间那个stable version(稳定版本)那个nginx/window那个点进去就可以下载了 然后就是去PHP的官网下载安装包了: https://windows.php.net/download#php-7.3 这里php还有两个版本一个是线程安全(Thread safe)的版本和线程不安全版本(non-Thead-safe)这里给大家解释一下这两个版本就是说,线程安全就是php启动的时候检测php线程之间的数据然后进行启动(就是多线程的时候你启动一个新的线程总得知道其他的线程计算得怎么样了吧

mysql主从复制-读写分离-原理

孤者浪人 提交于 2020-05-01 06:30:41
Mysql主从复制和读写分离 在实际的生产环境中 ,如果对 mysql数据库的读和写都在一台数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是不能满足实际需求的。因此,一般通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。 Mysql主从复制和读写分离 l 主从复制: Mysql 的主从复制和 mysql的读写分离两者有紧密的联系,首先要部署主从复制,只有主从复制完成了,才能再此基础上进行数据的读写分离。 Mysql支持的复制类型: 1、 基于语句的复制:在主服务器上执行的 sql语句,在从服务器上会 执行同样的语句。 Mysql默认采用基于语句的复制,效率比较高,但是有时不能实现精准复制。 2、 基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍。 3、 混合类型的复制:默认采用基于语句的复制,一旦发现基于语句的复制不能精准复制时,就会采用基于行的复制。 l 主从复制的过程: 1、 在每个事物更新数据完成之前 , master在二进制日志记录这些改变,写入二进制日志完成后,master通知存储引擎提交事物。 2、 Slave将master的binary log复制到其中的中继日志。 首先从 mysql服务器开始一个工作线程I/O线程,I/O线程 在 master上打开一个普通的连接,然后开始binlog dump

Mysql主从复制和读写分离

夙愿已清 提交于 2020-05-01 05:12:55
Mysql主从复制和读写分离 Mysql主从复制和读写分离 在实际的生产环境中,如果对mysql数据库的读和写都在一台数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是不能满足实际需求的。因此,一般通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。 Mysql主从复制和读写分离 一,主从复制: Mysql的主从复制和mysql的读写分离两者有紧密的联系,首先要部署主从复制,只有主从复制完成了,才能再此基础上进行数据的读写分离。 Mysql支持的复制类型: 1、 基于语句的复制:在主服务器上执行的sql语句,在从服务器上会执行同样的语句。Mysql默认采用基于语句的复制,效率比较高,但是有时不能实现精准复制。 2, 基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍。 3、 混合类型的复制:默认采用基于语句的复制,一旦发现基于语句的复制不能精准复制时,就会采用基于行的复制。 二,主从复制过程: 1、 在每个事物更新数据完成之前,master在二进制日志记录这些改变,写入二进制日志完成后,master通知存储引擎提交事物。 2、 Slave将master的binary log复制到其中的中继日志。首先从mysql服务器开始一个工作线程I/O线程,I/O线程在master上打开一个普通的连接,然后开始binlog dump

MySQL

为君一笑 提交于 2020-05-01 03:25:34
我们在新建数据库时(Navicat)界面时会遇到这两个选项: 1.字符集 一般选择utf8. 下面介绍一下utf8与utfmb4的区别: utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了,到 这里可以查看unicode编码区从1 ~ 126就属于传统utf8区 。 当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。 2.排序说明 排序一般分为两种: utf_bin和utf_general_ci bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * FROM table WHERE txt = 'a' 那么在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以. utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。 utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果 utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容 utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。 utf8_general_ci校对速度快,但准确度稍差。

Linux系统安装、配置Mysql以及远程连接设置

…衆ロ難τιáo~ 提交于 2020-04-29 14:08:59
直接进入主题,以下内容是我在实际操作中遇到的一些坑,通过该平台分享我的解决方法,希望对遇到同样问题的你能有所帮助 以下的安装环境是Centos6.x的环境,如果是Centos7.x的环境,安装的步骤略有所不同,可以参照以下网址: https://www.cnblogs.com/starof/p/4680083.html 先进入Linux系统的root用户,使用yum命令安装mysql-server,记住,mysql-server中包含了客户端和服务端,不能只只下载mysql 如果使用该命令显示无法找到该模块,说明在本机的yum源中没有mysql的包,可以通过另外一种方式解决,具体可以参考以下网址: http://www.runoob.com/mysql/mysql-install.html [root@slave6 ~] # yum -y install mysql-server [root@slave6 ~]# service mysqld start 启动 [root@slave6 ~]# chkconfig mysqld on 设置开机启动 [root @slave10 ~] # chkconfig --list 到这里就已经把Linux环境的mysql安装好了,这是Windows系统下配置的地址: http://www.runoob.com/mysql/mysql

业务测试痛点(一)---解决复杂场景的合同再造

别来无恙 提交于 2020-04-28 12:49:56
迭代测试进行到中期时,简单场景的测试与bug修改基本完成,开始尝试复杂场景的测试。 制作复杂的场景包含的步骤很多,并且一步接一步,步骤前后得卡着服务器时间来进行,遗漏步骤会导致构造的合同不符合预期场景而作废,步骤顺序错误也会导致合同不符合预期场景而作废,制造时间在30-40分钟。 个人的测试习惯:总是对bug进行二次确认再提交,确认的过程是对bug的确认,也是更清晰的梳理操作步骤和整理需要提供的bug数据,方便提交bug时清晰的展示问题的出现过程。 试想,两次进行这种数据的制造需要花费的时间和精力,这不包含如若出现差错而导致数据不符合预期,那时心里真的很崩溃的,再造数据又得花费相当的时间和精力,影响测试进行。 越早解决这个痛点,保证源源不断的测试数据,就能为测试进度和质量,甚至bug的修改建立最根本的基础。 这里为什么会涉及bug的修改,原因是这样的:开发同事在修改bug时,如果能带着数据去走断点查看错误发生点,就能直观地查找到问题点并解决。所以开发同事对数据有着和我们同样的需求,同样的需要产生在bug复测阶段。 那么开工把! 理论上讲合同经过业务代码正向符合预期的形成,那么我们就可以将库中数据逆向还原到任何点上。道理讲得通,但是还没怎么写时就发现,这里是个坑。不同的合同不同的出账方式不同的时间点上业务代码的处理都是不同,按照逆向还原的思路来,我们是要逆着重新写一个业务系统出来

同事埋了个坑:Insert into select语句把生产服务器炸了

不问归期 提交于 2020-04-28 11:36:58
Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。 但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。 通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后他就被开除了。 事故发生的经过 由于数据数据库中order_today数据量过大,当时好像有700W了并且每天在以30W的速度增加。所以上司命令xxx将order_today内的部分数据迁移到order_record中,并将order_today中的数据删除。这样来降低order_today表中的数据量。 由于考虑到会占用数据库I/O,为了不影响业务,计划是9:00以后开始迁移,但是xxx在8:00的时候,尝试迁移了少部分数据(1000条),觉得没啥问题,就开始考虑大批量迁移。 在迁移的过程中,应急群是先反应有小部分用户出现支付失败,随后反应大批用户出现支付失败的情况,以及初始化订单失败的情况,同时腾讯也开始报警。 然后xxx就慌了,立即停止了迁移。 本以为停止迁移就就可以恢复了,但是并没有。后面发生的你们可以脑补一下。 事故还原 在本地建立一个精简版的数据库,并生成了100w的数据

Navicat Premium连接MySQL 1251错误和Mysql初始化root密码和允许远程访问

你说的曾经没有我的故事 提交于 2020-04-28 03:32:28
Mysql初始化root密码和允许远程访问 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库。缺省状态下,mysql的用户是没有远程访问的权限。 下面介绍两种方法,解决这一用户远程访问的权限问题。 1、改表法 可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -p mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; 2、授权法 在安装mysql的机器上运行mysql: 1、mysql>use mysql //这样应该可以进入MySQL服务器 2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //赋予任何主机访问数据的权限 例如,你想 root 使用 password 从任何主机连接到mysql服务器的话。 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'

Navicat Premium连接MySQL 1251错误

送分小仙女□ 提交于 2020-04-28 03:32:07
Navicat Premium连接MySQL 1251错误 MySQL Installer 8.0.17 ​ 出现上述错误的原因是版本MySQL 8.0.17即8.0开始的MySQL版本,因为采用新的保密方式,而Navicat Premium 所属使用的是旧版本的方式,所以旧的似乎不能用,我们可以通过修改MySQL 8.0以及以上版本的加密方式 ,这样的话,Navicat Premium客户端就可以连接了。 改密码方式如下: 打开mysql 客户端输入: 1、USE MYSQL; 2、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; 3、FLUSH PRIVILEGES; 设置以后使用Navicat Premium客户端就可以连接了。 ​ 来源: oschina 链接: https://my.oschina.net/u/4410805/blog/3391564