MySQL字符集详解

MySQL字符集详解
MySQL字符集详解

一、字符集和校验规则

字符集是一套符合和编码,校验规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则。MySQL可以使用对种字符集和检验规则来组织字符。MySQL服务器可以支持多种字符集,在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以指定使用不同的字符集,相比oracle等其他数据库管理系统,在同一个数据库只能使用相同的字符集,MySQL明显存在更大的灵活性。

每种字符集都可能有多种校对规则,并且都有一个默认的校对规则,并且每个校对规则只是针对某个字符集,和其他的字符集么有关系。

在MySQL中,字符集的概念和编码方案被看做是同义词,一个字符集是一个转换表和一个编码方案的组合。

Unicode(Universal Code)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode存在不同的编码方案,包括Utf-8,Utf-16和Utf-32。Utf表示Unicode Transformation Format。

二、查看mysql字符集方法

1、查看mysql服务器支持的字符集

mysql> show character set;

mysql> select * from information_schema.character_sets;

mysql> select character_set_name, default_collate_name, description, maxlen from

information_schema.character_sets;

2、查看字符集的校对规则

mysql> show collation;

mysql> show collation like 'utf8';

mysql> select * from information_schema.collations where collation_name like 'utf8%';

3、查看当前数据库的字符集

mysql> show variables like 'character%';

+--------------------------+----------------------------------+

| Variable_name | Value |

+--------------------------+----------------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | utf8 |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | /usr/local/mysql/share/charsets/ |

+--------------------------+----------------------------------+

8 rows in set (0.00 sec)

名词解释:

character_set_client:客户端请求数据的字符集

character_set_connection:客户机/服务器连接的字符集

character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,那就使用character_set_server指定的字符

集,这个变量建议由系统自己管理,不要人为定义。

character_set_filesystem:把os上文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary是不做任何转换的character_set_results:结果集,返回给客户端的字符集

character_set_server:数据库服务器的默认字符集

character_set_system:系统字符集,这个值总是utf8,不需要设置。这个字符集用于数据库对象(如表和列)的名字,也用于存储在目录表中的函数的名字。

4、查看当前数据库的校对规则

mysql> show variables like 'collation%';

+----------------------+-------------------+

| Variable_name | Value |

+----------------------+-------------------+

| collation_connection | utf8_general_ci |

| collation_database | latin1_swedish_ci |

| collation_server | utf8_general_ci |

+----------------------+-------------------+

3 rows in set (0.01 sec)

名词解释:

collation_connection 当前连接的字符集。

collation_database 当前日期的默认校对。每次用USE语句来“跳转”到另一个数据库的时候,这个变量的值就会改变。如果没有当前数据库,这个变量的值就是collation_server变量的值。

collation_server 服务器的默认校对。

排序方式的命名规则为:字符集名字_语言_后缀,其中各个典型后缀的含义如下:

1)_ci:不区分大小写的排序方式

2)_cs:区分大小写的排序方式

3)_bin:二进制排序方式,大小比较将根据字符编码,不涉及人类语言,因此_bin的排序方式不包含人类语言

三、MySQL字符集的设置

1、概述

MySQL字符集设置分为两类:

1)创建对象的默认值。

2)控制server和client端交互通信的配置。

1、创建对象的默认值

字符集合校对规则有4个级别的默认设置:

1)服务器级别;

2)数据库级别;

3)表级别、列级别;

4)连接级别。

更低级别的设置会集成高级别的设置。

这里有一个通用的规则:先为服务器或者数据库选择一个合理的字符集,然后根据不同的实际情况,让某个列选择自己的字符集。

2、控制server和client端交互通信的配置

大部分MySQL客户端都不具备同时支持多种字符集的能力,每次都只能使用一种字符集。

客户和服务器之间的字符集转换工作是由如下几个MySQL系统变量控制的。

1)character_set_server:mysql server默认字符集。

2)character_set_database:数据库默认字符集。

3)character_set_client:MySQL server假定客户端发送的查询使用的字符集。

4)character_set_connection:MySQL Server接收客户端发布的查询请求后,将其转换为character_set_connection变量指定的字符集。

5)character_set_results:mysql server把结果集和错误信息转换为character_set_results指定的字符集,并发送给客户端。

6)character_set_system:系统元数据(字段名等)字符集

还有以collation_开头的同上面对应的变量,用来描述字符序。

注意事项:

? https://www.360docs.net/doc/a07498070.html,f中的default_character_set设置只影响mysql命令连接服务器时的连接字符集,不会对使用libmysqlclient库的应用程序产生任何作用!

? 对字段进行的SQL函数操作通常都是以内部操作字符集进行的,不受连接字符集设置的影响。

? SQL语句中的裸字符串会受到连接字符集或introducer设置的影响,对于比较之类的操作可能产生完全不同的结果,需要小心!

3、默认情况下字符集选择规则

