当前位置:文档之家› mysql测试经验共享1.0.0.2

mysql测试经验共享1.0.0.2

mysql测试经验共享1.0.0.2
mysql测试经验共享1.0.0.2

Mysql测试FAQ.

Mysql测试FAQ (1)

1.测试时候操作 (2)

1.1innodb的表空间 (2)

1.2max_allowed_packet选项 (2)

1.3无法获取更新sql影响的记录条数 (2)

1.4触发器坏的时候 (3)

1.5自增列的问题 (3)

1.6打开数据库的log文件进行测试 (3)

1.7mysql导出转义字符 (3)

2.建立同步相关 (4)

https://www.doczj.com/doc/ff14831588.html,f需要主库的同步信息 (4)

2.2主从之间必须用不同的server-id (4)

2.3必须配置log-bin (4)

2.4配置项log-slave-updates (4)

2.5四升五必须考var包 (5)

2.6主从同步中忽略掉指定的表 (5)

2.7只同步指定的表 (5)

Mysql性能的一般结论 (6)

3.更新sql的性能 (6)

3.1更新类型sql的最大速度 (6)

3.2影响更新sql执行时间的主要因素 (6)

3.3比较短的更新sql (6)

3.4比较大的更新sq (7)

4.关于mysql检索性能测试 (8)

4.1索引不止一倍提高检索速度 (8)

4.2使用in比单条更快 (8)

4.3比较符号比limit的效率高 (8)

5.各种数据类型的处理 (10)

5.1数据类型的转换规则 (10)

5.2在mysql中慎用引号 (11)

5.3BIGINT不是INT (12)

5.4text列 (13)

5.5汉字处理 (14)

1.测试时候操作

1.1innodb的表空间

Q:在测试执行的时候,经常需要环境迁移,拷贝数据库var文件夹,该文件夹下面的ibdata1文件总是很大,可以压缩删除ibdata1文件吗?

A:ibdata1文件不能够压缩和删除。线上的mysql5数据库多使用innodb的存储引擎,在innodb的存储引起中,数据库中数据信息的存储在名字叫做ibdata1的文件中,文件名称和属性由https://www.doczj.com/doc/ff14831588.html,f中配置项innodb_data_file_path指定。测试环境中tc183上面原有的sfrd镜像线上的数据库,由于存在着触发器和触发表,而触发表中的数据有上亿条,导致ibdata1已经增大到了319G,即使drop掉增量数据库,表空间文件ibdata1的大小没有任何变化,仍然是319G。

经验总结:因为ibdata文件是只增大不缩小的,所以要减小表硬盘空间的大小,必须使用如下步骤:

(1)使用mysqldump转储所有InnoDB表;

(2)停止服务器;

(3)删除所有已存在的表空间文件;

(4)配置新表空间;

(5)重启服务器;

(6)导入转储文件。

这是MySQL官方的步骤,因为占用的空间已经分配给MySQL 了,跟Oracle类似的,在修改和删除的时候mysql为了下次能够继续复用这些空间避免重新申请空间代理的效率上的损失,仍然占用着这些硬盘空间,而不进行释放,下次有需要。

线上的ibdata1不会出现这么大的情况,因为线上会定期删除sfrd增量数据库里面的数据,这样留出磁盘空间可以给其他的数据用,所以线上的磁盘空间也会随着时间而有少许的增长。

1.2max_allowed_packet选项

Q:为什么sql里面执行一个很大的sql,会出现ror导致执行失败的情况?

A:[cl ient] [mysqld] 中有一个选项max_allowed_packet,max_allowed_packet参数的作用是用来控制其通信缓冲区的最大长度,表示能够接受到的包含sql语句的event包的最大大小,当sql语句过大的时候而这个配置项的数值过小,则可能导致出现下面错误:bigger than max_allowed_packet

1.3无法获取更新sql影响的记录条数

Q:对于更新sql,使用mysql –e”$sql”的方法,有没有办法知道这条sql作用到的具体的记录的条目数,比如delete from table_23_alltype where caseid = 1这个sql就无法知道caseid=1的sql是否存在,除非sql本身错误,否则不知道该条sql一共删除了几条caseid=1的记录?

A:使用交互模式登陆到mysql服务器时候,执行一条sql,mysql会返回影响的条数,例如

update table_int set caseid=1;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 1 Changed: 0 Warnings: 0

但是非交互模式也就是-e的方式执行,却不会直接返回sql所影响到的记录数。

在进行测试的时候,有时候我们需要执行的sql是否真的和底层数据match上,为了解决这个问题,可以利

用mysql的c的API函数mysql_affected_rows(MYSQL *)来执行。所以我们编写exesql这个工具来获取sql 影响到的记录的个数,这个工具只是调用mysql_affected_rows(MYSQL *)这个函数。

1.4触发器坏的时候

Q:建立触发器既不能够添加也不能够删除的情况:曾经在多次修改删除触发器的时候,遇到触发器失灵的问题。具体表现是这样的,使用命令“use SF_Word;show triggers”显示的结果为空,但是使用建立触发器的sql,却发现这个触发器已经存在,报错“trigger already exist!”,而使用删除触发器的sql语句“droptrigger trigger_name”之后,却无法删除。

A:解决的方法是直接到文件夹V AR/SF_Word下面,删除以.TRG和. TRN结尾的文件,这样就彻底删除触发器。触发器就能够顺利安装上了。

1.5自增列的问题

Q:在一个已经建立自增列的执行delete全表的操作,发现id不是从当前最大的开始增加而是从1开始

A:innodb表中使用auto_increment,mysql官方文档关于自增列的说明是“每个表中只能存在一个AUTO_INCREMENT的字段。同时这个字段必须被索引,而且也不能为这个字段设置一个默认值”。

当进行全表删除时,AUTO_INCREMENT会从1重新开始编号。全表删除的意思是发出以下两条语句时:Drop table table_name;create table table_name;

这个时候已经分配的id都被删除。如果即使删除数据库表中的记录,也想让id从当前最大的开始增加,可以使用delete from table_name where 1强迫不进行优化;

1.6打开数据库的log文件进行测试

Q:如何了解在测试过程中对mysql进行的所有操作?

A:数据库的测试的时候,有时候想要看每条sql在数据库中的执行情况,这个时候可以在https://www.doczj.com/doc/ff14831588.html,f中配置log文件选项。在https://www.doczj.com/doc/ff14831588.html,f中添加log=“mysql.log”,然后重启mysql数据库,这个时候mysql就会把接收到的所有sql都记录到mysql.log这个文件中。

不过处于效率考虑,线上的mysql都是不写这个日志的;如果功能测试,可以打开,但是如果是性能测试,建议尽量保持和线上一致,不要开启这个日志。

