mysql命令行常用命令

admin 发表于 [MySQL] 分类,标签: MySQL命令行
0

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

Windows:
net stop mysql
net start mysql

Linux:
service mysqld stop
service mysqld start

第二招、登陆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连接层上。解决方法是在发送查询前执行一下下面这句:

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处理,所以必然有标题等由数据 库读出的字段是乱码而其他部门文字不乱码的现象。

发表我的评论