(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是latin1;

(2)安装MySQL 时,可以在配置文件(https://www.360docs.net/doc/a07498070.html,f) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;

(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时character_set_server被设定为这个默认的字符集;

(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;

(5)当选定了一个数据库时,character_set_database被设定为这个数据库默认的字符集;

(6)在这个数据库里创建一张表时,表默认的字符集被设定为character_set_database,也就是这个数据库默认的字符集;

(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;

2、分述

2.1、为列分配字符集

属于同一个表的不同列可以有不同的字符集,如果没有为一个列显示的定义字符集就使用默认字符集。创建一个表的时候,若显示的为列指定字符集,则字符集作为数据类型选项包含在其中,要放在数据类型后面及空指定和主键前面。

例如:

create table column_charset(

c1 char(10) character set utf8 not null,

c2 char(10) char set utf8,

c3 varchar(10) charset utf8,

c4 varchar(10)) engine=innodb;

注意:character set可以简写为char set和charset

使用show create table table_name;命令查看column_charset建表语句:

mysql> show create table column_charset\G;

*************************** 1. row ***************************

Table: column_charset

Create Table: CREATE TABLE `column_charset` (

`c1` char(10) CHARACTER SET utf8 NOT NULL,

`c2` char(10) CHARACTER SET utf8 DEFAULT NULL,

`c3` varchar(10) CHARACTER SET utf8 DEFAULT NULL,

`c4` varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.01 sec)

ERROR:

No query specified

插入数据,感受一下效果:

mysql> insert into column_charset(c1,c2,c3,c4) value("图灵","图灵","图灵","chavin"); Query OK, 1 row affected (0.01 sec)

mysql> select * from column_charset;

+--------+--------+--------+--------+

| c1 | c2 | c3 | c4 |

+--------+--------+--------+--------+

| 图灵| 图灵| 图灵| chavin |

+--------+--------+--------+--------+

1 row in set (0.00 sec)

2.2、为表分配字符集

create table table_charset(

c1 varchar(10),

c2 varchar(10))engine=innodb default charset=utf8;

注意:为表指定字符集可以使用以下几种方式:

default charset=utf8;

charset=utf8;

default character set=utf8;

character set=utf8;

default char set=utf8;

char set=utf8;

检查建表语句:

mysql> show create table table_charset;

*************************** 1. row *************************** Table: table_charset

Create Table: CREATE TABLE `table_charset` (

`c1` varchar(10) DEFAULT NULL,

`c2` varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

测试:

mysql> insert into table_charset(c1,c2) values('图灵','图灵');

Query OK, 1 row affected (0.01 sec)

mysql> select * from table_charset;

+--------+--------+

| c1 | c2 |

+--------+--------+

| 图灵| 图灵|

+--------+--------+

1 row in set (0.00 sec)

2.3、为数据库指定字符集

创建的每个数据库都有一个默认字符集,如果没有指定,就用latin1。

create database dbking charset=utf8;

注意:创建数据库分配字符集可以采用以下几种子句:

charset=utf8;

default charset=utf8;

charset utf8;

default charset utf8;

char set=utf8;

default char set=utf8;

char set utf8;

default char set utf8;

character set=utf8;

default character set=utf8;

character set utf8;

default character set utf8;

使用show create database db_name;命令查看数据库创建语句:

mysql> show create database dbking;

+----------+-----------------------------------------------------------------+

| Database | Create Database |

+----------+-----------------------------------------------------------------+

| dbking | CREATE DATABASE `dbking` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+-----------------------------------------------------------------+

1 row in set (0.00 sec)

2.4、为列分配校对规则

每个列都应该有一个校对,如果没有显示指定,MySQL就使用属于该字符集的默认校对。如果指定了一个字符集和一个校对,字符集应该放在前面。create table column_collate(

c1 varchar(10) charset utf8 collate utf8_romanian_ci not null,

c2 varchar(10) charset utf8 collate utf8_spanish_ci)engine=innodb;

查看表的校验规则信息:

mysql> select table_name,column_name,collation_name

from information_schema.columns

where table_name='column_collate';

+----------------+-------------+------------------+

| table_name | column_name | collation_name |

+----------------+-------------+------------------+

| column_collate | c1 | utf8_romanian_ci |

| column_collate | c2 | utf8_spanish_ci |

+----------------+-------------+------------------+

2 rows in set (0.04 sec)

注意:字符集和校对在处理字符表达式的过程中扮演着重要角色。我们不能比较两个属于不同校对的不同字符值。例如:

mysql> insert into column_collate(c1,c2) values('A','A');

Query OK, 1 row affected (0.22 sec)

mysql> select * from column_collate;

+----+------+

| c1 | c2 |

+----+------+

| A | A |

+----+------+

1 row in set (0.00 sec)

mysql> select * from column_collate where c1=c2;

ERROR 1267 (HY000): Illegal mix of collations (utf8_romanian_ci,IMPLICIT) and (utf8_spanish_ci,IMPLICIT) for operation '=' 2.5、为表指定校对规则

create table table_collate(

c1 varchar(10),

c2 varchar(10))engine=innodb default charset utf8 collate utf8_romanian_ci;

检查表的校对规则:

mysql> select table_name,column_name,collation_name from information_schema.columns where table_name='table_collate'; +---------------+-------------+------------------+

| table_name | column_name | collation_name |

+---------------+-------------+------------------+

| table_collate | c1 | utf8_romanian_ci |

| table_collate | c2 | utf8_romanian_ci |

+---------------+-------------+------------------+

2 rows in set (0.00 sec)

2.6、为数据库指定校对规则

create database dbking102 default charset utf8 collate utf8_romanian_ci;

查看数据库定义语句:

mysql> show create database dbking102\G;

*************************** 1. row ***************************

Database: dbking102

Create Database: CREATE DATABASE `dbking102` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_romanian_ci */

1 row in set (0.00 sec)

2.7、字符直接量字符集

如果没有显示指定,那么字符直接量的字符集就是数据库的默认字符集。如果要显示分配另一个字符集,需要把字符集的名字放在直接量前面,并且要在字符集前面加上下划线。

mysql> select _utf8'语言 Language 言語язык';

+---------------------------------+

| 语言 Language 言語язык |

+---------------------------------+

| 语言 Language 言語язык |

+---------------------------------+

2.8、修改和设置MySQL服务器级别字符集

MySQL服务器支持众多不同的字符集,这类字符集可在编译时和运行时指定。

1)编译时指定

编译时可指定默认字符集和默认校对规则,要想同时更改默认字符集和校对规则,要同时使用--with-charset和--with-collation选项。校对规则必须是字符集的合法校对规则。

./configure -- with-charset=CHARSET --with-collation=COLLATION

通过configure选项--with-extra-charsets=LIST,可以定义在服务器中再定义增加字符集。LIST 指下面任何一项:

a.空格间隔的一系列字符集名

https://www.360docs.net/doc/a07498070.html,plex -,以包括不能动态装载的所有字符集

c.all –,以将所有字符集包括进二进制

./configure -- with-charset=CHARSET --with-collation=COLLATION --with-extra-charsets=all

2)在参数文件https://www.360docs.net/doc/a07498070.html,f中指定

[mysqld]

character_set_server=utf8

--影响参数:character_set_server 和character_set_database

--注意:修改后要重启数据库才能生效。

[client]

default-character-set=utf8

--影响参数:character_set_client,character_set_connection 和character_set_results。

--注意:修改后无需重启数据库。

3)在启动参数前指定

./mysqld --character-set-server=utf8 &

--影响参数:character_set_server 和character_set_database

4)在mysql客户端登陆时通过--default-character-set指定

mysql -uroot -pmysql --default-character-set=utf8

--影响参数:set character_set_client,set character_set_connection,set character_set_results。

5)临时指定

a)分别指定

