数据库多实例
数据库多实例,就是在一台虚拟机中安装多个数据库,那我们如何区分我们所进入的数据库是哪一个呢?这就出现了一个新概念:端口号,和不同的启动文件,接下来我慢慢给大家道来
1. 我们先检查我们的虚拟机中是否安装了mariadb,有的话我们就全部删除,我的没有所以不需要删除操作,如果你的有的话只要输入:yum remove -y 文件名称。这样就可以将这些mariadb 删除了
接下来我们要看一下我们的依赖是否下载完成了我们按照下图操作
如果你显示的和我一样就证明你的依赖下载完成了,如果你的没有下载,在命令行输入:yum install -y autoconf ncurses即可。
接下来我们来规划一下目录在创建用户输入:mkdir -p /data/mysql{3306..3307}/{data,binlog} 这句话的意思是创建目录,在data这个目录中创建MySQL3306 MySQL3307 ,而这两个目录中有分别包含了data 和binlog data目录和binlog二进制目录,data目录是初始化的时候放很多初始化文件的目录,比如error等等。那binlog就是放binlog的目录。这两个目录创建完成后。我们再来创建用户和组,并给相应的目录的相应的用户权限如下图操作
接下来我们要将压缩包解压,并将它移动到/usr/local/下并命名为MySQL,这一步在昨天的二进制安装MySQL中有详细介绍可以去看,
接下来我们要写配置文件了,因为我昨天已经二进制安装了一个MySQL数据库了,就说明我已经写过一个配置文件了,我现在只需要复制并且修改其中相应的端口号和相应的目录位置,如图所示
复制
修改里面相应的内容
修改完成后保存退出
接下来我们给目录MySQL权限如下图操作
接下来我们来初始化3307的那个数据库
这一步祥要作成功,你必须要把那个配置文件写对了,不然会初始化失败
初始化完成之后你可以看到,在/data/mysql3307的data目录里有很多初始化文件,这就代表没什么问题了如下图
接下来我们要,粘贴MySQL启动文件并添加环境如下图操作
进行完这一步
我们来启动3307端口的这个数据库如下图操作
多实例启动&代表后台启动,如果不输入&会一直卡住,需要重新连接scrp
执行完毕以后我们来通过查询端口号,检查是否启动成功,可以看到3306,3307,端口都已经启动成功了,这就表明运行了两个数据库,一个端口为,3306,列一个端口为:3307
接下来在来查看一下/tmp目录下是否存在sock文件,可以看到/tmp中有每个数据库的sock文件sock文件是数据库启动成功时生成的文件
这样就启动成功了。
下一步登录并修改密码,数据库的初始化密码都在error.log日志里面,通过命令可以查看
我选中的按一部分就是他的初始化密码。用它来登录数据库
注意:// 密码一定要用引号括起来 -S(大写)后面跟的是sock路径,这个是必须的! -P(大写)跟的是端口号。
登录之后必须要修改密码,否则无法对数据库进行操作
修改密码
在重新登录就可以了。
现在我们可以来验证一下,是不是安装了两台不同的数据库,我们现在端口为3307的数据库里面新建一个数据库在去端口为3306的这个数据库里面去查看,看看是否存在,如果存在则证明它们是一个数据库,如果没有则证明它们不是一个数据库,看下图,我在端口为3307的数据库中新建了一个名字叫lala的数据库
我们接下来登录端口为3306的数据库来查看一下
他的里边并没有lala的数据库所以可以证明我们是安装了,两个数据库,在一台虚拟机上,成功的实现了数据库的多实例。
MySQL之数据库的设计
1.一对一(了解)
2.一对多(多对一)
3.多对多
1.一对多(多对一)
2.多对多
3.一对一
- 创建旅游线路分类表tab_category
- cid旅游线路分类主键,自动增长
- cname旅游线路分类名称非空,唯一,字符串100
- 创建旅游线路表tab_route
python操作数据库项目实例分享
本文根据一个项目实例,记录分享一下python将数据库的内容提取显示到程序界面的过程及相关设置,探索python操作数据库的用法。主要分享内容:
- 1、显示数据库内容。
- 2、修改数据库内容。
- 3、表格控件指定滑块位置。
- 4、自定义右键菜单。
使用环境:python3.7 + Mysql5 +PyQt5
针对人群:初学者或有资料查阅需求者,资深人士勿喷,敬请提出宝贵意见,本人虚心接受。
1、创建软件界面
2、与数据库建立连接
1、创建软件界面:
上图为使用PyQt5相关模块创建的工程造价系统界面,使用的模块及功能:
- 1、QMainWindow模块:绘制带菜单、工具栏、状态栏的整体框架。
- 2、QTreeWidget模块:绘制左侧导航栏。
- 3、QTableWidgetItem模块:绘制中间用于显示数据的表格。
- 4、QComboBox, QPushButton模块:绘制下拉框、按钮控件。
- 5、QSplitter模块:设置各种控件的摆放组合方式,可鼠标拖动调整窗口大小。
- 6、QMessageBox模块:设置交互弹框。
具体界面绘制过程不是本文重点,暂不详述。
2、与数据库建立连接
要建立与数据库的连接,首先得有具体的数据库,本案例在本机用mysql建立自己的数据库,然后再与软件项目进行连接。
2.1、自建数据库
下载安装好Mysql后,建议再装一个可视化工具,我用的Navicat for Mysql,感觉不错。界面见下图:
在这个工具界面下,可以很方便的创建修改数据表。有了工具后,接下来就是关键的填入数据。很多时候,客户或者我们自己的数据是放在excel里的,我们可以通过Navicat 的导入向导,很方便的将excel数据导入到数据库:
跟着向导,只需简单几步就可完成数据导入。
2.2、连接数据库
导入pymysql库,将库的连接等功能写入自建的类。本案通过读取.cfg配置文件(有关配置文件的知识,可参见),获得连接库需用到的5个参数,在_init_初始类属性时,建立连接,代码如下:
其中,sql_config.cfg文件内容为:
若不用配置文件,直接把5个参数写在程序里也可以,代码如下,貌似更简单:
功能:在软件界面,点击左侧导航栏,找到数据库中与展开项对应的表,将数据显示在中间表格里。若目标表不存在,提示创建。
实现步骤:
创建导航栏; → 点击导航栏,获取表名; → 查询数据库,找到表,显示内容
具体过程:
1、用树形控件创建导航栏,数据来源为数据库
数据库里导航栏数据源样式为:
用代码手动逐条输入是不可接受的,根据第一列数据长度特点,采用下面的批量创建方式,其中fl为传递的参数,意思是“路基”或者其他专业。
2、设置点击树形控件条目的信号槽函数,将数据库表内容提取后显示在表格控件。
设置左键单击导航栏时,触发函数showtreesql()。具体获取数据功能在函数里设置。
3、读取数据库内容到表格的功能函数代码:
判断数据库是否存在某表的函数块:
4、左键双击导航栏时,触发信号槽,当不存在目标表时,提示创建新表:
1、设置保存按钮
2、编写保存按钮点击函数块
设置下拉框选择项目后,根据项目名让中间下部的表格上下滑块移动至将当前项目显示在第一位:
设置信号槽:self.decxcomb2.currentTextChanged[str].connect(self.set_table2)
设置功能块代码:
表格输入时,有时候难免存在需要插入行、删除行的要求,最常见的就是下面的右键菜单处理了。
实现过程:
1)设置表格控件能响应右键
2)设置右键信号槽函数
3)函数功能块设置
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。