2014年7月22日星期二

mysql系列之多实例3----基于mysqld_multi

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
mysql系列之多实例3----基于mysqld_multi  阅读原文»

mysql系列之多实例3----基于mysqld_multi

上一篇博文mysql系列之多实例2----基于多配置文件介绍了,如何部署基于多配置文件的mysql多实例,本篇博文将介绍基于mysql自带的mysqld_multi工具来如何实现mysql多实例的部署和管理!

CentOS6.5x86_64位采用最小化安装,系统经过了基本优化
selinux为关闭状态,iptables为无限制模式
mysql版本:mysql-5.5.38
源码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/mysql
数据库存放位置:/mydata

本方案仅以同一台服务器上跑2个实例为例,演示基于多配置文件的mysql多实例

一、安装mysql程序

1、准备软件环境

root@nolinux~]#yuminstallwgetmakecmakegccgcc-c++ncursesncurses-develperl-y

2、准备mysql源码包

获取源码包的方式有很多,你可以去http://dev.mysql.com/downloads/mysql/自行下载

[root@nolinux~]#cd/usr/local/src/
[root@nolinuxsrc]#ll
-rw-r--r--.1rootroot21739681Jun320:39mysql-5.5.38.tar.gz
[root@nolinuxsrc]#tarzxfmysql-5.5.38.tar.gz
[root@nolinuxsrc]#ll
drwxr-xr-x.317161wheel4096May1200:39mysql-5.5.38
-rw-r--r--.1rootroot21739681Jun320:39mysql-5.5.38.tar.gz

3、建立mysql用户

[root@nolinux~]#useradd-r-u306mysql

4、mysql安装

[root@nolinuxsrc]#cdmysql-5.5.38[root@nolinuxmysql-5.5.38]#cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.38\
-DMYSQL_DATADIR=/usr/local/mysql-5.5.38/data\
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.5.38/tmp/mysql.sock\
-DDEFAULT_CHARSET=gbk\
-DDEFAULT_COLLATION=gbk_chinese_ci\
-DENABLED_LOCAL_INFILE=ON\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_FEDERATED_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1\
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
[root@nolinuxmysql-5.5.38]#make
[root@nolinuxmysql-5.5.38]#makeinstall

5、为mysql安装目录制作软链接

编译安装完成之后,我们需要为mysql安装目录做一个link

[root@nolinux~]#cd
[root@nolinux~]#ln-s/usr/local/mysql-5.5.38/usr/local/mysql

6、配置 mysql 环境变量

[root@nolinux~]#echo'exportPATH=/usr/local/mysql/bin:$PATH'>>/etc/profile
[root@nolinux~]#tail-1/etc/profile
exportPATH=/usr/local/mysql/bin:$PATH
[root@nolinux~]#source/etc/profile
[root@nolinux~]#echo$PATH
/usr/local/mysql/bin:[Android]用户界面设计  阅读原文»

[Android]用户界面设计

1. 声明性设计

设计用户界面的方法有两种,过程性设计和声明性设计。过程性设计是指用代码设计用户界面,例如,开发一个Swing应用程序时必须编写Java代码,以创建和操作所有用户界面对象。声明性设计不涉及任何代码,例如,在设计网页时使用HTML,描述了期望的网页布局,而不是如何实现。

Android同时支持过程性和声明性设计,允许开发人员使用任一风格创建用户界面,即可以绝大部分使用Java代码,也可以绝大部分使用XML描述符。虽然二者都是有效的,但谷歌建议尽可能使用声明性的XML语言,与相应的Java代码相比,XML代码往往更加短小易懂,而且在以后版本中发生变化的可能性不高。

Android程序是一个松散的活动集合,其中的每个活动都定义了一个用户界面屏幕。R.layout.activity_main是一个资源标识符,引用了res/layout目录中的activity_main.xml文件,如下所示:

wKioL1O7_G-AepLAAADtarIwDbU774.jpg

2. 资源管理

activity_main.xml文件以XML格式声明用户界面,在运行时,Android解析并实例化该文件中已定义的资源,并将其设置为当前活动的视图。R类是由Android Eclipse插件自动管理的,无论将一个文件放到res目录中的哪个位置,Android Eclipse插件都会注意到这一变化并自动在gen目录的R.java文件内添加资源ID,如果删除或修改了某个资源文件,R.java将保持同步,如下所示:

wKiom1O7_XTyQoKwAAMf7aYXwVY900.jpgAndroid资源管理器使用十六进制整数加载实际数据、字符串,以及被编译到软件包中的其他资源。无需关心这些资源的值,只要记住这些值是引用数据的句柄,而不是引用包含数据的对象的句柄。需要使用对象之前不会解压缩对象。