mysql> SET character_set_client = utf8;

mysql> SET character_set_connection = utf8;

mysql> SET character_set_database = utf8;

mysql> SET character_set_results = utf8;

mysql> SET character_set_server = utf8;

b)mysql客户端使用:set names utf8;

等同于

set character_set_client=utf8;

set character_set_connection=utf8;

set character_set_results=utf8;

c)set character set utf8;

等同于

set character_set_client=utf8;

set character_set_results=utf8;

set collation_connection=@@collation_database;

3、总结

下面介绍下几个MYSQL命令:

1)show character set;或show char set;

查看数据库支持的所有字符集

2)status;或\s;

查看当前状态里面包括当然的字符集设置

3)show variables like 'char%';

查看系统字符集设置,包括所有的字符集设置

4)show table status from sqlstudy like '%countries%';

查看sqlstudy数据库中表的字符集设置

5)show full columns from countries;

查看表列的字符集设置,关键是在同一个表中,每列可以设置成不同的字符集知道怎么查看字符集了,下面我来说下如何设置这些字符集

1.修改服务器级

a. 临时更改:

mysql>SET GLOBAL character_set_server=utf8;

b. 永久更改:

修改https://www.360docs.net/doc/a07498070.html,f文件

[mysqld]

character-set-server=utf8

2.修改数据库级

a. 临时更改:

mysql>SET GLOBAL character_set_database=utf8;

b. 永久更改:

改了服务器级就可以了

3.修改表级

mysql>ALTER TABLE table_name DEFAULT CHARSET utf8;

更改了后永久生效

4.修改列级

修改示例:

mysql>alter table `products` change `products_model` `products_model` varchar( 20 )

character set utf8 collate utf8_general_ci null default null;

更改了后永久生效

5.更改连接字符集

a. 临时更改:

mysql> set names utf8;

b. 永久更改:

修改https://www.360docs.net/doc/a07498070.html,f文件

在[client]中增加:

default-character-set=utf8

执行SQL语句时信息的路径是这样的

信息输入路径:client→connection→server;

信息输出路径:server→connection→results.

四、MySQL数据库中字符集转换流程

1、MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;

2、进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:

使用每个数据字段的CHARACTER SET设定值;

若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);

若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;

若上述值不存在,则使用character_set_server设定值。

3、将操作结果从内部操作字符集转换为character_set_results。

下图源自于《高性能MySQL》中关于字符集转换的图解:

五、MySQL数据库乱码原因解析及案例

1、产生乱码的根本原因

1)客户机没有正确地设置client字符集,导致原先的SQL语句被转换成connection所指字符集,而这种转换,是会丢失信息的,如果client是utf8格式,那么如果转换成gb2312格式,这其中必定会丢失信息,反之则不会丢失。一定要保证connection的字符集大于client字符集才能保证转换不丢失信息。