需要的时候可以打开mysql的慢查询日志

log-slow-queries=slow.log#慢查询日志名称

log_query_time=1#查询时间超过1秒的被当作慢查询

log-queries-not-using-indexes=idx.log#没有使用索引的查询记录日志名称

1.7mysql导出转义字符

Q:从mysql中导出数据默认进行字符转义的问题,如何去掉转义字符的处理?

A:如果向数据库表wordlist中插入记录

insert into test.t1 values(‘1\t2’);

insert into test.t1 values(‘1\n2’);

然后使用select from wordlist into outfile ‘./a.txt’; 会是什么样子的数据?

mysql自动对导出数据进行转义处理,将’1\t2’进行转义处理变成’1\\t2’;将’1\n2’转换为’1\\n2’。可以在使用select from wordlist into outfile ‘./a.txt’;的时候加上参数fields_escape=’’就可以将导出时候的转移符号设置为空,也可以设置fields_escape为其他的字符,这样对转义字符就会加上自己设置的字符。

2.建立同步相关

https://www.doczj.com/doc/ff14831588.html,f需要主库的同步信息

Q:在建立数据库镜像同步的时候,拷贝mysql主库上面的var包文件的时候,把binlog文件和https://www.doczj.com/doc/ff14831588.html, 文件也拷贝过来,为什么会无法启动?有可能造成启动失败的情况。

A:在建立数据库镜像同步的时候,拷贝mysql主库上面的var包文件的时候,把binlog文件和https://www.doczj.com/doc/ff14831588.html, 文件也拷贝过来,有可能造成启动失败的情况。删除var包下面https://www.doczj.com/doc/ff14831588.html,和https://www.doczj.com/doc/ff14831588.html,、binlog文件后,如果https://www.doczj.com/doc/ff14831588.html,f中没有关于主从同步相关的配置(包括master-host、master-user、master-port)而直接运行mysqld –skip-slave-start,就有可能出现“master into structure init failed”的错误导致启动失败;在https://www.doczj.com/doc/ff14831588.html,f中添加上这几个配置,启动就能够成功;

2.2主从之间必须用不同的server-id

Q:主库和从库的server-id相同的时候,主从同步能够建立吗?

A:建立mysql的镜像同步时候,安装完mysql以后,https://www.doczj.com/doc/ff14831588.html,f中的server-id配置需要进行更改,

否则如果和从库和主库的server-id相同,在从库发送com_bin_dump命令而主库返回信息包体

时候,就会造成冲突,因为主从交互的socket包中是包括server-id这个字段的内容的;

2.3必须配置log-bin

Q:为什么重新安装一个从库,使用change master设置了主从同步以后,从库却无法同步主库中的sql?A:主库上面没有配置相关log-bin时候没有同步;

配置项log-bin所指向的binlog文件是专门用于主从同步,在主库上没有设置log-bin,这个时候从库由于没有主库上的binlog文件可以读取,就无法实现。

log-bin指向的binlog文件中记录所有主库中执行成功的更新sql,查询sql、执行不成功的sql、回滚事务的sql不会记录到binlog文件中。binlog中的记录的单位是一个个的event,对于同步比较重要的event有rotate 和query事件。

2.4配置项log-slave-updates

Q:在fc-web的数据库和fc-sfrd数据库搭建数据库镜像同步的时候,发现主库中的binlog文件被从库接收并写入到从库本地的log文件,但是查看从库的数据表中对应的数据,却还是之前没有更改的,与主库不一致;这是为什么?

A:这个问题的原因是在建立主从同步的时候,默认从库只记录主库上面同步下来的同步sql,而对于是否执行,则最后由配置项log-slave-updates指定,添加这个配置项,则数据库从库按照从主库上面同步的下来的bin-log文件进行同步。

通常情况,从服务器从主服务器接收到的更新不记入它的二进制日志。该选项告诉从服务器将其SQL线程执行的更新记入到从服务器自己的二进制日志。为了使该选项生效,还必须用—logs-bin选项启动从服务器以启用二进制日志。

2.5四升五必须考var包

Q:不管是线上还是测试环境里面,当涉及到mysql4和mysql5建立同步,主库是4从库是5的时候必须拷贝var包的方式,这是为什么?

A:创建mysql4到mysql5的同步时候必须使用拷贝var包的形式的原因

Shifen系统的sfrd的数据库使用的版本是5.0.19,sf-web使用的版本是4.0.16,而这两个版本对decimal 类型超过定义小数点位进行取舍时候,采用的策略不一样。4.0.16是直接将多余的小数点位截断,而5.0.19则是进行四舍五入。

对于4.0.16执行

use test;

create table t(a decimal(10,2) unsigned NOT NULL default ‘0.00’);

insert into t values(‘1.456’);

select * from t;

+------+

| a |

+------+

| 1.45 |

+------+

而对于5.0.19执行

use test;

create table t(a decimal(10,2) unsigned NOT NULL default ‘0.00’);

insert into t values(‘1.456’);

select * from t;

+------+

| a |

+------+

| 1.46 |

+------+

如果采用各自版本的自己的建表语句,对decimal的数据类型就会因为处理策略不同而引入数据不一致的问题。所以不能采用在主库上面建表,然后同步到从库上面的方式进行同步,必须使用停止数据库,然后拷贝var包的方式进行主从同步的建立。

目前进行的数据库4升5,将对数据库版本进行统一,之后mysql5到mysql5的同步镜像是否就可以直接使用建库建表sql,然后load data from master的方式进行数据的拷贝和数据库的同步。

2.6主从同步中忽略掉指定的表

Q:如何配置从库,使得同步的时候忽略主库中指定的数据表?

A:在从库的https://www.doczj.com/doc/ff14831588.html,f中添加配置项replicate-ignore-table的选项,就可以忽略指定的表

replicate-ignore-table = MAIN.JHF_ALIVE

replicate-ignore-table = MAIN.JHF_UN

replicate-ignore-table = mysql.%

replicate-ignore-table = test.%

2.7只同步指定的表

Q:如何配置从库,使得从库只同步主库中的指定的数据表?

A:在https://www.doczj.com/doc/ff14831588.html,f中添加配置项replicate-do-table的选项,就可以忽略指定的表

replicate-do-table = MAIN.JHF_ALIVE

replicate-do-table = MAIN.JHF_UN

replicate-do-table = mysql.%

replicate-do-table = test.%

Mysql性能的一般结论

3.更新sql的性能

3.1更新类型sql的最大速度

