mysql 创建用户

从mysql5.0转到mysql5.5只是因为分区表。

root用户登录后,

创建数据库,Create DATABASE IF NOT EXISTS sub_orcldefault charset utf8 COLLATE utf8_general_ci;

创建用户:GRANT ALL PRIVILEGES ON sub_orcl.* TO mobile@'%';

然后: msyql -umobile -pmobile ,登录失败,一顿谷歌度娘之后仍无结果。郁闷的认为mysql5.5不支持'%';无意中键入mysql -umobile 竟然能登录。。。

最后才发现创建用户时没指定密码,各种汗颜,好吧,都是粗心惹的祸。

重新创建用户 grant all privileges on sub_orcl.* to mobile@'%' identified by 'mobile';

想要使用分区表,首先查看当前版本是否支持分区表:

SHOW VARIABLES LIKE '%partition%';

查看编码
show variables like 'character%';
SHOW VARIABLES LIKE 'collation%';

查看版本
SELECT VERSION();

发现使用的5.0版本。MySQL 5.1 及更高版本支持分区表(partitioned table)。火速下载个5.5。

mysql对于分区表的索引有限制,要求必须包含于主键字段内。

CREATE TABLE test
(
id INT(38) NOT NULL primary key  AUTO_INCREMENT,
ptnum INT(8),
NAI VARCHAR(256) NOT NULL
)
PARTITION BY RANGE (ptnum)(
PARTITION par1 VALUES LESS THAN(20120101),
PARTITION pmax VALUES LESS THAN MAXVALUE
)
;

这个注定要悲剧了。转而使用复合主键:

CREATE TABLE test
(
id INT(38) NOT NULL primary key  AUTO_INCREMENT,
ptnum INT(8),
NAI VARCHAR(256) NOT NULL,

PRIMARY KEY (id,ptnum)
)
PARTITION BY RANGE (ptnum)(
PARTITION par1 VALUES LESS THAN(20120101),
PARTITION pmax VALUES LESS THAN MAXVALUE
)
;

这样就ok啦。

分区表的其他一些操作:

--add
alter table tablename add partition (partition partitionName values less than (20121212));
--del
aleter table tablename drop partition partitionName;
--meger
ALTER TABLE tablename 
REORGANIZE PARTITION p201001,p201002,p201003,
p201004,p201005,p201006,
p201007,p201008,p201009 INTO
(
PARTITION p2010Q1 VALUES LESS THAN (201004),
PARTITION p2010Q2 VALUES LESS THAN (201007),
PARTITION p2010Q3 VALUES LESS THAN (201010)
);
--split
ALTER TABLE tablename REORGANIZE PARTITION p2010Q1 INTO (
PARTITION s2009 VALUES LESS THAN (201001),
PARTITION s2010 VALUES LESS THAN (201004)
);

使用expalin partitions 来查看查询语句是否使用分区过滤了数据:
EXPLAIN PARTITIONS SELECT * FROM test WHERE ptnum<20121212;

mysql的列操作

mysql修改表名,列名,列类型,添加表列,删除表列

alter table test rename test1; --修改表名

alter table test add column name varchar(10); --添加表列

alter table test drop column name; --删除表列

alter table test modify address char(10) --修改表列类型

这个貌似不成功:alter table test change address address char(40)


alter table test change column address address1 varchar(30)--修改表列名

原文地址:https://www.cnblogs.com/lansor/p/2538475.html