2)数据库字体没有设置正确,如果数据库字体设置不正确,那么connection字符集转换成database字符集照样丢失编码,原因跟上面一样。

2、乱码或数据丢失

character_set_client:我们要告诉服务器,我给你发送的数据是什么编码?

character_set_connection:告诉字符集转换器,转换成什么编码?

character_set_results:查询的结果用什么编码?

如果以上三者都为字符集N,可简写为set names 'N';

2.1 乱码问题

模拟情景1:

向默认字符集为utf8的数据表插入utf8编码的数据前连接字符集设置为latin1,查询时设置连接字符集为utf8。

插入时根据MySQL服务器的默认设置,character_set_client、character_set_connection和character_set_results均为latin1;

插入操作的数据将经过latin1=>latin1=>utf8的字符集转换过程,这一过程中每个插入的汉字都会从原始的3个字节变成6个字节保存;查询时的结果将经过utf8=>utf8的字符集转换过程,将保存的6个字节原封不动返回,产生乱码……

例如:

mysql> set names latin1;

mysql> create table temp(name varchar(10)) charset utf8;

mysql> insert into temp values('中国');

mysql> select * from temp;

+--------+

| name |

+--------+

| 中国|

+--------+

mysql> set names utf8;

mysql> select * from temp;

+---------------+

| name |

+---------------+

| ????? |

+---------------+

注意:存储字符集编码比插入时字符集大时,如果原封不动返回数据会出现乱码,不过可通过修改查询字符集,避免乱码,即不会丢失数据。

2.2 数据丢失问题

模拟情景1:

向默认字符集为latin1的数据表插入utf8编码的数据前设置了连接字符集为utf8

插入时根据连接字符集设置,character_set_client、character_set_connection和character_set_results均为utf8;

插入数据将经过utf8=>utf8=>latin1的字符集转换,若原始数据中含有\u0000~\u00ff范围以外的Unicode字符,会因为无法在latin1字符集中表示而被转换为“?”(0×3F)符号,以后查询时不管连接字符集设置如何都无法恢复其内容了。

例如:

mysql> set names utf8;

mysql> create table temp(name varchar(10)) charset latin1;

mysql> insert into temp values('中国');

mysql> select * from temp;

+------+

| name |

+------+

| ?? |

+------+

mysql> set names latin1;

mysql> select * from temp;

+------+

| name |

+------+

| ?? |

+------+

数据不完整了,且无法恢复。

3、乱码终极解决方案

1)首先要明确你的客户端时候何种编码格式,这是最重要的(IE6一般用utf8,命令行一般是gbk,一般程序是gb2312)

2)确保你的数据库使用utf8格式,很简单,所有编码通吃。

3)一定要保证connection字符集大于等于client字符集,不然就会信息丢失,比如:latin1 < gb2312 < gbk < utf8,若设置set character_set_client = gb2312,那么至少connection的字符集要大于等于gb2312,否则就会丢失信息

4)以上三步做正确的话,那么所有中文都被正确地转换成utf8格式存储进了数据库,为了适应不同的浏览器,不同的客户端,你可以修改character_set_results 来以不同的编码显示中文字体,由于utf8是大方向,因此web应用是我还是倾向于使用utf8格式显示中文的。

MySQL 数据库常用命令 简单超级实用版

MySQL 数据库常用命令简单超级实用版 1、MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 select 中加上distinct去除重复字段 mysqladmin drop databasename 删除数据库前,有提示。 显示当前mysql版本和当前日期 select version(),current_date; 2、修改mysql中root的密码: shell>mysql -u root -p mysql> update user set password=password(”xueok654123″) where user='root'; mysql> flush privileges //刷新数据库 mysql>use dbname;打开数据库: mysql>show databases; 显示所有数据库 mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 mysql>describe user; 显示表mysql数据库中user表的列信息); 3、grant 创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令some thing做这个 mysql> grant all privileges on *.* to user@localhost identified by 'something' with 增加新用户

mysql字符集设定

2.MySQL5.1以及之前的版本:[mysqld]设置default-character-set 3.MySQL的字默认引擎设置 在修改默认引擎之前,最好了解mysql读取配置文件https://www.360docs.net/doc/a07498070.html,f的顺序,以及mysql的目录结构--默认basedir=/usr ,datadir=/var/lib/mysql,/etc/https://www.360docs.net/doc/a07498070.html,f 配置文件读取顺序详见另一篇帖子。 1.查看mysql的存储引擎信息 mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------

------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | +--------------------+---------+----------------------------------------------------------------+--------------+------+-------- MySQL-5.5.19-1.linux2.6.i386的默认引擎为InnoDB。 2.设置mysql的默认存储引擎 编辑https://www.360docs.net/doc/a07498070.html,f配置文件,在服务器端配置信息[mysqld]下面添加: default-storage-engine = MyISAM 即可设置mysql数据库的默认引擎为MyISAM 3.设置当前会话的默认存储引擎 SET storage_engine=InnoDB; 即可以设置当前会话连接的默认存储引擎为InnoDB。 4.指定表的存储引擎 如: create table t_innodb( id int(3) ) engine = innodb; 然后使用 mysql> show table status like 't_i%'\G; 查看表的详细信息。

