由於項目的需要,我也開始接觸mysql 了,命令真是多呵呵,當然會遇到很多問題,在此一點點的記錄下來,並一點點的深入,即是分享也是記憶,希望共勉!
1.安裝
首先的問題當然是安裝啦
我圖簡單,就使用了yum install mysql ,登入的時候,貌似說服務沒有開,sock檔案錯誤,可是mysqld服務也沒有找到,沒想到只有一個用戶端,於是網上找一下,
$ yum list mysql*
$ yum install mysql-server
就這樣一小心的安裝完了
2.修改設定檔
暫時修改一下編碼(添加在密碼下方添加): default-character-set = utf8
#vi /etc/my.cnf
# chkconfig –list mysqld ← 確認MySQL自啟動mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 如果2–5為on的狀態就OK
select user,host from mysql.user; ← 查看使用者資訊
3.啟動mysql服務,並設定為系統服務:
# chkconfig mysqld on ← 設定MySQL服務隨系統啟動自啟動
#service mysqld start ←啟動服務(# /etc/rc.d/init.d/mysqld start也可以)
4.修改密碼
$ mysql -uroot -p
進去,密碼為空白(預設),於是修改之
select user,host,password from mysql.user; ← 查看使用者資訊
set password for root@localhost=password(‘在這裡填入root密碼’); ←
設定root密碼
select user,host,password from mysql.user; ←
查看使用者資訊
當然這裡也可以用為mysq.user表添加資料的方式登入 ,具體方法參考:http://www.chinahtml.com/0511/mysql-11329103022029.html
exit ← 退出MySQL伺服器
然後再重新登入
5.刪除匿名使用者:
$ delete from mysql.user where user=”; ← 刪除匿名使用者
$ select user,host from mysql.user; ← 查看使用者資訊
6.目前的版本資訊,日期和資料庫:
$ select version(),current_date;
$ show databases; ← 查看系統已存在的資料庫
mysql查看開啟的連接埠: show variables like ‘port’;
drop database test; ← 刪除名為test的空資料庫
show databases; ← 查看系統已存在的資料庫
7.添加使用者與開啟遠程登入
格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"
如,增加一個使用者user1密碼為password1,讓其可以在本機上登入, 並對所有數 據庫有查詢、插入、修改、刪除的許可權。首先用以root使用者連入mysql,然後鍵入以下命令:
$ grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
或者:
$ grant all on *.* to user1@"%" identified by "your password";
如果希望該使用者能夠在任何機器上登陸mysql,則將localhost改為"%"。
如果你不想user1有密碼,可以再打一個命令將密碼去掉。
$ grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
這個可以參考:http://www.cnblogs.com/good_hans/archive/2010/03/29/1700046.html
8.刪除使用者權限
revoke:只刪除了使用者權限,但沒有刪除這個使用者
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| root | localhost |
| xbb | localhost |
| root | wangxg |
+------------------+-----------+
mysql> revoke insert,update,delete,select ON *.* from 'xbb'@'localhost' IDENTIFIED BY '123';
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| root | localhost |
| xbb | localhost |
| root | wangxg |
+------------------+-----------+
查看使用者權限(部分參考:http://xuebinbin212.blog.163.com/blog/static/11216737620111175130898/)
mysql> show grants for xbb@localhost;
註:drop user:刪除了整個使用者及其許可權(包括資料字典中的資料)
9.mysql 中sql代碼的注釋兩種注釋:
單行注釋 ,用 # 開頭的,該行後面的為注釋
多行注釋, /* */ ,以/*開頭 ,*/ 結尾 為注釋
還有一種注釋,這個跟版本有一些關係 ,這個可以參考一下網上資料
10.mysql 大小寫敏感規則1、Linux下mysql安裝完後是預設:區分表名的大小寫,不區分列名的大小寫;
2、用root帳號登入後,在/etc/my.cnf 中的[mysqld]後添加添加lower_case_table_names=1,重啟MYSQL服務,這時已設定成功:不區分表名的大小寫;
MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的:
1)、資料庫名與表名是嚴格區分大小寫;
2)、表的別名是嚴格區分大小寫;
3)、列名與列的別名在所有的情況下均是忽略大小寫;
4)、變數名也是嚴格區分大小寫;
5)MySQL在Windows下都不區分大小寫。
如果想在查詢時區分欄位值的大小寫,則:欄位值需要設定BINARY屬性,設定的方法有多種:
A、建立時設定:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql table editor中直接勾選BINARY項。
11.字元集問題
畢竟是中國人,習慣用自己的語言。用 show create table 表名 ; 查看錶的建立
查看字元集:mysql> SHOW CHARACTER SET;A.在mysql中只要是gb2312,gbk,utf8等支援多位元組編碼的字元集都可以儲存漢字,當然,gb2312中的漢字數量遠少於gbk,而gb2312,gbk等都可在utf8下編碼。因此,要想資料表中能儲存中文只需資料表的字元集按需任選一種可儲存漢字的既可。B.要保證顯示的字元集與資料庫儲存字元集一致,才不會出現亂碼
12.查看資料庫版本資訊A.[testg@login ~]$ mysql -Vmysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
B.mysql> status;-------------------------------------------------------------mysql Ver 14.14 Distrib 5.5.23, for Linux (i686) using readline 5.1
........................
C.mysql> select version();+-----------+| version() |+-----------+| 5.5.23 |+-----------+1 row in set (0.00 sec)
13.修改表屬性插入資料:INSERT INTO [表名] (欄位1,欄位2) VALUES (100,\'51WINDOWS.NET\')
刪除資料:DELETE FROM [表名] WHERE [欄位名]>100
更新資料:UPDATE [表名] SET [欄位1] = 200,[欄位2] = \'51WINDOWS.NET\' WHERE [欄位三] = \'HAIWA\'
新增欄位:ALTER TABLE [表名] ADD [欄位名] NVARCHAR (50) NULL
刪除欄位:ALTER TABLE [表名] DROP COLUMN [欄位名]
修改欄位:ALTER TABLE [表名] ALTER COLUMN [欄位名] NVARCHAR (50) NULL
重新命名表:(Access 重新命名表,請參考文章:在Access資料庫中重新命名表)sp_rename \'表名\', \'新表名\', \'OBJECT\'
建立約束:ALTER TABLE [表名] ADD CONSTRAINT 約束名 CHECK ([限制欄位] <= \'2000-1-1\')
刪除約束:ALTER TABLE [表名] DROP CONSTRAINT 約束名
建立預設值ALTER TABLE [表名] ADD CONSTRAINT 預設值名 DEFAULT \'51WINDOWS.NET\' FOR [欄位名]
刪除預設值ALTER TABLE [表名] DROP CONSTRAINT 預設值名
參考:http://hi.baidu.com/shenjiedong888/item/eebbe48be73631ce99255f26