2011年(455)
分类: LINUX
2011-05-08 18:44:01
一、帐号与权限
设定 root 和其他 user 的密码
mysqladmin -u root password '新密码'
mysqladmin -u root -p
Enter password: 此时再输入密码(建议采用)
use mysql;
mysql> UPDATE user SET password=password('新密码') where user='root';
只改 root 的密码,如果没有用 where ,则表示改全部 user 的密码
mysql> FLUSH PRIVILEGES; 在 mysql 资料库内,一定要用 flush 更新记忆体上的资料
删除空帐号
mysql> DELETE FROM user WHERE User = '';
mysql> FLUSH PRIVILEGES;
建立新帐号
mysql> GRANT 权限 ON 资料库或资料表 TO 使用者 IDENTIFIED BY '密码';
权限
资料库或资料表
*.* 所有资料库里的所有资料表
* 预设资料库里的所有资料表
资料库。* 某一资料库里的所有资料表
资料库。资料表 某一资料库里的特定资料表
资料表 预设资料库里的某一资料表
设定/修改权限
用 root 登入 MySQL
mysqladmin -u root -p
Enter password:
mysql> GRANT all ON db35.* TO s35@'localhost' IDENTIFIED BY 's35';
把 db35 这个资料库(含其下的所有资料表),授权给 s35,从 localhost 上来,密码为s35
mysql> GRANT all ON *.* 把所有资料库及资料表授权给别人,太危险了!
mysql> GRANT all??? ON www.* TO '*'@'*' IDENTIFIED BY '';
把 www 这个资料库(含其下的所有资料表),授权给 任何机器任何人,无密码(通常给不特定人士使用)
mysql> FLUSH PRIVILEGES; (最後一定要强迫更新权限)
二、资料库/资料表/栏位的操作
建立资料库 CREATE DATABASE 资料库名;
语法:CREATE DATABASE db_name
使用资料库 USE 资料库名;
语法:USE db_name
删除资料库 DROP DATABASE 资料库名;
语法:DROP DATABASE [IF EXISTS] db_name
建立资料表
CREATE TABLE 资料表名 (栏位1 资料型态, 栏位2 资料型态, ……);
语法:
CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition,…) [table_options] [select_statement]
例:
craete database basic;
use basic;
create table basic(
no char(4)
name char(10)
id char(10));
create_definition:
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
or PRIMARY KEY (index_col_name,…)
or KEY [index_name] KEY(index_col_name,…)
or INDEX [index_name] (index_col_name,…)
or UNIQUE [INDEX] [index_name] (index_col_name,…)
or [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,…)
[reference_definition]
or CHECK (expr)
资料结构(type):
资料型态 说明
TINYINT 有符号的范围是-128到127, 无符号的范围是0到255。
SMALLINT 有符号的范围是-32768到32767, 无符号的范围是0到65535。
MEDIUMINT 有符号的范围是-8388608到8388607, 无符号的范围是0到16777215。
INT 有符号的范围是-2147483648到2147483647, 无符号的范围是0到4294967295。
INTEGER INT的同义词。
BIGINT 有符号的范围是-9223372036854775808到 9223372036854775807,无符号的范围是0到18446744073709551615。
FLOAT 单精密浮点数字。不能无符号。允许的值是-3.402823466E+38到- 1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。
DOUBLE 双精密)浮点数字。不能无符号。允许的值是- 1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。
DOUBLE PRECISION DOUBLE的同义词。
REAL DOUBLE的同义词。
DECIMAL DECIMAL值的最大范围与DOUBLE相 同。
NUMERIC DECIMAL的同义词。
DATE 日期。支援的范围是'1000-01-01'到'9999-12-31'。
DATETIME 日期和时间组合。支援的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
TIMESTAMP 时间戳记。范围是'1970-01-01 00:00:00'到2037年的某时。
TIME 一个时间。范围是'-838:59:59'到'838:59:59'。
YEAR 2或4位数字格式的年(内定是4位)。允许的值是1901到2155。
CHAR 固定长度,1 ~ 255个字元。
VARCHAR 可变长度,1 ~ 255个字元。
TINYBLOB
TINYTEXT 最大长度为255(2^8-1)个字符。
MEDIUMBLOB
MEDIUMTEXT 最大长度为16777215(2^24-1)个字符。
LONGBLOB
LONGTEXT 最大长度为4294967295(2^32-1)个字符。
ENUM 一个ENUM最多能有65535不同的值。
SET 一个SET最多能有64个成员。
index_col_name:
col_name [(length)]
reference_definition:
REFERENCES tbl_name [(index_col_name,…)]
[MATCH FULL | MATCH PARTIAL]
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
table_options:
type = [ISAM | MYISAM | HEAP]
or max_rows = #
or min_rows = #
or avg_row_length = #
or comment = "string"
or auto_increment = #
select_statement:
[ | IGNORE | REPLACE] SELECT … (Some legal select statement)