MySQL5.6.14下载、安装及配置安装图文教程

说明 5.6.14是一个稳定的发布版本,比较稳定的,安装包比5.5大很多,因为集成了32位和64位的,网上有人做过测试,性能比5,5强很多,于是果断选5.6,下面开始安装. 下载及安装MySQL 自MySQL版本升级到5.6以后,其安装及配置过程和原来版本发生了很大的变化,下面详细介绍5.6版本MySQL的下载、安装及配置过程。 s 图1.1 MySQL5.6 目前针对不同用户,MySQL提供了2个不同的版本: MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持。 MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话及文档等技术支持。 目前最新的MySQL版本为MySQL 5.6,可以在官方网站(https://www.360docs.net/doc/a07498070.html,/downloads/)上面下载该软件。在下图1.2所示的MySQL官网上单击右下角的“MySQL Installer 5.6”超链接,然后按照提示一步步操作就可以将MySQL软件下载到本地计算机中了。注意这里我们选择的是数据库版本是“Windows (x86, 32-bit), MSI Installer”,如下图1.3所示。 图1.2 MySQL官方网站 图1.3 选择MySQL版本 MySQL下载完成后,找到下载到本地的文件,按照下面所示的步骤双击进行安装: 步骤1:双击MySQL安装程序(mysql-installer-community-5.6.10.1),会弹出如下图1.4所示的欢迎窗口。

常用MySQL语句大全

MySQL服务的配置和使用 修改MySQL管理员的口令:mysqladmin –u root password 密码字符串 如:mysqldmin –u root password 111111 连接MySQL服务器,使用命令:mysql [-h 主机名或IP地址] [-u 用户名] [-p] 如:mysql –u root –p 如已有密码需修改root密码用命令: mysqladmin –u root –p password 新密码字符串 如:mysqladmin –u root –p password 111111 创建数据库格式为:CREATE DATABASE 数据库名称; 如:mysql>create database abc; 默认创建数据库保存在/var/lib/mysql中 查看数据库是 mysql>show abc; 选择数据库是 USE 数据库名称; 如:mysql>use abc; 删除数据库是 DROP DATABASE 数据库名称;如:mysql>drop database abc; 数据库的创建和删除 创建表是CREATE TABLE 表名称(字段1,字段2,…[表级约束]) [TYPE=表类型]; 其中字段(1,2 )格式为:字段名字段类型[字段约束] 如创建一个表student,如下: mysql>create table student ( sno varchar(7) not null, 字段不允许为空 sname varchar (20 )not null, ssex char (1) default …t?, sbirthday date, sdepa char (20), primary key (sno) 表的主键 ); 可用describe命令查看表的结构。 默认表的类型为MYISAM,并在/var/lib/mysql/abc 目录下建立student.frm(表定

个人总结的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;

查看Oracle字符集及如何修改字符集

查看Oracle字符集及如何修改字符集 文章分类:数据库 一、什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.查看数据库字符集 这涉及三方面的字符集, 一是oracel server端的字符集; 二是oracle client端的字符集; 三是dmp文件的字符集。 在做数据导入的时候,需要这三个字符集都一致才能正确导入。 1、查询oracle server端的字符集 有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种: SQL>select userenv(‘language’) from dua l; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK 2、如何查询dmp文件的字符集 用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit 打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集: SQL> select nls_charset_name(to_number('0354','xxxx')) from dual; ZHS16GBK 如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上): catexp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6 然后用上述SQL也可以得到它对应的字符集。 3、查询oracle client端的字符集 这个比较简单。 在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如: setnls_lang=AMERICAN_AMERICA.ZHS16GBK 这样就只影响这个窗口里面的环境变量。

修改MYSQL默认编码为UTF8

修改MYSQL默认编码为UTF8 MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8 为例来说明 需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的 方法: 一、Windows 1、中止MySQL服务 2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini 即可 3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8, 保存并关闭 4、启动MySQL服务 二、Linux 1、中止MySQL服务(bin/mysqladmin -u root shutdown) 2、在/etc/下找到https://www.360docs.net/doc/a07498070.html,f,如果没有就把MySQL的安装目录下的support-files目录下的 https://www.360docs.net/doc/a07498070.html,f复制到/etc/下并改名为https://www.360docs.net/doc/a07498070.html,f即可 3、打开https://www.360docs.net/doc/a07498070.html,f以后,在[client]和[mysqld]下面均加上default-character-set=utf8, 保存并关闭 4、启动MySQL服务(bin/mysqld_safe &) 非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表 格的时候无需再次设置 需要注意的是,当前数据库中已经存在的数据仍保留现有的编码方式,因此需要自行转码, 方法在网上有很多,不再赘述 以上的方法保证了数据为utf8编码,在mysql Query Browser 可视化工具中查看没有问题, 但是以dos方式登陆数据库,select到的依然是乱码,这时可以通过改变命令行客户端字 符集来

虚拟机CentOS下MySQL的安装与配置

CentOS下MySQL的安装与配置 一、mysql是关系型数据库,可以去官网下载rpm包安装,但是也可以直接用yum 二、卸载原有的mysql 输入命令:# rpm –qa | grep mysql //查看是否安装了mysql。 使用# rpm –e mysql //普通删除模式。 # rpm –e –nodeps mysql //强力删除模式,若上个命令删除时有提示依赖项,次命 令可以强力删除。 三、通过yum安装mysql # yum list | grep mysql //查看yum提供的mysql可以下载的版本 然后# yum install –y mysql-server mysql mysql-deve // 安装mysql、mysql-server、mysql-deve即客户端和服务器

安装完毕! 四、mysql的初始化 安装完mysql后,就会多处一个mysqld的服务,此就是数据库服务,可以输入# service mysqld start 命令启动mysqld服务。第一次启动会有很多提示信息,那是在进行初始化配置,下一次启动就不会有了,就像: 我们在使用mysql数据库的时候,都要先启动mysqld,我们可以将mysqld服务设置成开机启动,免得每次我们都要去启动一下。通过# chkconfig mysqld on 设置 Mysql安装完后只有一个root管理员账户,没有密码,我们可以为root帐号设置密码(这个为mysql的root账户,不是linux的root账户)# mysqladmin –u root password ‘new pw’然后通过mysql –u root –p 命令登陆我们的mysql 五、mysql的主要配置文件 1、/etc/https://www.360docs.net/doc/a07498070.html,f这是mysql的主配置文件 我们可以查看一下一些信息

mysql设置utf8字符

请问在Mysql中如何把latin1字符集的数据库改为UTF8字符集 2009-05-01 22:50meilishudian 分类:数据库DB | 浏览10139 次 网络 请问在Mysql中如何把latin1字符集的数据库改为UTF8字符集 不好意思,是我没说清楚,我是想问原有的latin1字符集的数据库改为UTF8字符集 分享到: 2009-05-02 22:37 提问者采纳 修改默认字符集 1、最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如default-character-set = utf8 character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart 使用mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 +--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:"mysql-5.0.37"share"charsets" | +--------------------------+---------------------------------+ 2、还有一种修改字符集的方法,就是使用mysql的命令 mysql> SET character_set_client = utf8 ; mysql> SET character_set_connection = utf8 ; mysql> SET character_set_database = utf8 ; mysql> SET character_set_results = utf8 ; mysql> SET character_set_server = utf8 ; mysql> SET collation_connection = utf8 ; mysql> SET collation_database = utf8 ; mysql> SET collation_server = utf8 ; 3、一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:SET NAMES 'utf8'; 它相当于下面的三句指令: SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; **补充:*** 先把数据导出,把数据库转换完毕后再把数据导回数据库 *********** -- 以上,希望对你有所帮助。 提问者评价

安装和配置MySQL服务器

安装和配置MySQL数据库服务器模块 Lab1:源码安装MySQL服务器 实验要求: 1)通过源码安装MySQL服务器,要求安装到/usr/local/mysql目录,配置文件目录为/etc。 2)设置开机时自动运行MySQL服务器。 3)关闭rpm软件安装MySQL服务器(如果存在)。 实验时间:60分钟 实验步骤: 1、进入/root/lamp_software目录,找到mysql-6.0.4-alpha.tar.gz,并解压源码文件。如下所示。 [root@localhost lamp_software]#tar-zxf mysql-6.0.4-alpha.tar.gz-C/usr/local [root@localhost lamp_software]#cd/usr/local/ [root@localhost local]#ls bin games lib mysql-6.0.4-alpha sbin src etc include libexec RealPlayer share 2、配置mysql源码安装文件,设置MySQL安装到/usr/local/mysql目录,配置文件目录为/etc/目录。 [root@localhost local]#cd mysql-6.0.4-alpha [root@localhost mysql-6.0.4-alpha]#./configure--prefix=/usr/local/mysql--sysconfdir=/etc/ 3、编译mysql源码 [root@localhost mysql-6.0.4-alpha]#make 显示以下信息,表示编译成功。 /bin/chmod+x bench-count-distinct-t /bin/mv bench-count-distinct-t bench-count-distinct make[1]:Leaving directory`/usr/local/mysql-6.0.4-alpha/sql-bench' Making all in win make[1]:Entering directory`/usr/local/mysql-6.0.4-alpha/win' make[1]:Nothing to be done for`all'. make[1]:Leaving directory`/usr/local/mysql-6.0.4-alpha/win' 4、安装mysql服务器 [root@localhost mysql-6.0.4-alpha]#make install 显示以下信息,表示编译成功。 make[2]:Leaving directory`/usr/local/mysql-6.0.4-alpha/sql-bench' make[1]:Leaving directory`/usr/local/mysql-6.0.4-alpha/sql-bench' Making install in win make[1]:Entering directory`/usr/local/mysql-6.0.4-alpha/win' make[2]:Entering directory`/usr/local/mysql-6.0.4-alpha/win'

