MySQL日常管理

查看数据库服务器的版本

select version();

 

创建数据库

create database dbname character_set=utf8 collate=utf8_general_ci

 

删除数据库

drop database dbname;

 

选择使用的数据库

mysql>use dbname;

 

察看数据库中存在的表名

mysql>show tables;

mysql>show tables from schema_name;

 

 

创建数据库表

create table tbname (column_name column_type contraints,......)

mysql中的表,是以文件的形式存储在文件夹下的。

/var/lib/mysql/表名.frm

创建表时,可以为每个字段指定不同的字符集和collation(排序规则)

 

察看创建表的ddl语句

show create table tbname \G;

 

删除表

drop table tbname;

 

修改表

alter table tbname modify column_name newtype;

alter table tbname add column_name column_type;

alter table tbname drop column colname;

alter table tbname change col_name_old col_name_new;

alter table tbname add col_name col_type after col_name2;

alter table tbname add col_name col_type before col_name2;

alter table tbname modify age init(3) first;

alter table tbname rename tbname_new;

 

 

收回insert权限

grant select, insert on test.* to 'uname'@'localhost' identified by 'pwd';

revoke insert on test.* from 'uname'@'localhost';

 

 

察看系统变量

show variables like 'time_zone';

修改mysql的时区

set time_zone='+9:00';

 

 

数据类型

如果表示年月日:date

年月日时分秒   :datetime

时分秒             :  time

系统时间          :timestamp

只表示年          :year

MySQL的客户端工具

1.        mysql

      没有进入mysql的客户端程序时,可以使用下面的方式执行sql文。   

      mysq < xxx.sql   (初始化参数可以在c:/windows/my.ini里进行配置)

      使用重定向的方式,当sql出错时会中断下面的执行。为了继续执行文件中 后面的内容。可以通过添加force选项来实现。

      mysql --force < xxxx.sql

 

   my.ini

   ----------------------

      [client]

           user=root

           password=xxxxx

     

      进入mysql的客户端后,可以执行在.sql文件的内容。如果sql中有错误的内容需要当发生错误的时候终止下面内容的执行.则启动mysql客户端的时候加上下面的参数。mysql --abort-source-on-error

      mysql>source xxxx.sql;

 

mysql -e "show databases"; (不用登陆,直接访问)

 

离开mysql客户端:exit quit \q

改变数据库:use dbname  |  \u dbname (注意后面没有任何符号)


1.        mysqladmin

mysqladmin create dbname

      mysqladmin drop dbname

      mysqladmin extended-status

      mysqladmin password pwd

      mysqladmin ping --p --host=xxx.xxx.xxx.xx

      mysqladmin status --sleep=1 --count=2

      mysqladmin status --debug-info

 

字符集的设定   

http://www.nowamagic.net/librarys/veda/detail/138

 

常见问题:

ERROR 1366 (HY000): Incorrect string value

保证数据库字符集和建表的字符集一样,并支持输入的字符.

 

 

数据库级别指定字符集

在my.cnf文件中进行设点字符集,并且在建数据库和表时保持一致。

my.cnf中设定以下几个属性值就好了。

[client]

default-character-set=utf8

 

[mysql]

default-character-set=utf8

 

[mysqld]

character_set_server=utf8

character_set_filesystem=utf8

通过设定系统变量来设定默认的字符集。

set character_set_server=utf8

set collation_server=utf8_general_bi

个别数据库指定字符集

创建数据库的时候指定字符集和collation,这样创建表的时候,如果不指定,就用创建数据库指定的字符集和collation来创建表。

show variables 和 set 命令,默认是session级别的命令。

show session variables

show global variables

set global xxx=yyy

set @@global xxx=yyy

set session xxx=yyy

set @@session xxx=yyy 

1)查看默认的字符集

      SHOW VARIABLES LIKE 'character%'

      SHOW VARIABLES LIKE 'collation%'

2)修改字符集

  2.1>在服务器级别修改字符集 (修改my.cnf文件或者通过命令行进行设点)

  2.2>在数据库的级别修改字符集(创建数据库的时候指定)

set global | session character_set_server=utf8

使用set命令设定的变量,当数据库重新启动后就失效了。

SHOW VARIABLES LIKE 'character%'

SHOW VARIABLES LIKE 'collation%'

Set character_set_system=utf8  (always set this value, because mysql server default)

set character_set_server=utf8

set character_set_results=utf8

set character_set_database=utf8      

set character_set_connection=utf8     当前connect传输的字符集

set character_set_client=utf8           客户端使用的字符集的设定

set character_set_results=utf8

set collation_connection=utf8_general_ci

set collation_database=utf8_general_ci

set collation_server=utf8_general_ci

SHOW VARIABLES LIKE 'character%'

SHOW VARIABLES LIKE 'collation%'

Set character_set_system=utf8  (always set this value, because mysql server default)

set character_set_server=utf8

set character_set_results=utf8

set character_set_database=utf8      

set character_set_connection=utf8     当前connect传输的字符集

set character_set_client=utf8           客户端使用的字符集的设定

set character_set_results=utf8

set collation_connection=utf8_general_ci

set collation_database=utf8_general_ci

set collation_server=utf8_general_ci

如果客户端使用的是ASCII连接到数据库,但想把所有的statement转化为utf8的行式,

这样character_set_client=ASCII

     character_set_connection=utf8

character_set_result:返回给客户端的字符集结果

通常情况下,character_set_clientcharacter_set_result应该设成一致的。

SELECT collation_name, is_default FROM information_schema.collations WHERE character_set_name = 'UTF8';


你可能感兴趣的:(MySQL日常管理)