日期:2014-05-16  浏览次数:20794 次

mysql常用的命令

第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据

1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

?

第六招、乱码问题

??? MySQL 的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

??? 查看系统的字符集和排序方式的设定可以通过下面的两条命令:
查看字符集:
?? 1. mysql> SHOW VARIABLES LIKE 'character_set_%';

显示字符集设置如下:
?? 1. +--------------------------+----------------------------+
?? 2.?? | Variable_name | Value |
?? 3.?? +--------------------------+----------------------------+
?? 4.?? | character_set_client | latin1 |
?? 5.?? | character_set_connection | latin1 |
?? 6.?? | character_set_database | latin1 |
?? 7.?? | character_set_results | latin1 |
?? 8.?? | character_set_server | latin1 |
?? 9.?? | character_set_system | utf8 |
? 10.?? | character_sets_dir | /usr/share/mysql/charsets/ |
? 11.?? +--------------------------+----------------------------+

查看排序方式(Collation)
?? 1. mysql> SHOW VARIABLES LIKE 'collation_%';

显示默认值:
?? 1. +----------------------+-------------------+
?? 2.?? | Variable_name | Value |
?? 3.?? +----------------------+-------------------+
?? 4.?? | collation_connection | latin1_swedish_ci |
?? 5.?? | collation_database | latin1_swedish_ci |
?? 6.?? | collation_server | latin1_swedish_ci |
?? 7.?? +----------------------+-------------------+

??? 上面列出的值就是系统的默认值。如果你奇怪系统怎么默认是latin1的瑞典语排序方式,原因是MySQL由瑞典的T.c.X.DataKonsultAB公司(目前公司名称为MySQL AB)开发,不用再多说了吧。
??? 当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

?? 1. mysql> SET NAMES ‘utf8′;

??? 它相当于下面的三句指令:
?? 1. SET character_set_client = utf8;
?? 2. SET character_set_results = utf8;
?? 3. SET character_set_connection = utf8;

??? 就是连接之后加个查询
?? 1. $this->query(”SET NAMES ‘utf8'”);

??? character_set_client,character_set_results,character_set_connection三个运行变量是造成乱码的关键。mysql把客户端提交的查询由character_set_client转换为 character_set_connection,由于默认网页提交的查询是gb2312(表单页面meta里可以看到),而mysql默认将其当作utf8(可以查到此时的 character_set_client=utf8),所以必然乱码。同理,mysql返回的结果是已经转换成 character_set_results编码的(与表的编码无关),同样默认是utf8,而网页页面把它当gb2312处理,所以必然有标题等由数据 库读出的字段是乱码而其他部门文字不乱码的现象。