MYSQL 常用命令

1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql -d 没有数据–add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 A:常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql B:使用mysqldump命令 mysqldump -u username -p dbname < filename.sql C:使用mysql命令 mysql -u username -p -D dbname < filename.sql 一、启动与退出 1、进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可。此时的提示符是:mysql> 2、退出MySQL:quit或exit 二、库操作 1、、创建数据库 命令:create database <数据库名> 例如:建立一个名为xhkdb的数据库 mysql> create database xhkdb;

Oracle 导入导出字符集乱码问题

Oracle 导入导出字符集乱码问题 导出/导入与字符集 进行数据的导入导出时,我们要注意关于字符集的问题。在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。 我们首先需要查看这四个字符集参数。 查看数据库的字符集的信息: SQL> select * from nls_database_parameters; PARAMETER VALUE ------------------------------ -------------------------------------------------------------------------------- NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET ZHS16GBK NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM

NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_NCHAR_CHARACTERSET ZHS16GBK NLS_RDBMS_VERSION 8.1.7.4.1 NLS_CHARACTERSET:ZHS16GBK是当前数据库的字符集。 我的windows oracle编码为: NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_CHARACTERSET ZHS16GBK 我们再来查看客户端的字符集信息: 客户端字符集的参数NLS_LANG=_< territory >. language:指定oracle消息使用的语言,日期中日和月的显示。 Territory:指定货币和数字的格式,地区和计算星期及日期的习惯。 Characterset:控制客户端应用程序使用的字符集。通常设置或等于客户端的代码页。或者对于unicode应用设为UTF8。 在windows中,查询和修改NLS_LANG可在注册表中进行: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOMExx\ xx指存在多个Oracle_HOME时的系统编号。 我这里的windows默认为: windows Client: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 在Linux redhat5中:

