1、MySQL安裝mysql
到MySQL官網上http://dev.mysql.com/download...,下載mysql可安裝dmg版本
好比:Mac OS X ver. 10.9 (x86, 64-bit), DMG Archivesql
下載完的文件爲:mysql-5.6.24-osx10.9-x86_64.dmg
點擊安裝包一步步傻瓜式安裝就行。數據庫
系統偏好設置的其餘裏,點擊「mysql」的圖標
點擊Start MySQL Server按鈕,啓動mysql服務器
2、打開終端,定義MySQL別名ide
輸入 alias 命令
alias mysql=/usr/local/mysql/bin/mysql操作系統
回車,在輸入
alias mysqladmin=/usr/local/mysql/bin/mysqladmin線程
3、設置mysql root帳號的密碼日誌
mysqladmin -u root password *(#初始密碼)code
// 若是設置完成後,須要修改,執行命令
mysqladmin -u root -p password new*(#最新密碼)
接着會提示輸入密碼,此時輸入舊密碼,回車server
4、鏈接數據庫
mysql -u root -p
而後提示輸入密碼,輸入三中設置的密碼
若是是登陸遠程主機上的mysql數據庫
mysql -h 主機地址 -u 用戶名 -p 用戶密碼
5、執行經常使用的mysql數據庫操做
注意:如下操做都是在鏈接數據庫以後,進入mysql環境,以後執行的命令都必需帶有分號「;」
1.新增用戶 受權
格式以下: grant 操做權限 on 數據庫.* to test1@"%" identified by "abc";
意思是: 授予,某主機上的某用戶(附帶該用戶的登陸密碼)在某數據庫上,執行某些操做的權限
(1)好比:任意主機上(「%」),用戶(用戶名:test1,密碼:adc)在全部數據庫上,執行任意操做的權限(危險哦)
grant all privileges on . to test1@"%" identified by 「abc」;
其中 all privileges 表示查詢、插入、修改、刪除的權限:select、insert、update、delete
以上命令等價於:
grant select,insert,update,delete on . to test1@"%" identified by "abc";
而後刷新權限
flush privileges;
(2)好比:受權本地主機上的用戶操做數據庫的權限
建立數據庫(好比:openfire)
create database openfire;
授予本地主機用戶 (用戶名:test1,密碼:test1)訪問數據庫(數據庫名稱:openfire)的操做權限
grant all privileges on openfire.* test1@localhost identified by "test1";
flush privileges;
如今,就能夠用新的用戶,訪問openfire數據庫了。
2.更新指定帳戶的密碼(用戶名:test1,新密碼:1234)
update mysql.user set password=password('1234') where User="test1" and Host="localhost";
3.刪除用戶
先使用mysql數據庫
use mysql;
刪除mysql數據庫中user表中的某個本地用戶(test7)
delete from user where User="test7" and Host=「localhost」;
4.顯示命令
(1)顯示全部數據庫列表
show databases;
初始化只有兩個數據庫,mysql 和 test
注意:Mysql的系統信息都存儲在mysql庫中,好比:修改密碼和新增用戶,實際就是在這個庫進行
(2)打開某個數據庫(好比數據庫:openfire);
use openfire;
(3)顯示本庫中的全部表
show tables;
(4)顯示某表的結構
describe table1;
(5)建庫
create database 庫名;
(6)建表
use 庫名;
create table 表名 (字段設定列表);
(7)刪庫
drop database 庫名;
(8)刪表
drop table 表名;
(9)將表中的記錄清空
delete from 表名;
(10)顯示錶中的記錄
select * from 表名;
6、退出mysql
exit
7、啓動和中止mysql
啓動
/usr/local/mysql/share/mysql.server start
中止
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
輸入root密碼
附:
1、MySQL處理數據庫和表的經常使用命令
處理數據庫
查看數據庫
獲取服務器上的數據庫列表一般頗有用。執行show databases;命令就能夠搞定。
mysql> show databases;
建立數據庫
mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)
使用數據庫
數據庫一旦建立,就能夠經過「使用」(use命令)數據庫,將其指定爲默認的工做數據庫。
mysql> use db_test;
Database changed
刪除數據庫
刪除數據庫的方式與建立的方式很類似。能夠在mysql客戶端中使用drop命令刪除數據庫,以下:
mysql> drop database db_test;
Query OK, 0 rows affected (0.00 sec)
處理表
這裏將對如何建立、列出、查看、刪除和修改MySQL數據庫表。
建立表
表經過create table語句來建立。建立表的過程當中會使用很是多的選項和子句,在這裏徹底總結一遍也是不現實的,這裏只是總結最廣泛的,之後遇到別的,再單個總結。建立表的通常用法以下:
mysql> create table tb_test(
-> id int unsigned not null auto_increment, -> firstname varchar(25) not null, -> lastname varchar(25) not null, -> email varchar(45) not null, -> phone varchar(10) not null, -> primary key(id));
Query OK, 0 rows affected (0.03 sec)
記住,表至少包含一列。另外,建立表以後老是能夠再回過頭來修改表的結構。不管當前是否在使用目標數據庫,均可以建立表,只要在表名前面加上目標數據庫便可。例如:
mysql> create table db_test.tb_test(
-> id int unsigned not null auto_increment, -> firstname varchar(25) not null, -> lastname varchar(25) not null, -> email varchar(45) not null, -> phone varchar(10) not null, -> primary key(id));
Query OK, 0 rows affected (0.03 sec)
有條件的建立表
在默認狀況下,若是試圖建立一個已經存在的表,MySQL會產生一個錯誤。爲了不這個錯誤,create table語句提供了一個子句,若是你但願在目標表已經存在的狀況下簡單地退出表建立,就可使用這個子句。例如:
mysql> create table if not exists db_test.tb_test(
-> id int unsigned not null auto_increment, -> firstname varchar(25) not null, -> lastname varchar(25) not null, -> email varchar(45) not null, -> phone varchar(10) not null, -> primary key(id));
Query OK, 0 rows affected, 1 warning (0.00 sec)
不管是否已經建立,都會在返回到命令提示窗口時顯示「Query OK」消息。
複製表
基於現有的表建立新表是一項很容易的任務。如下代碼將獲得tb_test表的一個副本,名爲tb_test2:
mysql> create table tb_test2 select * from db_test.tb_test;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
將向數據庫增長一個相同的表tb_test2。而有的時候,可能但願只基於現有表的幾個列建立一個表。經過create select語句中指定列就能夠實現:
mysql> describe tb_test; | |||||
---|---|---|---|---|---|
Field | Type | Null | Key | Default | Extra |
id | int(10) unsigned | NO | PRI | NULL | auto_increment |
firstname | varchar(25) | NO | NULL | ||
lastname | varchar(25) | NO | NULL | ||
varchar(45) | NO | NULL | |||
phone | varchar(10) | NO | NULL |
5 rows in set (0.01 sec)
mysql> create table tb_test2 select id, firstname, lastname, email from tb_test;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe tb_test2; | |||||
---|---|---|---|---|---|
Field | Type | Null | Key | Default | Extra |
id | int(10) unsigned | NO | 0 | ||
firstname | varchar(25) | NO | NULL | ||
lastname | varchar(25) | NO | NULL | ||
varchar(45) | NO | NULL |
4 rows in set (0.01 sec)
建立臨時表
有的時候,當工做在很是大的表上時,可能偶爾須要運行不少查詢得到一個大量數據的小的子集,不是對整個表運行這些查詢,而是讓MySQL每次找出所需的少數記錄,將記錄保存到一個臨時表可能更快一些,而後對這些臨時表進行查詢操做。能夠經過使用temporary關鍵字和create table語句來實現。
mysql> create temporary table emp_temp select firstname, lastname from tb_test;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
臨時表的建立與其它表同樣,只是它們存儲在操做系統指定的臨時目錄中。臨時表將在你鏈接MySQL期間存在,當你斷開時,MySQL將自動刪除表並釋放全部的內存空間;固然了,你也能夠手動的使用drop table命令刪除臨時表。
查看數據庫中可用的表
可使用show tables命令完成。例如:
mysql> show tables; |
---|
Tables_in_db_test |
tb_test |
tb_test2 |
2 rows in set (0.00 sec)
查看錶結構
可使用describe語句查看錶結構,例如:
mysql> describe tb_test; | |||||
---|---|---|---|---|---|
Field | Type | Null | Key | Default | Extra |
id | int(10) unsigned | NO | PRI | NULL | auto_increment |
firstname | varchar(25) | NO | NULL | ||
lastname | varchar(25) | NO | NULL | ||
varchar(45) | NO | NULL | |||
phone | varchar(10) | NO | NULL |
5 rows in set (0.00 sec)
另外,使用show命令也能獲得相同的結果,例如:
mysql> show columns in tb_test; | |||||
---|---|---|---|---|---|
Field | Type | Null | Key | Default | Extra |
id | int(10) unsigned | NO | PRI | NULL | auto_increment |
firstname | varchar(25) | NO | NULL | ||
lastname | varchar(25) | NO | NULL | ||
varchar(45) | NO | NULL | |||
phone | varchar(10) | NO | NULL |
5 rows in set (0.00 sec)
刪除表
刪除表是使用drop table語句實現的,其語法以下:
drop [temporary] table [if exists] tbl_name [, tbl_name, ...]
更改表結構
咱們會發現,咱們會常常修改和改進表結構,特別是在開發初期;可是,每次進行修改時沒必要都先刪除再從新建立表。相反,可使用alter語句修改表的結構。利用這個語句,能夠再必要時刪除、修改和增長列。和create table同樣,alter table提供了不少子句、關鍵字和選項。這裏只是會說一些簡單的使用,好比在表tb_demo表中插入一列,表示email,代碼以下:
mysql> alter table tb_demo add column email varchar(45);
Query OK, 0 rows affected (0.14 sec)
Records: 0 Duplicates: 0 Warnings: 0
新的列放在表的最後位置。不過,還可使用適當的關鍵字(包括first、after和last)來控制新列的位置。若是想修改表,好比,剛剛加的email,我想加入一個not null控制,代碼能夠是這樣的:
mysql> alter table tb_demo change email email varchar(45) not null;
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
若是覺的這個email這列沒有存在的必要了,可使用下面的代碼刪除它,例如:
mysql> alter table tb_demo drop email;
Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0
2、經常使用命令彙總:
鏈接:mysql -h 主機地址 -u 用戶名 -p 用戶密碼 (注:u與root能夠不用加空格,其它也同樣)
斷開:exit (回車)
建立受權:grant select on 數據庫.* to 用戶名@登陸主機 identified by /"密碼/"
修改密碼:mysqladmin -u用戶名 -p舊密碼 password 新密碼
刪除受權: revoke select,insert,update,delete om . from test2@localhost ;
顯示數據庫:show databases;
顯示數據表:show tables;
顯示錶結構:describe 表名;
建立庫:create database 庫名;
刪除庫:drop database 庫名;
使用庫:use 庫名;
建立表:create table 表名 (字段設定列表);
刪除表:drop table 表名;
修改表:alter table t1 rename t2
查詢表:select * from 表名;
清空表:delete from 表名;
備份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql
恢復表: mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql(操做前先把原來表刪除)
增長列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
刪除列:ALTER TABLE t2 DROP COLUMN c;
備份數據庫:mysql/bin/mysqldump -h(ip) -uroot -p(password) databasename > database.sql
恢復數據庫:mysql/bin/mysql -h(ip) -uroot -p(password) databasename < database.sql
複製數據庫:mysql/bin/mysqldump --all-databases > all-databases.sql
修復數據庫:mysqlcheck -A -o -uroot -p54safer
文本數據導入:load data local infile /"文件名/" into table 表名;
數據導入導出:mysql/bin/mysqlimport database tables.txt
3、權限說明
全局管理權限:FILE: 在MySQL服務器上讀寫文件。PROCESS: 顯示或殺死屬於其它用戶的服務線程。RELOAD: 重載訪問控制表,刷新日誌等。SHUTDOWN: 關閉MySQL服務。數據庫/數據表/數據列權限:ALTER: 修改已存在的數據表(例如增長/刪除列)和索引。CREATE: 創建新的數據庫或數據表。DELETE: 刪除表的記錄。DROP: 刪除數據表或數據庫。INDEX: 創建或刪除索引。INSERT: 增長表的記錄。SELECT: 顯示/搜索表的記錄。UPDATE: 修改表中已存在的記錄。特別的權限:ALL: 容許作任何事(和root同樣)。USAGE: 只容許登陸–其它什麼也不容許作。