摘要:
一、常见存储引擎特性Innodb具有提交、回滚和崩溃恢复能力的事务安全、支持外键。使用mvcc以及行锁来提供事务支持,因此支持高并发。适用于写频繁,并发率高的应用。Myisam不支持事务和灾难自动恢复,但其访问速度快,支持全文索引,对事务完整性没有要求。通常用于读频繁的数据库,如数据仓库等。Memory使用存在内存中的内容来创建表,表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。。适用于临时的,需要频繁读写,对性能速度要求严格的应用中,如一些统计操作的中间结果表二、选择存储引擎时需要考虑的因素并发如果最好的满足你的并发性需求取决你的 阅读全文
摘要:
一、复制机制的实现原理从高层来看,复制分成三步:(1)master将改变记录到二进制日志(binarylog)中(这些记录叫做二进制日志事件,binarylogevents);(2)slave将master的binarylogevents拷贝到它的中继日志(relaylog);(3)slave重做中继日志中的事件,将改变反映它自己的数据。二、复制实现级别1.Row日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改。优点:在row模式下,bin-log中可以不记录执行的SQL语句的上下文相关的信息,仅仅只需要记录哪一条记录被修改了,修改成什么样了。所以row的日志内容 阅读全文
摘要:
一mysql命令行参数Usage:mysql[OPTIONS][database]//命令方式-?,--help//显示帮助信息并退出-I,--help//显示帮助信息并退出--auto-rehash//自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子-A,--no-auto-rehash//默认状态是没有自动补全功能的。-A就是不要自动补全功能-B,--batch//ysql不使用历史文件,禁用交互(Enables--silent)--character-sets-dir=name//字体集的安装目录--default-character-set=name//设置数据库的 阅读全文
摘要:
mysql字符集说明一、mysql中涉及的几个字符集Øcharacter-set-server/default-character-set:服务器字符集,默认情况下所采用的。Øcharacter-set-database:数据库字符集。Øcharacter-set-table:数据库表字符集。优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。Øcharacter-set-client:客户端的字符集。客户端默认字符集。当客户端 阅读全文
摘要:
一、权限命令标识授权表中对应的列说明CREATECreate_priv创建数据库、表或索引CREATETEMPORARYTABLESCreate_tmp_table_priv创建临时数据表CREATEROUTINECreate_routine_priv创建函数或存储CREATEVIEWCreate_view_priv创建视图CREATEUSERCreate_user_priv创建用户EXECUTEExecute_priv执行函数或存储过程INDEXIndex_priv建立索引REFERENCESReferences_priv建立约束DROPDrop_priv删除表SELECTSelect_pr 阅读全文
摘要:
1、FLUSHTABLESWITHREADLOCK这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。解锁的语句也是unlocktables。2、LOCKTABLEStbl_name[ASalias]{READ[LOCAL]|[LOW_PRIORITY]WRITE}这个命令是表级别的锁定,可以定制锁定某一个表。例如:locktablestestread;不影响其他表的写操作。解锁语句也是unlocktables。这两个语句在执行的时候都需要注意个特点,就是隐式提交的语句。在退出mysql终端的时候都会隐式的执 阅读全文
摘要:
一、备份常用操作基本命令1、备份命令mysqldump格式格式:mysqldump-h主机名-P端口-u用户名-p密码–database数据库名>文件名.sql2、备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。mysqldump--add-drop-table-uusername-ppassword-databasedatabasename>backupfile.sql3、直接将MySQL数据库压缩备份mysqldump-hhostname-uusername-ppassword-databaseda 阅读全文
摘要:
一、连接操作格式:mysql-h主机地址-u用户名-p用户密码例:连接到远程主机上的mysql假设远程主机的IP为:110.110.110.110用户名为root,密码为abcd123则键入以下命令:mysql-h110.110.110.110-uroot-pabcd123二、用户级操作1、selectuser()查看自己的用户名2、Linux命令ps-el|grepmysqld用来检测mysql服务器是否在运行。如果结果为:4S0179610850-1513wait?00:00:00mysqld_safe4S27185617960780-34055-?00:00:00mysqld就说明服务器 阅读全文
摘要:
linux下mysql-5.5.15安装详细步骤注:该文档中用到的目录路径以及一些实际的值都是作为例子来用,具体的目录路径以各自安装时的环境为准mysql运行时需要一个启动目录、一个安装目录和一个数据存放目录。所以,在安装mysql之前需创建三个目录。创建安装目录install:md/data/cheriegong/mysql/install创建数据目录data:mdmd/data/cheriegong/mysql/data创建配置文件目录etc:md/data/cheriegong/mysql/etcmysql5.5之后是通过cmake来编译的,如果机器上还没有装cmake,那么在安装mys 阅读全文
摘要:
binlog的几种复制形式MySQL5.5中对于二进制日志(binlog)有3种不同的格式可选:Mixed,Statement,Row,默认格式是Statement。总结一下这三种格式日志的优缺点。MySQLReplication复制可以是基于一条语句(StatementLevel),也可以是基于一条记录(RowLevel),可以在MySQL的配置参数中设定这个复制级别,不同复制级别的设置会影响到Master端的bin-log日志格式。1.Row日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改。优点:在row模式下,bin-log中可以不记录执行的SQL语句的上下 阅读全文
摘要:
参数参数说明--all-databases,-A导出全部数据库。mysqldump-uroot-p--all-databases--all-tablespaces,-Y导出全部表空间。mysqldump-uroot-p--all-databases--all-tablespaces--no-tablespaces,-y不导出任何表空间信息。mysqldump-uroot-p--all-databases--no-tablespaces--add-drop-database每个数据库创建之前添加drop数据库语句。mysqldump-uroot-p--all-databases--add-dro 阅读全文
摘要:
mysql.sock应该mysql的主机和客户机在同一host上的时候,使用unixdomainsocket做为通讯协议的载体,它比tcp快。Mysql有两种连接方式:(1)TCP/IP(2)socket对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。例如你无须定义连接host的具体IP得,只要为空或localhost就可以。在此种情况下,即使你改变mysql的外部port也是一样可能正常连接。因为你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次mysqlserver启动生成的。已经根据你在更改完my.cnf后重启 阅读全文
摘要:
1、编辑主库的my.cnf在[mysqld]下添加如下配置server-i=1#一般默认为1,不需要修改(一般都以ip的后两位为server-id,保证全局的一致)read-only=0#主库读写都可以binlog-do-db=test#需要同步的数据库名称,要同步多个可以写多行binlog-ignore-db=mysql#不需要同步的数据库名称,可以写多行binlog-ignore-db=performance_schemalog-bin=mysql-bin#二进制日志名称,确保此文件可写2、设置同步数据库用的账号编辑好配置文件后,重启mysql,然后分配一个具有replicationsla 阅读全文
摘要:
刚开始安装时使用了默认目录,使用一段时间,数据慢慢变在,发现当前设置的目录空间不够时,就要搬迁数据到另一个目录了如果全过程使用的是Mysql用户,应该可以正常启动。如果用的ROOT用户,可能不能正常启动,原因是新建的目录权限不对。可能会这样的错误提示:/usr/local/mysql/libexec/mysqld:File‘/home/mysql/mysqllog/binlog/mysql-bin.index'notfound(Errcode:2)1.stopmysqlservice一定要先停止,非常重要。#/etc/init.d/mysqldstop2.修改Mysql配置My.cnf 阅读全文
摘要:
1、若在启动mysql服务时出现如下错误,可查看错误日志找出错误原因。Error:StartingMySQL.TheserverquitwithoutupdatingPIDfile(/data/mysql/failed184_sles10.pid).2、Error:13073010:15:37[ERROR]COLLATION'utf8_general_ci'isnotvalidforCHARACTERSET'latin1'13073010:15:37[ERROR]Aborting若错误日志中出现如上错误,则是在编译的时候字符集与校对集没有对应。校对集时utf8_ 阅读全文
摘要:
Mysql配置参数sync_binlog说明MySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去。默认,sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新。这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。如果sync_binlog>0,表示每sync_binlog次事务提交,MySQL调用文件系统的刷新操作将缓存刷下去。最安全的就是sync_binlog=1了,表示每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能 阅读全文
摘要:
我采用的是MySQLdb操作的MYSQL数据库。先来一个简单的例子吧:?12345678910importMySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)cur=conn.cursor()cur.execute('select*fromuser')cur.close()conn.close()exceptMySQLdb.Error,e:print"MysqlErro 阅读全文
摘要:
importtimeprinttime.time()输出的结果是:1279578704.6725271但是这样是一连串的数字不是我们想要的结果,我们可以利用time模块的格式化时间的方法来处理:time.localtime(time.time())用time.localtime()方法,作用是格式化时间戳为本地的时间。输出的结果是:time.struct_time(tm_year=2010,tm_mon=7,tm_mday=19,tm_hour=22,tm_min=33,tm_sec=39,tm_wday=0,tm_yday=200,tm_isdst=0)现在看起来更有希望格式成我们想要的时. 阅读全文
摘要:
1、【错误日志ErrorLog】---记录启动、运行或停止mysqld时出现的问题可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err并在数据目录中写入日志文件。如果你执行FLUSHLOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件(如果未给出--log-error选项,则不会重新命名)。2、【慢日志SlowLog】---记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询,mysql5.1版本之后可动态开启 阅读全文
摘要:
一、文件操作1、判断一个目录是否存在,若不存在则创建ifnotos.path.isdir(new_path):os.makedirs(new_path)2、新建一个文件f=open("filename",'w')f.close()首先会判断这个文件是否存在,若不存在则新建,。也可以在open和close直接f.write()函数写文件。3、比较两个文件是否相同importfilecmpfilecmp.cmp(r'文件1',r'文件2')如果两个文件相同。会出输出true。否则输出false二、系统级操作1、获取当前运行脚本所在 阅读全文