MySQL5.6版本安装及配置过程

编辑者:Vocabulary 下面详细介绍5.6版本MySQL的下载、安装及配置过程。 图1.1 MySQL5.6 目前针对不同用户,MySQL提供了2个不同的版本: MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持。 MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话及文档等技术支持。 目前最新的MySQL版本为MySQL 5.6,可以在官方网站https://www.360docs.net/doc/a07498070.html,/downloads/下载该软件。下图1.2所示的MySQL官网上单击图片上的“Download”超链接或点击左边标记处,然后按照提示一步步操作就可以将MySQL软件下载到本地计算机中了。注意这里我们选择的是数据库版本是“Windows (x86, 32-bit), MSI Installer”,如下图1.3所示。 图1.2 MySQL官方网站

图1.3 选择MySQL版本 当点击download后会弹出如下页面: 注:下载MySql要求注册:<用户可注册或不注册>,如果不想注册就点击左下角标记处—点击后就弹出如图中下载提示->点击保存文件开始下载。 MySQL下载完成后,找到下载到本地的文件,按照下面所示的步骤双击进行安装:步骤1:双击MySQL安装程序(mysql-installer-community-5.6.10.1)会弹出如下图1.4所示: 图1.4 MySQL欢迎界面

步骤2:单击图1.4中的“Install MySQL Products”文字,会弹出的用户许可证协议窗口,如下图1.5所示: 图1.5 用户许可证协议窗口 步骤3:选中“I accept the license terms”的前面的选择框,然后点击【Next】按钮,会进入查找最新版本界面,效果如下图1.6所示: 图1.6 查找最新版本窗口 步骤4:单击【Execute】按钮,会进入安装类型设置界面,效果如下图1.7所示。 图1.7 安装类型设置窗口

MYSQL数据库命令大全

MYSQL命令大全 常见的MySQL命令大全 一、连接MySQL 格式:mysql -h主机地址-u用户名-p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>。 2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样) 3、退出MYSQL命令:exit (回车)。 二、修改密码 格式:mysqladmin -u用户名-p旧密码password 新密码 1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令: mysqladmin -uroot -password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 2、例2:再将root的密码改为djg345。 mysqladmin -uroot -pab12 password djg345 三、增加新用户。(注意:和上面不同,下面的因为是MySQL环境中的命令,所以后面都带一个分号作为命令结束符) 格式:grant select on 数据库.* to 用户名@登录主机identified by \"密码\" 例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,

Web应用中的中文问题以及数据表乱码

一、Web应用中的中文问题: Jsp页面编码:<%@page pageEncoding=“utf-8”%> 告诉jsp引擎,在将jsp转成servlet源文件时,该jsp文件的编码是什么。<%@page contentType=“text/html;charset=utf-8”%>相当于 Servlet中的response.setContextType()。即设置相应头。 浏览器会依据该编码来显示页面,保持jsp文件时,其真正的编码应该与设置的一致。 Html: 保存html文件时,其真正的编码应该与设置的一致。 Servlet: 获取请求参数时: request.setCharacterEncoding("utf-8"); 如果servlet要直接输出一些信息: response.setContentType("text/html;charset=utf-8"); 数据库:mysql 设置数据库编码: Create database servletdb(数据库名) default character set utf8; 如果数据库已经建好了,可以使用: Alter database servletdb(数据库名) default character set utf8; (修改编码) set names gbk; 二、工具中修改编码方式: 1、改变 Eclipse 或者 MyEclipse 新建文件的默认编码 eclipse 的: window-->preferences-->General-->ContentType 改成 utf-8 。 myEclipse 的 : window-->preferences-->myEclipse-files and editors-jsp encoding 设成ISO10646/UTF-8. 2、 eclipse 和java文件编码设定 Window-->preferences-->General-->Workspace Text file encoding 改为UTF-8 。方便项目移植到linux下编写。 3、项目编码 这里遇到的问题是,眼前的项目已经编写了大部分了,然而,只想接下来的新建的文件的编码是UTF-8 ,而以前的不变。那么右键自己的项目

