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';