create database sample;
create table 't_user' (
'id' int(11) not null auto_increment,
'name' varchar(100) not null default '',
primary key ('id')
) type=myisam;
选项只在MySQL 3.23和以后版本中被实现。
不同的表类型是:
ISAM 原来的表处理器
MyISAM 全新二进制可移植的表处理器
HEAP 用于该表的数据仅仅存储在内存中
没有type=myisam语句也行,因为从3.23版本以后,默认都是myisam类型 ......
====================================================
引自:http://blog.sina.com.cn/s/blog_538a9d1901008f9g.html
什么是C2级安全性?安全性的分类是怎样的?(2008-01-30 17:04:39)
D类:最低保护,保留给不能通过更高级别检查的系统
C1:谨慎保护,要求有基于用户级别的控制来保护数据,主要防止意外事件带来的损失,适用于对安全性要求不是太高的系统
C2:权限控制保护:用户对自己的行为负责;系统可以跟踪所有过程和记录某个用户的行为。防止对象重引用,并保证系统安全性监视器的效力。用户可以设定别人对自己数据的权限。
B1:标志安全性保护:要求特别的安全性计划,所有的保密数据都要加一标志,在系统中传递这些数据时必须核对标志。用户不能自己改变这些标志。
B2:结构化保护,要求结构化的、正规的安全性计划。用户账户验证功能增强,以确定每个用户合法的安全性权限。
B3:安全域:要求安全性系统尽可能小,排除一切无权限代码执行。这些代码可能不利于系统的安全性和测试,要求有附加的有关安全性管理的工具。系统必须有很强的反无权改动和侵入。
A1:核实的设计:功能和B3相同,但A1要经过更严格、更正规的测试。
=========== ......
====================================================
引自:http://blog.sina.com.cn/s/blog_538a9d1901008f9g.html
什么是C2级安全性?安全性的分类是怎样的?(2008-01-30 17:04:39)
D类:最低保护,保留给不能通过更高级别检查的系统
C1:谨慎保护,要求有基于用户级别的控制来保护数据,主要防止意外事件带来的损失,适用于对安全性要求不是太高的系统
C2:权限控制保护:用户对自己的行为负责;系统可以跟踪所有过程和记录某个用户的行为。防止对象重引用,并保证系统安全性监视器的效力。用户可以设定别人对自己数据的权限。
B1:标志安全性保护:要求特别的安全性计划,所有的保密数据都要加一标志,在系统中传递这些数据时必须核对标志。用户不能自己改变这些标志。
B2:结构化保护,要求结构化的、正规的安全性计划。用户账户验证功能增强,以确定每个用户合法的安全性权限。
B3:安全域:要求安全性系统尽可能小,排除一切无权限代码执行。这些代码可能不利于系统的安全性和测试,要求有附加的有关安全性管理的工具。系统必须有很强的反无权改动和侵入。
A1:核实的设计:功能和B3相同,但A1要经过更严格、更正规的测试。
=========== ......
这里首先说下oracle分页不像mysql分页那么简单直接limit 就可以了.
mysql:sql ="select * from talbe limit 0,10";
第一个数表示下标,就是从第几条数据开始,
第二个数表示每页显示多少条数据,可以说是当你确定每页显示多少行时候,它就是一个固定的数。
这里需要注意的是,mysql的访问下标是从0开始的。这个一定要记住。
下面说说oracle,oracle的分页就比较麻烦些了.
oracle是没有id自增长的,我们要首先要对我们自己在表自建的id创建个序列
select * from table(Book) order by B_id //第一步什么呢?
我oracle表中的B_id先
按照arder by 排序下,就是在oracle中是没有id自增长的,中间容易出现断层
第二步
我们把上面的第一个的语句作为一个条件用括弧括起来,那么第一个sql语句相当于一个视图,我们为了方便,在给他一个别名。m就是这个视图的别名,
这里我们知道oracle里面排序时通过“rownum”的关键字,我们也给他起个别名叫rn,就是后面伪列的名字;
这样我们执行下面的语句,会产生一个伪列,rn,当然一个伪列和B_id是不一样的
B_id会出现裂缝,断层,但是这个伪列是不会的。即便B_id中间断层,rn这个伪列永远
是按照1,2,3,...10. ......
这里首先说下oracle分页不像mysql分页那么简单直接limit 就可以了.
mysql:sql ="select * from talbe limit 0,10";
第一个数表示下标,就是从第几条数据开始,
第二个数表示每页显示多少条数据,可以说是当你确定每页显示多少行时候,它就是一个固定的数。
这里需要注意的是,mysql的访问下标是从0开始的。这个一定要记住。
下面说说oracle,oracle的分页就比较麻烦些了.
oracle是没有id自增长的,我们要首先要对我们自己在表自建的id创建个序列
select * from table(Book) order by B_id //第一步什么呢?
我oracle表中的B_id先
按照arder by 排序下,就是在oracle中是没有id自增长的,中间容易出现断层
第二步
我们把上面的第一个的语句作为一个条件用括弧括起来,那么第一个sql语句相当于一个视图,我们为了方便,在给他一个别名。m就是这个视图的别名,
这里我们知道oracle里面排序时通过“rownum”的关键字,我们也给他起个别名叫rn,就是后面伪列的名字;
这样我们执行下面的语句,会产生一个伪列,rn,当然一个伪列和B_id是不一样的
B_id会出现裂缝,断层,但是这个伪列是不会的。即便B_id中间断层,rn这个伪列永远
是按照1,2,3,...10. ......
数据库特点
--使用partition,存在上百个分区
--建表时指定了data_dir和index_dir,数据不是存储在默认位置,而是在mysqld的数据目录下link到真正的数据文件
备份恢复要求
--备份出来的数据恢复时要恢复成不同的表名
--恢复出来的数据实际存储位置也要存储在与原表不同的位置
问题
如果直接mysqldump-source恢复-change table name,则新表的存储位置无法满足要求,link到的位置必然是错误的,需要修改mysqld数据目录下的数百个软链接
备份过程
mysqldump -uroot -p$dbpassword -h$srcip $dbname $tablename > $tablename.data
信息修改过程
sed -e "s/$origname/$newname/g" $tablename.data > $tablename.data.tmp1
rm -f $tablename.data
sed -e "s/$origloc/$newloc/g" $tablename.data.tmp1 > $tablename.data.tmp2
rm -f $tablename.data.tmp1
mv $tablename.data.tmp2 $tablename.data
恢复过程
mysql -u$dbuser -p$dbpassword -h$destip -e"$createdbsql"
mysql -u$dbuser -p$dbpassword -h$destip $dbname -e"source $tablename.data" ......
返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。
mysql> select CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> select CONCAT('My', NULL, 'QL');
-> NULL
mysql> select CONCAT(14.3);
-> '14.3'
如:update test set ID=concat(ID,'ABC');
放在前面就连接到前面,放在后面就连接在后面。 ......
我的系统是ubuntu6.06,最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
使用网上介绍的方法修改root用户的密码:
# mysqladmin -uroot -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
现在终于被我找到了解决方法,如下(请先测试方法三,谢谢!):
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
# mysql -udebian-sys-maint -p
Enter password ......
我的系统是ubuntu6.06,最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
使用网上介绍的方法修改root用户的密码:
# mysqladmin -uroot -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
现在终于被我找到了解决方法,如下(请先测试方法三,谢谢!):
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
# mysql -udebian-sys-maint -p
Enter password ......