MySQL平常管理

http://blog.itpub.net/7607759mysql

用root賬號登陸後,在/etc/my.cnf中的[mysqld]後添加添加lower_case_table_names=1,重啓MYSQL服務,這時已設置成功:不區分表名的大小寫;sql

查看數據庫服務器的版本數據庫

select version();windows

建立數據庫服務器

CREATE DATABASE IF NOT EXISTS numysql DEFAULT CHARSET utf8 COLLATE utf8_general_cisession

建立用戶ide

create user 'demo'@'%' identified by 'yourpwd';工具

grant create, drop, alter, insert, update, select, delete, index on db_name.* to 'demo'@'%';ui

revoke create, drop, alter on db_name.* to 'demo'@'%';this

flush privileges;

刪除數據庫

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_client和character_set_result應該設成一致的。

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

相關文章
相關標籤/搜索