mysql的几个小技巧

2009-10-25 22:54:23   2071

1.修改mysql中root的密码:
shell>mysql -u root -p
mysql>SET PASSWORD FOR root=PASSWORD("root");

2.远程登录mysql server:(当然server必须首先给某个远程用户授权了)
shell>mysql -h host -u user -p

3.打开数据库:use dbname;
显示所有数据库:show databases;
显示数据库mysql中所有的表:先use mysql;然后show tables;
显示表的列信息:describe user;(显示表mysql数据库中user表的信息);

4.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个

GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;



5.删除授权:

REVOKE ALL PRIVILEGES ON *.* FROM root@"%";
USE mysql;
DELETE FROM user WHERE User="root" and Host="%";
FLUSH PRIVILEGES;



6. 创建一个用户custom在特定客户端mysql.cn登录,可访问特定数据库bankaccount
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.*
TO custom@mysql.cn IDENTIFIED BY 'stupid';

7.重命名表:

ALTER TABLE t1 RENAME t2;



为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:

ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);



增加一个新TIMESTAMP列,名为d:

ALTER TABLE t2 ADD d TIMESTAMP;



在列d上增加一个索引,并且使列a为主键:

ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);



删除列c:

ALTER TABLE t2 DROP COLUMN c;



增加一个新的AUTO_INCREMENT整数列,命名为c:

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);


注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,
因为索引了的列不能是NULL。

8.删除记录:

DELETE FROM t1 WHERE C>10;



6.改变某几行:

UPDATE t1 SET user=mysqlcn,password=mysqlcn;



7.使用name列的头10个字符创建一个索引:

CREATE INDEX part_of_name ON customer (name(10));