在没有读请求的情况下,使用线上的update的sql,mysql的执行速度非常的快,达到每秒6000个update 的sql(使用dbpress开启16个线程,按照10000sql/s来发送,最高每秒能够发送6000个sql);有必要说明的是线上update的sql都是比较规范,类似这样的格式update where col=val(其中col为数据库表的索引列)的格式,mysql在解析这样的sql的时候运行速度很快;另外值得一提的是,对于用or连接起来的含有多个where条件的sql,如果每一列都是索引列的时候,执行速度也是很快的,例如sql:DELETE FROM SF_https://www.doczj.com/doc/ff14831588.html,ermaps WHERE fatuid = '1139751' OR sonuid = '1139751' 在数据库中的执行速度也是很快的,因为where条件中的两列在表中都定义成了索引列,下面是线上的表SF_https://www.doczj.com/doc/ff14831588.html,ermaps的定义

CREATE TABLE `usermaps` (

`maptype` smallint(5) unsigned NOT NULL default '0',

`sonuid` int(10) unsigned NOT NULL default '0',

`fatuid` int(10) unsigned NOT NULL default '0',

`addtime` datetime NOT NULL default '0000-00-00 00:00:00',

UNIQUE KEY `sonuid`(`sonuid`),

KEY `fatuid`(`fatuid`)

) ENGINE=InnoDB

3.2影响更新sql执行时间的主要因素

从性能测试的结果上看,当没有其他的操作和select的sql的时候,下面两个因素会影响更新sql的处理时间:第一是sql语句本身的大小,第二是这条sql语句所影响到的数据库里面记录的个数;当sql语句本身的长度比较短的时候,无论是delete语句还是update语句,满足where条件的记录个数对于sql语句本身的执行时间基本上影响不是很大。

3.3比较短的更新sql

下面两个图能够说明一些问题,当Update sql很短时(update SF_Other.tradecore set guidedata='z’)很短的时候,在mysql中update的sql语句执行时间保持在一定范围内基本不变:

下图中1B的update语句是指update SF_Other.tradecore set guidedata='z’中记录选取的引号里面的字符'z’是1B长

对于delete语句,也有类似的效果,Delete语句为简单删除语句,如delete from SF_Other.tradecore where tradeid < 10;执行时间随着影响记录条数的变化增长,但是增加并不明显

3.4比较大的更新sql

但是,当sql的长度比较大的时候,mysql中的执行时间就会随着影响的记录个数出现显著的增长

例如下图,当sql长度为60KB的时候,就会出现上述的执行时间显著增加的情况

4.关于mysql检索性能测试

有关mysql的性能测试中,sql语句是整个测试的基础工作,好的sql语句能够比mysql配置的调优效果明显很多,这也是整个和mysql有关的性能测试的基础工作。

4.1索引不止一倍提高检索速度

where语句中表达式有无索引对于查找效率很关键;

在测试sfrd3.0的fcbm模块的时候,发现导出基准时间很长,3000w记录一天都没有完全导出,查看的原因是创建数据表的时候建表sql中没有对planinfo表的planid字段设置索引;设置完索引以后导出速度明显加快,一个小时就把基准文件生成完成;

4.2使用in比单条更快

在select的条件语句中使用in的效率比直接使用单条sql要快。

在sfrd3.0的测试过程中,fcout导出增量文件的速度过慢。之前的方式是每个id都使用select * from table where id=,现在的方案是每次先把所有的id都找到,然后将sql聚类以后,采用select……in的方式速度提升一倍。

4.3比较符号比limit的效率高

测试sfrd3.0时候发现,同样在where条件中按照索引进行查找,使用limit的时候,会进行全表遍历;而在使用两个比较的时候只是跟进索引进行条件查找,由于mysql的索引(大部分情况下是b-树)支持这种><的查找类型,所以需要查找的记录数量要小于直接limit查找的记录数目。

效率低的sql:

select * from SF_Output.sfevent where eventid > %llu and eventid < %llu order by eventid

查看在mysql中的执行

explain select * from SF_Output.sfevent where eventid > 1000 and eventid < 2000 order by eventid;

+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+

| 1 | SIMPLE | sfevent | range | PRIMARY | PRIMARY | 8 | | 1976 | Using where |

+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+

改造后的sql:

select * from SF_Output.sfevent where eventid > %llu order by eventid limit 1000;

查看在mysql中的执行

explain select * from SF_Output.sfevent where eventid > 1000 order by eventid limit 1000;

+----+-------------+---------+-------+---------------+---------+---------+------+-----------+-------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+---------+-------+---------------+---------+---------+------+-----------+-------------+

| 1 | SIMPLE | sfevent | range | PRIMARY | PRIMARY | 8 | | 131499744 | Using where |

+----+-------------+---------+-------+---------------+---------+---------+------+-----------+-------------+

去掉order by以后

explain select * from SF_Output.sfevent where eventid > 1000 limit 1000;

+----+-------------+---------+-------+---------------+---------+---------+------+-----------+-------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+---------+-------+---------------+---------+---------+------+-----------+-------------+

| 1 | SIMPLE | sfevent | range | PRIMARY | PRIMARY | 8 | | 132196410 | Using where |

+----+-------------+---------+-------+---------------+---------+---------+------+-----------+-------------+

在sfevent表中有258777832条记录,满足limit中的where条件的也有258831238,而使用limit查找的rows 是131499744,很显然limit也不是全表查找,是采用自己的方法进行优化过,具体limit优化策略如何呢?还需要进一步跟进。

select count(*) from SF_Output.sfevent;

+-----------+

| count(*) |

+-----------+

| 258777832 |

+-----------+

select count(*) from SF_Output.sfevent where eventid > 1000;

+-----------+

| count(*) |

+-----------+

| 258831238 |

+-----------+

5.各种数据类型的处理

在mysql中存在着纷繁的数据类型,并且各种数据类型都是能够彼此运算的,不过要想在mysql中得到正确运算的结果却要遵循mysql的规则,甚至是由于mysql自身设计上面的bug会导致数据运算和比较的时候得到一个出乎我们意料的结果,尤其是5.0.45版本的mysql对于数据类型也并非我们想象的那样正确和准确。对于数据类型的处理,无外乎比较运算和算术运算两种类型。

5.1数据类型的转换规则

在Mysql中,各种的运算遵循一定得规则,mysql内部的参加数据类型有下面几类

String:例如abcd

Double:例如‘1.11’

Int:123

Decimal:1.11

算数运算(+-*/ %)的类型转换规则如下:

a)如果操作数中有一个是字符串型,结果为双精度

b)如果操作数中有一个是decimal型,结果为38位decimal

c)其它情况结果为long

MySQL中的伪代码如下(r0和r1是两个操作数):

(2)当做比较操作(=, >=, >, <=, <, !=)时,转换规则规则如下:

a)如果两个操作数都是字符串型,则使用字符串比较的方法

b)如果两个操作数都是long,则使用数字比较的方法