解决PHP+mysql处理中文乱码的独家方案

解决PHP+mysql处理中文乱码的独家方案 本方案适用于所有页面文件均为php(已成功测试过),如果有混合文件读者可以亲自测试。 问题现象如下图,1所示为修复过的头部引用文件header.php,中文能正常显示,2所示为未修复过的standard.php页面文件。 一、为了解决问题,首先应该设置数据库的字符编码,如下图所示,本例将所有编码设置为UTF-8。 同样将数据库中的所有表的字符编码设置成UTF-8。

这样,数据库中可以正常显示中文字符了,如下图所示。 如果要导入外来数据,也要设置好字符编码,对于非mysql数据库的导入(如从ACCESS数据库中导入),需要设置分隔字段的字符,然后执行便可,如下图所示。 ---------------------------------------- 二、数据库的字符编码完成后,便要将页面文件的编码设置好。 这里的要点有如下三点(红色为说明文字):

为了实现上述三点要求,本例采用的方案如下: 1.创建一个数据库连接文件conn.php ,其中在开头设置header 编码,并在创建数据连接后设置SQL 请求的编码,如下图所示: 2.设置页面文件的文件类型。可以在页面文件中的标签中设置字符编 码。 2.1如果之前的字符编码为gb2312,则该文件类型为ANSI (本例使用DW 和notepad++软件,读者也可用UE 编辑软件,只不过类型显示名称不一样而已),如下图所示: 2.2将标签的编码设置成utf-8并保存文件后,再次打开,会发现文件类型变成了ANSI as UTF-8,如下图所示:

MySQL的安装如何安装MYSQL(图文)

MySQL的安装|如何安装MYSQL(图文) 2008-11-03 17:42 最新的稳定版是4.1.11,建议初学者安装稳定版。下载后是个ZIP的压缩包:mysql-4.1.11-win32.zip(注意找在Windows下使用的安装包),用WinZip或WinRAR解压缩后运行setup.exe进行安装,如图3.1。 图3.1 安装过程与其它Windows安装程序一样,首先出现的是安装向导欢迎界面,见图3.2。 图3.2 直接点击“Next”,继续,选择安装类型,见图3.3。

图3.3 这里有3个类型:Typical(典型)、Complete(完全)、Custom(自定义)。选择“自定义”(Custom)安装,然后点“Next”下一步,出现自定义安装界面,见图3.4。

图3.4 默认情况下MySQL将会被安装到C:Program FilesMySQLMySQL Server 4.1文件夹里面。自己可以改路径,点“Change”更改路径。我嫌它路径太长,更改到了E:MySQL Server 4.1目录下,见图3.4.1。 图3.4.1 点“OK”后回到自定义安装界面,可看见路径已经改为你设置的路径了,见图3.4.2。

图3.4.2 点“Next”,准备开始安装,见图3.5。

图3.5 点“Install”开始安装,见图3.6。 图3.6 完成后出现创建https://www.360docs.net/doc/a07498070.html,帐号的界面,如果是首次使用MySQL,选“Create anew free https://www.360docs.net/doc/a07498070.html, accout”,见图3.7。

图3.7 点“Next”,输入你的Email地址和自己设定的用于登录https://www.360docs.net/doc/a07498070.html,的密码,见图3.7.1。 图3.7.1 填完后点“Next”进入第二步,见图3.7.2。

mysql命令语句大全

show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 显示具体的表结构 select 中加上distinct去除重复字段 mysqladmin drop databasename 删除数据库前,有提示。 显示当前mysql版本和当前日期 select version(),current_date; 修改mysql中root的密码: shell>mysql -h localhost -u root -p //登录 mysql> update user set password=password("xueok654123") where user='root'; mysql> flush privileges //刷新数据库 mysql>use dbname; 打开数据库: mysql>show databases; 显示所有数据库 mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 mysql>describe user; 显示表mysql数据库中user表的列信息); grant 创建用户firstdb(密码firstdb)和数据库,并赋予权限于firstdb数据库 mysql> create database firstdb; mysql> grant all on firstdb.* to firstdb identified by 'firstdb' 会自动创建用户firstdb mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP 地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。 mysql>grant all on *.* to root@202.116.39.2 identified by "123456"; 说明:grant 与on 之间是各种权限,例如:insert,select,update等 on 之后是数据库名和表名,第一个*表示所有的数据库,第二个*表示所有的表 root可以改成你的用户名,@后可以跟域名或IP地址,identified by 后面的是登录用的密码,可以省略,即缺省密码或者叫空密码。 drop database firstdb; 创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个 mysql> grant all privileges on *.* to user@localhost identified by 'something' with 增加新用户 格式:grant select on 数据库.* to 用户名@登录主机identified by "密码"

相关文档
最新文档