在Eclipse中双击activity_main.xml即可打开该文件,根据Eclipse的具体设置,双击activity_main.xml后出现的可能是可视化的布局编辑器,或是一个XML编辑器。单击底部的activity_main.xml选项卡,查看XML文件,可以看到对<RelativeLayout>的引用,如下所示:

wKiom1O9SRTRFC-yAAGj_JzDL2w721.jpg

3. 布局

布局是存放一个或多个子对象及某种行为的容器,行为描述了如何将这些子对象放置在屏幕上其父对象的矩形区域中,以下是Android中最常用的几种布局:

1) FrameLayout: 框架布局,从屏幕的左上角开始显示子对象,主要用于选项卡视图和图像切换器。

2) LinearLayout: 线性布局,以单列或单行的形式显示子对象,这是最常用的布局方式。

3) RelativeLayout: 相对布局,相对于其他子对象或父对象的位置显示子对象,这种布局常用于表单中。

4) TableLayout: 表格布局,以多行和多列的方式显示子对象,类似HTML表格。

各种布局方式常用的一些参数如下:

1) xmlns: android="http://schemans.android.com/apk/res/android"定义Android的XML命名空间,该参数只能在main.xml文件中的第一个XML标签处定义一次。

2) android: layout_width="fill_parent", android:layout_height="fill_parent",声明此布局的高度和宽度与父对象的高度和宽度相同。

如果在编辑器中看到关于缺少语法约束的警告,可以尽管忽略,与将英语文本硬编码到布局文件中不同,可以使用@string/resid这种语法形式引用res/values/strings.xml文件中的字符串。根据区域设置或其他参数的设置情况,还可以有其他资源文件。此外还可以使用一种新的语法形式:@id/resid,与引用在其他地方定义的资源ID不同,这种语法形式将创建一个新的资源ID供其他对象引用。

4. 实现对话窗口

可以在屏幕上创建一个弹出提示窗口,并显示一些与窗口有关的信息,阅读完这些文字后,可以按下按钮关闭窗口。实现这个功能有多种方法:

1) 定义一个新的Activity类并启动它。

2) 使用AlertDialog类并显示它。

3) 子类化Android的Dialog类并显示它。

下面将定义一个新的活动,它也需要一个布局文件,比如将文件命名为res/layout/activity_about.xml,如下所示:

wKiom1POZubBEJYxAAMZ_NvAS5c304.jpg

About活动应该在AboutActivity.java文件中定义,只需覆写onCreate()方法并调用setContentView()方法即可,如下所示:

wKiom1PFMCuToX_hAAFoqwgolE4522.jpg在activity_main.xml中添加一个Button,以便与About活动关联,如下所示:

wKioL1PFMMCwd7a1AAKFa4Rsxh8414.jpg而后在MainActivity.java中添加一些导入语句,在onCreate()方法中添加代码以调用findViewById()和setOnClickListener()方法,findViewById()方法用于根据资源ID查找Android视图,setOnClickListener()方法则通知Android当用户触摸或单击该视图时应触发哪个对象,如下所示:

wKiom1PFNFby-lN9AAKzy6dGorA501.jpg要想在Android中启动某个活动,首先需要创建Intent类的实例。Android中有两种Intent,public的Intent是在系统级注册的,可从任何应用程序内使用,private的Intent只能在一个应用程序内使用。此外,每个活动都需要在AndroidManifest.xml文件中声明,运行效果如下:

wKiom1PFQziQwnW4AAB14r8gx7Y751.jpg

5. 应用主题和菜单

主题是一个样式集合,可用于覆写Android部件的外观,Android附带了多个主题,可以通过名称进行引用。别外,通过子类化现有主题并覆写其默认值,用户也可以构造自己的主题。可以在res/values/styles.xml文件中自定义主题,要使用主题,首先在编辑器中再次打开AndroidManifest.xml文件,然后修改About活动的定义,如下所示:

wKioL1PLyFDQO33JAABuYacaGys492.jpg样式名称前的@android:前缀表示此处引用了由Android定义的资源,而不是用户自己在程序中定义的资源,再次运行程序,如下所示:

wKioL1PLyxnhqz20AACvrGQEvj8874.jpg

Android支持两类菜单:一种是在用户按下Menu按钮时弹出的菜单,另一种是用户用手指按住屏幕不放时弹出的上下文菜单。以第一种菜单为例,需要使用在res/menu/main.xml文件中定义的菜单,如下所示:

wKiom1POZl6i3GK-AAC8BCUBppc970.jpg

再使用MainActivity类中的onCreateOptionsMenu()方法,如下所示:

阅读更多内容

没有评论:

发表评论