c)如果decimal和long比较,则使用decimal比较的方法

d)其它情况采用real比较的方法

e)在每种比较方法中,都是先将两个操作数转换为相应的类型在进行比较。如,long比较方法中,将两个操作数(a, b)转换为long类型,再用整数比较方法进行比较;

MySQL中的伪代码如下(a和b是两个操作数)

需要说明的是,在mysql中的有关double和real类型的计算是不够准确,例如所以一旦出现使用double或者real逻辑的地方就有可能会出现准确性的问题。

5.2在mysql中慎用引号

双引号或者是单引号引起来的数字和其他数字之间的运算,mysql在内部在计算结果的时候使用的类似于c 中double运算,所以在赋值的时候存在不够精确而在查找比较运算的时候结果不准确的问题。

赋值的时候不精确的例子,对一个int列赋值,可以看到加引号和不加引号采取的截断方法是完全不一样的,不加引号的时候,一个四舍五入的方法,另外一个则是直接截断。

insert into table_23_alltype set xint='1.0'/'2';

select xint from table_23_alltype where caseid=1;

+------+

| xint |

+------+

| 0 |

+------+

insert into table_23_alltype set xint=1.0/2,caseid=2;

select xint from table_23_alltype where caseid=2;

+------+

| xint |

+------+

| 1 |

+------+

查找的时候比较运算不准确,写入得数值使用原有的计算未必可以检索出来

对于decimal类型的列

mysql> insert into table_23_alltype set xdecimal=18 + 4.5,xtext="",xmtext="",caseid=200;

Query OK, 1 row affected (0.00 sec)

不加引号可以检索处理

mysql> select caseid,xdecimal from table_23_alltype where xdecimal=18 + 4.5;

+--------+------------------------+

| caseid | xdecimal |

+--------+------------------------+

| 200 | 22.5000000000000000000 |

+--------+------------------------+

1 row in set (0.00 sec)

添加引号以后就无法检索出来

mysql> select caseid,xdecimal from table_23_alltype where xdecimal=18 + '4.5';

Empty set (0.00 sec)

插入的时候添加引号,检索的时候也添加引号还是无法检索出来

mysql> insert into table_23_alltype set xdecimal='18' + '4.5',xtext="",xmtext="",caseid=222;

Query OK, 1 row affected (0.00 sec)

mysql> select caseid,xdecimal from table_23_alltype where xdecimal='18' + '4.5';

Empty set (0.00 sec)

去掉引号的时候可以

mysql> select caseid,xdecimal from table_23_alltype where xdecimal=18 + 4.5;

+--------+------------------------+

| caseid | xdecimal |

+--------+------------------------+

| 222 | 22.5000000000000000000 |

+--------+------------------------+

1 rows in set (0.00 sec)

在mysql中,如果decimal的列和string列进行比较,会当做string类型统一比较。这样的情况下,不仅记录的结果和比较值要相等,位数也要一样,才会得到比较的结果为真。

从中可以看到mysql处理添加引号的数字的时候规则是比较晦涩的,建议在使用sql的时候不要给数值加上引号,这会导致一些无法预料的情况出现,目前web端的sf-lib中对sql中的数值都是加引号的,存在一定风险,建议去掉;

5.3BIGINT不是INT

BIGINT在比较的时候采取一种和int截然不的逻辑,对于int列,a = 5.1在a为5时是不成立的,对于bint 列则不然。

这是因为在int列比较时,记录中的数值转成decimal类型处理,而在BIGINT列比较时,转成BIGINT类型处理。

例如

对于int列,a = 5.1在a为5时是不成立的

mysql> insert into table_23_alltype set xint=5,caseid=15;

Query OK, 1 row affected (0.00 sec)

mysql> select caseid,xint from table_23_alltype where xint=5.1;

Empty set (0.00 sec)

对于bint列则不然,a=5.1是能够成立

mysql> insert into table_23_alltype set xbint=5,caseid=5;

Query OK, 1 row affected (0.00 sec)

mysql> select caseid,xbint from table_23_alltype where xbint=5.1;

+--------+-------+

| caseid | xbint |

+--------+-------+

| 5 | 5 |

+--------+-------+

1 row in set (0.00 sec)

5.4text列

对于text的列在创建主键的时候,必须指定为主键的text的列的字段长度,例如下面的建表sql在mysql 中执行失败,报错BLOB/TEXT column 'c4_xtext' used in key specification without a key length

对于text的列在创建主键的时候,必须指定为主键的text的列的字段长度,例如

CREATE TABLE `table_5col_maxlen` (

`c1_caseid` bigint(20) NOT NULL default '0',

`c2_xchar` char(255) NOT NULL default 'a',

`c3_xvarchar` varchar(255) NOT NULL default 'a',

`c4_xtext` text NOT NULL,

`c5_xmtext` mediumtext NOT NULL,

PRIMARY KEY (`c1_caseid`,`c4_xtext`)

) ENGINE=InnoDB;

而增加长度限制就可以使得这个成功

CREATE TABLE `table_5col_maxlen` (

`c1_caseid` bigint(20) NOT NULL default '0',

`c2_xchar` char(255) NOT NULL default 'a',

`c3_xvarchar` varchar(255) NOT NULL default 'a',

`c4_xtext` text NOT NULL,

`c5_xmtext` mediumtext NOT NULL,

PRIMARY KEY (`c1_caseid`,`c4_xtext`(10))

) ENGINE=InnoDB;

另外,对于text类型的不能够有默认值,除非默认值是单引号,这个时候mysql会给出warning,例如:CREATE TABLE `table_5col_maxlen` (

`c1_caseid` bigint(20) NOT NULL default '0',

`c2_xchar` char(255) NOT NULL default 'a',

`c3_xvarchar` varchar(255) NOT NULL default 'a',

`c4_xtext` text NOT NULL default '',

`c5_xmtext` mediumtext NOT NULL default '',

PRIMARY KEY (`c1_caseid`,`c4_xtext`(10))

) ENGINE=InnoDB;

Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> show warnings\G

+---------+------+---------------------------------------------------------+

| Level | Code | Message |

+---------+------+---------------------------------------------------------+

| Warning | 1101 | BLOB/TEXT column 'c4_xtext' can't have a default value |

| Warning | 1101 | BLOB/TEXT column 'c5_xmtext' can't have a default value |

+---------+------+---------------------------------------------------------+

直接给出默认值,则连建表都失败

drop table table_5col_maxlen;

CREATE TABLE `table_5col_maxlen` (

`c1_caseid` bigint(20) NOT NULL default '0',

`c2_xchar` char(255) NOT NULL default 'a',

`c3_xvarchar` varchar(255) NOT NULL default 'a',

`c4_xtext` text NOT NULL default 'a',

`c5_xmtext` mediumtext NOT NULL default 'a',

PRIMARY KEY (`c1_caseid`,`c4_xtext`(10))

) ENGINE=InnoDB;

上面的建表sql在mysql中执行失败,提示ERROR 1101 (42000): BLOB/TEXT column 'c4_xtext' can't have a default value

5.5汉字处理

在mysql4中的var包拷贝到mysql5下面,使用的还是mysql4的默认编码格式latin1。使用mysql4客户端连接mysql4的时候,如果不设定连接使用的字符集为gb2312或者是gbk,将使用mysql4的默认字符编码latin1;同样的,如果是c程序去连接mysql4的服务器,当前连接的默认字符集仍然是latin1;

最根本的解决这个默认字符集的问题的办法是使用mysql5的客户端将mysql4服务器中的数据导出(select into outfile或者是mysqldump),再灌入到mysql5的数据库中去(mysqlimport或者是source),这样mysql5 就使用的是自己设置字符集(如gbk)去处理当前连接,而不是像拷贝var包的时候才用的latin1的字符集。

要设置当前c程序和mysql服务器连接所使用的字符集,使用函数mysql_set_character_set(MYSQL *mysql, char *csname)即可;

MySQL5.6.14下载、安装及配置安装图文教程

说明 5.6.14是一个稳定的发布版本,比较稳定的,安装包比5.5大很多,因为集成了32位和64位的,网上有人做过测试,性能比5,5强很多,于是果断选5.6,下面开始安装. 下载及安装MySQL 自MySQL版本升级到5.6以后,其安装及配置过程和原来版本发生了很大的变化,下面详细介绍5.6版本MySQL的下载、安装及配置过程。 s 图1.1 MySQL5.6 目前针对不同用户,MySQL提供了2个不同的版本: MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持。 MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话及文档等技术支持。 目前最新的MySQL版本为MySQL 5.6,可以在官方网站(https://www.doczj.com/doc/ff14831588.html,/downloads/)上面下载该软件。在下图1.2所示的MySQL官网上单击右下角的“MySQL Installer 5.6”超链接,然后按照提示一步步操作就可以将MySQL软件下载到本地计算机中了。注意这里我们选择的是数据库版本是“Windows (x86, 32-bit), MSI Installer”,如下图1.3所示。 图1.2 MySQL官方网站 图1.3 选择MySQL版本 MySQL下载完成后,找到下载到本地的文件,按照下面所示的步骤双击进行安装: 步骤1:双击MySQL安装程序(mysql-installer-community-5.6.10.1),会弹出如下图1.4所示的欢迎窗口。

CoreSeekMysql安装与测试ForMacOSX

CoreSeek Mysql 安装及测试For Mac OS X(中文分词及中文全文检索)CoreSeek安装比较麻烦,官方手册对此的支持并不算很好。CoreSeek是基于Sphinx的中文的分词和全文检索软件。本文是在MAC OS X系统下安装和调试CoreSeek。 安装过程中报错如果是警告warning则忽略,如果是错误error,则必须要处理。 CoreSeek是支持三种数据来源的,一种是众所周知的Mysql,一种是XML文件,另一种是Python。而Python则是万能数据类型。在本CoreSeek安装测试教程中只示例数据源是XML文件和MYSQL。 官方手册地址: 一、设置环境变量 $ export PATH=/usr/local/bin:$PA TH $ export LC_ALL=zh_CN.UTF-8 $ export.UTF-8 二、安装依赖库:m4、autoconf、automake、libtool。 注意:不要brew install 来安装,因为对安装的库的版本有要求。 $ curl -O -L $ tar -xzvf m4-1.4.13.tar.gz $ cd m4-1.4.13 $ sudo ./configure --prefix=/usr/local/opt $ sudo make

$ sudo make install $ cd .. $ curl -O -L $ tar -xzvf autoconf-2.65.tar.gz $ cd autoconf-2.65 $ sudo ./configure --prefix=/usr/local/opt $ sudo make $ sudo make install $ cd .. $ curl -O -L $ tar xzvf automake-1.11.tar.gz $ cd automake-1.11 $ ./configure --prefix=/usr/local/opt $ sudo make $ sudo make install $ cd .. $ curl -O -L $ tar xzvf libtool-2.2.6b.tar.gz $ cd libtool-2.2.6b

linux中的Mysql的安装与检测

Ubuntu(linux)中的Mysql 的安装与检测 一、前言 二、安装Mysql 1、下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQL-server-5.0.9-0.i386.rpm MySQL-client-5.0.9-0.i386.rpm 下载地址为:https://www.doczj.com/doc/ff14831588.html,/downloads/mysql/5.0.html,打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。 2、安装MySQL rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是–ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。 1)安装服务器端 在有两个rmp文件的目录下运行如下命令: [root@test1 local]# rpm -ivh MySQL-server-5.0.9-0.i386.rpm 显示如下信息。 warning: MySQL-server-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5 Preparing... ########################################### [100%] 1:MySQL-server ########################################### [100%] 。。。。。。(省略显示) /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h test1 password 'new-password' 。。。。。。(省略显示) Starting mysqld daemon with databases from /var/lib/mysql 如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。 [root@test1 local]# netstat -nat Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 上面显示可以看出MySQL服务已经启动。 2)安装客户端 运行如下命令: [root@test1 local]# rpm -ivh MySQL-client-5.0.9-0.i386.rpm warning: MySQL-client-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5

MySQL详细安装图解

MySQL详细安装图解 我们以mysql-5.0.27-win32.exe为例,双击解压缩,运行“setup.exe”,出现如下界面 MySQL安装向导启动,按“Next”继续 选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程

在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(MySQL服务器)”、“Client Programs(MySQL客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。 填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。

Back返回刚才的界面,按“Next”继续 确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。

正在安装中,请稍候,直到出现下面的界面 这里“Create a new free https://www.doczj.com/doc/ff14831588.html, account”是询问你是否要注册一个https://www.doczj.com/doc/ff14831588.html,的账号,或是“Login to https://www.doczj.com/doc/ff14831588.html,”使用已有的账号登陆https://www.doczj.com/doc/ff14831588.html,,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。

MySQL安装图解

下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下! 打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面 mysql安装向导启动,按“Next”继续

选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程 在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。

填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。 返回刚才的界面,按“Next”继续

确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。 正在安装中,请稍候,直到出现下面的界面

这里是询问你是否要注册一个https://www.doczj.com/doc/ff14831588.html,的账号,或是使用已有的账号登陆https://www.doczj.com/doc/ff14831588.html,,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。 现在软件安装完成了,出现上面的界面,这里有一个很好的功能,mysql配置向导,不用向以前一样,自己手动乱七八糟的配置my.ini了,将“Configure the Mysql Server now”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。

MySQL试题-测试、复习、查看

设计三张表 创建student表(学生表) Create table student(Sid tinyint primary key auto_increment,Sname char(10),Sex char(5),Sage tinyint,Sdept char(20)); insert into student(Sid,Sname,Sex,Sage,Sdept) values(1,'张三','女',20,'IT '); insert into student(Sid,Sname,Sex,Sage,Sdept) values(2,'李四','女',25,'info '); insert into student(Sid,Sname,Sex,Sage,Sdept) values(3,'王五','男',22,'en '); insert into student(Sid,Sname,Sex,Sage,Sdept) values(4,'马云','女',28,'ch'); insert into student(Sid,Sname,Sex,Sage,Sdept) values(5,'赵子龙','女',18,'info '); insert into student(Sid,Sname,Sex,Sage,Sdept) values(6,'王小','女',21,'info '); insert into student(Sid,Sname,Sex,Sage,Sdept) values(7,'赵龙龙','男',24,'en '); 创建course表(课程表) Create table course(Cid tinyint primary key auto_increment,Cname char(20),Ccredit tinyint); insert into course values(1,'数据结构',5); insert into course values(2,'数据库',10); insert into course values(3,'英语',3); insert into course values(4,'数学',6); 创建sc表(选课表) create table sc(Sid tinyint,Cid int,Grade int); insert into sc values(1,1,65); insert into sc values(1,2,60); insert into sc values(1,4,90); insert into sc values(1,3,50); insert into sc values(2,2,100); insert into sc values(3,1,90); insert into sc values(6,2,70); insert into sc values(4,4,90); insert into sc values(5,1,95); insert into sc values(6,1,80); insert into sc values(7,3,80); 创建admin表 create table admin(id int(10),qq int(20),uid int(5)); 创建province表 create table province(id int(10) primary key auto_increment,pname varchar(30)); insert into province(id,pname) values(2,'上海'); insert into province(id,pname) values(3,'广州'); insert into province(id,pname) values(4,'成都'); 创建student2表 create table student2(id int(10) primary key auto_increment,name varchar(30),pid int(10),foreign key(pid) references province(id) on delete cascade); 正则查询建表 创建表user两个字段一个id一个name

mysql安装图解、mysql5.6.10安装详细图文教程

mysql安装图解、mysql5.6.10安装详细图文教程 出处:西西整理作者:西西日期:2013-3-22 16:14:08 [大中小] 评论: 1 | 我要发表看法 MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持,MySQL 的执行性能非常高,运行速度非常快,并非常容易使用。是一个非常捧的数据库,PHP 和MYSQL完美组合。 MYSQL 5.6.10 for win32 英文官方安装版评分: 4.0 类别:数据库类大小:139.4M 语言:英文 查看详细信息>> 下载337 次 下面的是MySQL安装的图解,用的可执行文件安装的,双击解压缩,运行“setup.exe”,出现如下界面 mysql安装图文教程1

mysql安装向导启动,按“Next”继续 mysql图文安装教程2 选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程: mysql图文安装教程3 在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server (mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation

(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。 mysql图文安装教程4 填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。 mysql图文安装教程5 返回刚才的界面,按“Next”继续

Mysql性能测试报告

一、MySQL数据库性能测试 硬件配置: 3台服务器:192.168.23.168, 192.168.23.169, 192.168.23.170 硬盘:230G 内存:16G Linux内核:https://www.doczj.com/doc/ff14831588.html, 2.6.32-131.17.1.el6.x86_64 #1 操作系统:Scientific Linux release 6.1 (Carbon) 软件工具: Mysql5.1 (存储引擎Myisam) Mysqlslap(测试工具) 数据库和表 CREATE DATABASE myisamtest; CREATE TABLE `t1_disk` ( `f1` int(10) NOT NULL AUTO_INCREMENT, `f2` datetime DEFAULT NULL, `f3` varchar(200) DEFAULT NULL, PRIMARY KEY (`f1`) ) ENGINE=myisam AUTO_INCREMENT=1000001 DEFAULT CHARSET=gbk; 字段f1有索引,f3无索引 数据记录: 1亿条记录 2亿条记录 一、数据插入测试 测试场景: 定义一个插入10000条记录的存储过程,如下: DELIMITER$$ DROP PROCEDURE IF EXISTS `p_test_t1_disk` $$ CREATE DEFINER=`root`@`%` PROCEDURE `p_test_t1_disk`() BEGIN declare i int default 0; test:loop insert into ndbtest.t1_disk(f2,f3) values(sysdate(),md5(rand())); set i=i+1; If i >=10000 then leave test; end if; end loop; END$$ DELIMITER; 然后使用测试工具mysqlslap执行测试: mysqlslap--concurrency=200 --iterations=1 --query="callmyisamtest.p_test_t1_disk;" --number-of-queries=10000 -uroot -p1234 -h192.168.23.168 --create-schema=myisamtest

MySQL图文详细安装教程

MySQL5安装教程 注:本教程针对的操作系统是Windows 2003 Server 首先去官方下载MySQL的一个版本,本教程以MySQL-5.5.6为例,以下是mysql-5.5.6-rc-win32.msi 的官方下载地址:https://www.doczj.com/doc/ff14831588.html,/downloads/mysql(官方可能不定期更新版本,安装方法类似)。 双击运行下载好的mysql-5.5.6-rc-win32.msi程序,出现“MySQL Server 5.5安装”窗口,如下图所示: MySQL安装向导启动,点击Next(下一步)按钮继续,出现“License Agreement(许可证协议)窗口”,如下图所示:

勾选窗口下方的复选框I accept the terms in the License Agreement(我同意许可证协议条款),点击Next(下一步)按钮继续,出现选择“Choose Setup Type(选择安装类型)”窗口,如下图所示: 有“Typical(默认)”、“Custom(用户自定义)”、“Complete(完全)”三个选项,在此选择“Custom (用户自定义)”选项,这样有更多的选项,也方便熟悉安装过程,点击Next(下一步)按钮继续,出现“Custom Setup(自定义安装)”窗口,如下图所示:

在“Developer Components(开发者部分)”上左键单击,选择“Enter feature will be installed on local hard drive(在本地磁盘上安装全部文件)”,在上面的“MySQL Server(MySQL服务器)”、“Debug Symbols (错误标志)”、“Server data files(服务器数据文件)”也如此操作,以保证安装所有文件,点选“Browse...(浏览…)”,出现“Change destination folder(改变安装目录)”窗口,如下图所示: 手动指定安装目录,也可以选择下拉列表,我的是“D: \MySQL\”,建议不要带空格,不要放在与操作系统同一分区内,这样可以防止系统备份还原的时候,数据被清空,按“OK(确定)”返回刚才的“自定义安装”界面,点击Next(下一步)按钮继续,出现“准备安装MySQL Server 5.5”窗口,如下图所示:

MySQLMM+KeepAlived高可用架构部署测试

MySQL MM+KeepAlived高可用架构部署测试 马飞 2017-2-23

一、环境准备 1.1 操作系统信息 安装三台CentOS6.7 64位操作系统。采用最小安装模式。 sed -i 's/=enforcing/=disabled/g' /etc/selinux/config service itpables stop chkconfig iptables off 1.2 配置NTP同步时间 yum -y install ntp vi /etc/ntp.conf 增加3个时间服务器 server https://www.doczj.com/doc/ff14831588.html, iburst #西南地区网络中心 server https://www.doczj.com/doc/ff14831588.html, iburst #西北地区网络中心 server https://www.doczj.com/doc/ff14831588.html, iburst #东北地区网络中心 启动ntp服务 systemctl start ntpd systemctl enable ntpd 查看状态 ntpq -p 1.3 配置角色信息 主机名IP地址描述Server id Db1 192.168.8.100 Master1 1 Db2 192.168.8.101 Master2 2 Db3 192.168.8.102 Slave1 3 1.4 服务角色及描述 IP地址角色描述 192.168.8.100 ReadWriter 应用程序连接该IP对主库进写请求 192.168.8.101 ReadWriter 应用程序连接该IP对主库进写请求 192.168.8.102 Read Only 应用程序连接到该IP处理读请求 192.168.8.140 ReadWriter 应用程序连接到该虚IP处理读写请求(不直联

最详细mysql安装测试

第一步:去官方下载zip版本,然后解压到自己的目录 第二步:根据解压目录配置环境变量MYSQL_HOME(安装路径) 将此变量加入path中(%MYSQL_HOME%\bin) 第三步:进入bin找到my-default 然后复制粘贴更名为my.ini,这样数据库启动的时候会访问my.ini而不访问my-defauit 以管理员身份运行 第四步:进入C盘的:C:\Windows\System32 然后找到cmd 右键以管理员身份运行 第五步:在dos下进入安装目录下面的bin,执行mysqld install, 接着输入:net start mysql 第六步:mysql -u root -p (u后面是当前用户名字root,p后面应该跟密码,不过此时没有密码(刚安装是默认没有密码的),所以直接点击enter就会进入数据库,这是我们第一次进入数据库,此刻dos窗口会变成“-》mysql”,这代表我们进入数据库了。 第七步:接着咱们应该设计一个密码:update user set password=PASSWORD('123456′) where User='root'; 第八步:数据库已经安装完成了,密码也设计好了,接下来可以进行一些测试:(show databases 先看看我们有多少数据库,一般会有个test数据库 use test 进入该数据库 进去后我们来看看test中有多少数据表show tables; 一看哈哈没有东西,那就说明test数据库中没有任何表,没错以后我们可以用这个空数据库做测试,比如建立一些表什么的等等!好了完了,我说的已经很明白了啊,出错的再试试,祝大家早日成为老司机思密达-》来自会飞的鱼干干) 总结:相关的命令如下: 1启动数据库服务:net start mysql 2:停止数据库服务:net stop mysql 3:创建新的数据库:create database penggan; 4:展示出来当前一共有多少数据库:show databases; 5:use +数据库名字:进入该数据库 5:展示当前数据库有多少数据表:show tables;

MySQL下载安装使用全过程

1.下载MYSQL MySQL数据库安装软件有ZIP和MSI格式的,ZIP格式的需要配置环境参数,而MSI格式的可以自动配置参数。 1.打开百度搜索,输入MySQL,第一个是MySQL官网 2.点击第一个链接地址,进入MySQL官方网站,单击“Downloads”下载Tab页,进入下载界面

3.找到Community并且单击它,出现以下的页面 4.查看Community对应左侧下方选项,单击第四个“MySQL Community Server”

5.进入MySQL选项下载列表,选择版本 6.单击第五步中列表的“Download”按钮,进入下载页面

7.下载页面有注册登录按钮,也有不用登录的选项(No thanks,just start my download.),选择不用注册登录选项,进入下载状态 8.下载 9.下载完毕,如下图

2.安装MYSQL(ZIP格式) MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装在C:\Program Files\mysql\mysql-5.6.27-win32该目录中;zip 格式是自己解压,解压缩之后其实MySQL就可以使用了,但是要进行配置。 1.解压文件 解压之后可以将该文件夹改名,放到合适的位置,个人建议把文件夹放到C:\Program Files\mysql\mysql-5.6.27-win32路径中。当然你也可以放到自己想放的任意位置 2.配置环境变量 配置环境变量很简单: 我的电脑->属性->高级->环境变量 选择PATH,在其后面添加:你的mysql bin文件夹的路径(如:C:\Program Files\mysql\mysql-5.6.27-win32\bin) PATH=.......;C:\Program Files\mysql\mysql-5.6.27-win32\bin(注意是追加,不是覆盖)

mysql安装图解 mysql图文安装教程(详细说明)

MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.91是最新的稳定版本。 mysql 下载地址 下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql 安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面 mysql安装图文教程1 mysql安装向导启动,按“Next”继续

mysql图文安装教程2 选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程: mysql图文安装教程3

在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。 mysql图文安装教程4 填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。

mysql图文安装教程5 返回刚才的界面,按“Next”继续 mysql图文安装教程6 确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。

如何安装并测试MySQL

如何安装并测试MySQL PHP+MySQL+Linux目前已逐渐成为小型web服务器的一种经典组合。在Windows环境下构筑和调试MySQL数据库是许多网站开发者的一种首选。本人在Windows98环境下初学MySQL,现将学习过程与经验总结出来供大家参考。 1、下载mysql-3.23.35-win.zip并解压; 2、运行setup.exe;选择d:\mysql,"tyical install" 3、启动mysql,有如下方法: 方法一:使用winmysqladmin 1)、进入d::\mysql\bin目录,运行winmysqladmin.exe,在屏幕右下角的任务栏内会有一个带红色的图符 2)、鼠标左键点击该图符,选择“show me”,出现“WinMySQLAdmin”操作界面;首次运行时会中间会出现一个对话框要求输入并设置你的用户名和口令 3)、选择“My.INI setup” 4)、在“mysqld file”中选择“mysqld-opt”(win9x)或“mysqld-nt”(winNT) 5)、选择“Pick-up or Edit my.ini values”可以在右边窗口内对你的my.ini文件进行编辑 6)、选择“Save Modification”保存你的my.ini文件 7)、如果你想快速使用winmysqladmin(开机时自动运行),选择“Create ShortCut on Start Menu” 8)、测试: 进入DOS界面; 在d:\mysql\bin目录下运行mysql,进入mysql交互操作界面 输入show databases并回车,屏幕显示出当前已有的两个数据库mysql和test 方法二:不使用winmysqladmin 1)、在DOS窗口下,进入d:/mysql/bin目录 2)、win9X下)运行: mysqld 在NT下运行: mysqld-nt --standalone 3)、此后,mysql在后台运行 4)、测试mysql:(在d:/mysql/bin目录下)

MySQL 64_32位安装详细图解(图文)

win7 32/64位安装MySQL详细步骤(图文) 在安装这个MySQL之前一定要卸干净之前的软件。google到一些方法来尝试,这里分 享一下我的做法: 1、控制面板里的增加删除程序内进行删除 2、开始->运行->regedit 进入注册表,找到以下地方(或者进入注册表后ctrl+F,查找mysql相关的都删除了) HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application \MySQL目录删除 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application \MySQL目录删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Applica tion\MySQL目录删除 3、如果这时还提示无法删除文件夹的,可以启动任务管理器—进程,把mysql的那个任务结束它,然后就可以删除了。 通过上面的操作后应该是干净的了(这是我对自己电脑的做法,如果还不行那得另找方法了),接下来进入正题。 下载安装包的可以在官网下载: https://www.doczj.com/doc/ff14831588.html,/archives.php?p=mysql-5.5&o=-win 下面以win7 64位为例: 1.下载mysql-5.5.33-winx64.msi回来并且双击安装进入欢迎界面

2.选择接受,next 3.Typical(经典型),Complete(完全安装),Custom(自定义),这里我选择Custom安装

MySQL安装版安装步骤图解

MySQL安装图解 准备: 1,开始->控制面版->管理工具->服务->MySQL服务停止 2,开始->控制面版->添加或删除程序->MySQL程序删除 3,D:\MySQL\删除MySQL文件夹 一、MYSQL的安装 1、打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”。

2、选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom”,按“next”键继续。 3、在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。 4、填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。

确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。

5、正在安装中,请稍候,直到出现下面的界面

这里是询问你是否要注册一个https://www.doczj.com/doc/ff14831588.html,的账号,或是使用已有的账号登陆https://www.doczj.com/doc/ff14831588.html,,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。继续则完成MYSQL的安装。 二、MYSQL的配置 1、安装完成了,出现如下界面将进入mysql配置向导。

mysql主从数据库同步详细配置测试步骤图例

mysql主从同步配置测试步骤图例目的: 测试主从mysql之间的数据库同步效果 测试环境: Master(主): RHEL 5.5 x86-64 Mysql.5.0.77 ip: 10.86.21.147 Slave(从): RHEL 5.5 x86-64 Mysql.5.0.77 ip: 10.86.21.146 测试数据库名称:leadtest 测试表:user Mysql账号root 密码:redhat 主服务器端建立同步测试数据库 一:配置Master的配置文件/etc/https://www.doczj.com/doc/ff14831588.html,f,供同步使用。 vi /etc/https://www.doczj.com/doc/ff14831588.html,f 在原有的基础上添加如下内容: Server_id=1 1代表主端2代表从端 binlog-do-db=leadtest要同步的数据库 log-bin=mysql-bin 数据库二进制日志

二:重新启动/etc/init.d/mysqld restart 三:mysql–u root –p 在主端上登陆mysql服务器 四:创建库:create database leadtest; 然后我们要添加一个MySQL帐号为同步专用的用户,这里以root用户为例子,同步账号必须要有对操作数据库的增删改查权限 同步账号实质上是供从端使用的。 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'redhat' WITH GRANT OPTION; 这句的意思说允许root用户以redhat为密码从任意网段远程登陆10.86.21.147(主端)

保存退出,/etc/init.d/mysqld restart 重启服务即可。 Slave端的配置: 一:安装slave端的Mysql。安装步骤与主端一样。 安装完成以后启动mysqld服务,检查是否可以正常启动/登陆 /etc/init.d/mysqld start 二:测试是否可以登陆到本地的mysql服务器mysql -u root -p 三:修改slave(从端)的配置文件/etc/https://www.doczj.com/doc/ff14831588.html,f,供同步使用。 Vi /etc/https://www.doczj.com/doc/ff14831588.html,f 在原有的基础上添加如下内容: server-id=2 master-host=10.86.21.147 主端地址 master-user=root 同步专用用户(主端提供的用户) master-password=redhat该用户的密码 master-port=3306 主端mysql端口 master-connect-retry=60断开重连次数 replicate-do-db=leadtest接受要同步的数据库

MySQL SQL常用语句自我测试练习

MySQL SQL常用语句自我测试练习 1.建库建表 --create database company create database company; use company; --create tables --部门表 create table dept ( deptno int(3) primary key, dname varchar(14), loc varchar(13) ); --雇员表 create table emp ( empno int(4) not null primary key, ename varchar(10), job varchar(10), mgr int(4), hiredate datetime, sal double, comm double, deptno int(3), foreign key(deptno) references dept(deptno) ); --工资级别表 create table salgrade (

grade int(3) primary key, losal int(3), hisal int(3) ); ---------------------------------------------------------------------------------------------------------------------------------------- 2.插入数据(进行初始化) use company; --往部门表中查数据 insert into dept values(10,'Accounting','New York'); insert into dept values(20,'Research','Dallas'); insert into dept values(30,'Sales','Chicago'); insert into dept values(40,'Operations','Boston'); insert into dept values(50,'Admin','Washing'); --往雇员表中插数据 insert into emp values(7369,'Smith','Clerk',7902,'1980-12-17',800,0,20); insert into emp values(7499,'Allen','Salesman',7698,'1981-2-20',1600,300,30); insert into emp values(7844,'Turner','Salesman',7499,'1981-9-8',1500,0,30); insert into emp values(7698,'Tom','Manager',0,'1981-9-8',6100,600,40); insert into emp values(7876,'Adams','Clerk',7900,'1987-5-23',1100,0,20); insert into emp values(7900,'James','Clerk',7698,'1981-12-3',2400,0,30); insert into emp values(7902,'Ford','Analyst',7698,'1981-12-3',3000,null,20); insert into emp values(7901,'Kik','Clerk',7900,'1981-12-3',1900,0,30); --往工资级别表中插数据 insert into salgrade values(1,700,1200); insert into salgrade values(2,1201,1400); insert into salgrade values(3,1401,2000); insert into salgrade values(4,2001,3000); insert into salgrade values(5,3001,5000); insert into salgrade values(6,5001,10000);

相关主题
文本预览
相关文档 最新文档