1.1 Linux下啟動(dòng)mysql 的命令:
1.2 Linux下重啟mysql 的命令:
/usr/local/mysql/bin/mysqladmin -uroot -p shutdown
1.3 Linux下關(guān)閉mysql 的命令:
二、數(shù)據(jù)庫(kù)連接
2.1 連接MySQL
格式:$mysql_dir/bin/mysql [-h主機(jī)地址] -u用戶(hù)名 -p用戶(hù)密碼,回車(chē)后提示輸入密碼。
2.2 退出MySQL
格式:exit/quit
三、修改密碼
3.1 mysqladmin 命令
格式:mysqladmin -u用戶(hù)名 -p舊密碼 password 新密碼
例1:給root加個(gè)密碼123456。首先在終端下進(jìn)入目錄$mysql_dir/bin,然后鍵入以下命令
./mysqladmin -uroot password ’123456′
注:因?yàn)殚_(kāi)始時(shí)root沒(méi)有密碼,所以-p舊密碼一項(xiàng)就可以省略了。
例2:再將root的密碼改為abc123。
./mysqladmin -uroot -p123456 password abc123
3.2 UPDATE user 語(yǔ)句
首先使用root 帳戶(hù)登入mysql,然后執(zhí)行:
UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';FLUSH PRIVILEGES;
3.3 SET PASSWORD 語(yǔ)句
同樣,首先使用root 帳戶(hù)登入mysql,然后執(zhí)行:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('abc123');
四、創(chuàng)建用戶(hù)與授權(quán)
4.1 CREATE USER
CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
CREATE USER用于創(chuàng)建新的MySQL賬戶(hù)。要使用CREATE USER,您必須擁有mysql 數(shù)據(jù)庫(kù)的全局CREATE USER權(quán)限,或擁有INSERT權(quán)限。對(duì)于每個(gè)賬戶(hù),CREATE USER會(huì)在沒(méi)有權(quán)限的mysql.user表中創(chuàng)建一個(gè)新記錄。如果賬戶(hù)已經(jīng)存在,則出現(xiàn)錯(cuò)誤。
使用自選的IDENTIFIED BY子句,可以為賬戶(hù)指定一個(gè)密碼。user值和密碼的給定方法和GRANT語(yǔ)句一樣。特別要注意的是,要在純文本中指定密碼,需忽略PASSWORD關(guān)鍵詞。要把密碼指定為由PASSWORD()函數(shù)返回的混編值,需包含關(guān)鍵字PASSWORD。
例1:創(chuàng)建新用戶(hù)david & sandy
mysql> create user 'david'@'localhost' identified by 'password';Query OK, 0 rows affected (0.00 sec)mysql>
mysql> create user 'sandy'@'localhost' identified by PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19';Query OK, 0 rows affected (0.00 sec)mysql>
4.2 使用GRANT語(yǔ)句
最好的方法是使用GRANT語(yǔ)句,因?yàn)檫@樣更精確,錯(cuò)誤少。從MySQL 3.22.11起提供了GRANT;它的主要用途是來(lái)給帳戶(hù)授權(quán)的,但也可用來(lái)建立新帳戶(hù)并同時(shí)授權(quán)。
注意:當(dāng)mysql 運(yùn)行于no_auto_create_user 時(shí)要提供新建用戶(hù)的密碼,否則不能創(chuàng)建新用戶(hù)。
格式:
GRANT privileges ON databasename.tablename TO 'username'@'host' identified by 'password';
例1、增加一個(gè)用戶(hù)test1,密碼為abc,讓他可以在任何主機(jī)上登錄,并對(duì)所有數(shù)據(jù)庫(kù)擁有所有權(quán)限。
首先用以root用戶(hù)連入MySQL,然后鍵入以下命令:
grant all privileges on *.* to 'test1'@'%' identified by 'abc';flush privileges;
例2、增加一個(gè)用戶(hù)test2,密碼為abc,讓他只可以在localhost上登錄,并可以對(duì)數(shù)據(jù)庫(kù)david進(jìn)行查詢(xún)、插入、修改、刪除的操作。
grant select,insert,update,delete on david.* to 'test2'@'localhost' identified by 'abc';flush privileges;
如果不想test2有密碼,可以再打一個(gè)命令將密碼消掉。
grant select,insert,update,delete on david.* to 'test2'@'localhost' identified by '';
grant 更多用法,請(qǐng)自行Google+Baidu。
4.3 直接操作MySQL授權(quán)表
除了GRANT,你可以直接用INSERT語(yǔ)句創(chuàng)建相同的賬戶(hù),然后使用FLUSH PRIVILEGES告訴服務(wù)器重載授權(quán)表。
例1:創(chuàng)建用戶(hù)test3,讓其具有同4.2 例2中test2用戶(hù)同樣的權(quán)限。
mysql> insert into mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv) values('localhost', 'test3', PASSWORD('password'),'Y','Y','Y','Y');Query OK, 1 row affected, 3 warnings (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql>
mysql> select Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv from mysql.user where User='test3';+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv |+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+| localhost | test3 | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | Y | Y | Y | Y | +-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+1 row in set (0.00 sec)mysql>
當(dāng)用INSERT創(chuàng)建賬戶(hù)時(shí),使用FLUSH PRIVILEGES 的原因是告訴服務(wù)器重讀授權(quán)表。否則,只有重啟服務(wù)器后更改才會(huì)生效。使用 GRANT,則不需要使用FLUSH PRIVILEGES。
用INSERT語(yǔ)句時(shí),使用PASSWORD()函數(shù)是為了加密密碼。GRANT語(yǔ)句自動(dòng)加密密碼,因此不需要PASSWORD()。
'Y' 值啟用賬戶(hù)權(quán)限。
五、庫(kù)操作
必須首先登錄到mysql 中,有關(guān)操作都是在mysql 的提示符下進(jìn)行,而且每個(gè)命令以分號(hào)結(jié)束。
5.1 創(chuàng)建數(shù)據(jù)庫(kù)
命令:create database <數(shù)據(jù)庫(kù)名>;
例1:創(chuàng)建一個(gè)名為test 的數(shù)據(jù)庫(kù)
mysql> create database test;Query OK, 1 row affected (0.00 sec)mysql>
5.2 顯示所有的數(shù)據(jù)庫(kù)
命令:show databases;(注意:最后有個(gè)s)
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema | | david | | mysql | | test | +--------------------+4 rows in set (0.00 sec)mysql>
5.3 刪除數(shù)據(jù)庫(kù)
命令:drop database <數(shù)據(jù)庫(kù)名>;
例2:刪除名為test 的數(shù)據(jù)庫(kù)
mysql> drop database test;Query OK, 0 rows affected (0.00 sec)mysql>
5.4 連接數(shù)據(jù)庫(kù)
命令: use <數(shù)據(jù)庫(kù)名>;
例3:連接david 數(shù)據(jù)庫(kù)
mysql> use david;Database changedmysql>
5.5 查看當(dāng)前使用的數(shù)據(jù)庫(kù)
命令:select database();
mysql> select database();+------------+| database() |+------------+| david | +------------+1 row in set (0.00 sec)mysql>
5.6 當(dāng)前數(shù)據(jù)庫(kù)包含的表信息
命令:show tables;(注意:最后有個(gè)s)
mysql> show tables;+-----------------+| Tables_in_david |+-----------------+| emp | +-----------------+1 row in set (0.00 sec)mysql>
六、表操作
操作之前應(yīng)連接某個(gè)數(shù)據(jù)庫(kù)。
6.1 建立表
create table <表名> (<字段名1> <類(lèi)型1> [,..<字段名n> <類(lèi)型n>]);create table tablename (col1 type1 [not null] [primary key],col2 type2 [not null],..);
mysql> create table myclass ( -> id int(4) not null primary key auto_increment, -> name char(20) not null, -> sex int(4) not null default '0', -> degree double(16,2));Query OK, 0 rows affected (0.04 sec)mysql>
補(bǔ)充:根據(jù)已有的表創(chuàng)建新表。
create table tab_new like tab_old; (只有表結(jié)構(gòu))create table tab_new as select * from tab_old; (既包含表結(jié)構(gòu),又包含表數(shù)據(jù))
只包含表結(jié)構(gòu):
mysql> create table myclass2 like myclass;Query OK, 0 rows affected (0.00 sec)mysql>
既包含表結(jié)構(gòu),又包含表數(shù)據(jù):
mysql> insert into myclass values(1, 'david', 1, 20130417.16);Query OK, 1 row affected (0.02 sec)mysql> mysql> mysql> create table myclass3 as select * from myclass;Query OK, 1 row affected (0.07 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> select * from myclass3;+----+-------+-----+-------------+| id | name | sex | degree |+----+-------+-----+-------------+| 1 | david | 1 | 20130417.16 | +----+-------+-----+-------------+1 row in set (0.02 sec)mysql>
6.2 獲取表結(jié)構(gòu)
命令:
desc 表名;orshow columns from 表名;
獲取myclass & myclass2 表結(jié)構(gòu)
mysql> desc myclass;+--------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+----------------+| id | int(4) | NO | PRI | NULL | auto_increment | | name | char(20) | NO | | | | | sex | int(4) | NO | | 0 | | | degree | double(16,2) | YES | | NULL | | +--------+--------------+------+-----+---------+----------------+4 rows in set (0.00 sec)mysql> show columns from myclass2;+--------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+----------------+| id | int(4) | NO | PRI | NULL | auto_increment | | name | char(20) | NO | | | | | sex | int(4) | NO | | 0 | | | degree | double(16,2) | YES | | NULL | | +--------+--------------+------+-----+---------+----------------+4 rows in set (0.00 sec)mysql>
6.3 刪除表
命令:drop table <表名>;
例:刪除表名為 myclass3 的表
mysql> drop table myclass3;Query OK, 0 rows affected (0.00 sec)mysql> show tables;+-----------------+| Tables_in_david |+-----------------+| emp | | myclass | | myclass2 | +-----------------+3 rows in set (0.00 sec)mysql>
6.4 更改表名
命令:rename table 原表名 to 新表名;
例:將表 myclass2 名字更改為 myclass4
mysql> rename table myclass2 to myclass4;Query OK, 0 rows affected (0.02 sec)mysql> show tables;+-----------------+| Tables_in_david |+-----------------+| emp | | myclass | | myclass4 | +-----------------+3 rows in set (0.00 sec)mysql>
6.5 在表中增加字段
命令:alter table 表名 add 字段 類(lèi)型 其他;
例:在表 myclass 中添加了一個(gè)字段passtest,類(lèi)型為int(4),默認(rèn)值為0。
mysql> alter table myclass add passtest int(4) default '0';Query OK, 1 row affected (0.04 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> desc myclass;+----------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+--------------+------+-----+---------+----------------+| id | int(4) | NO | PRI | NULL | auto_increment | | name | char(20) | NO | | | | | sex | int(4) | NO | | 0 | | | degree | double(16,2) | YES | | NULL | | | passtest | int(4) | YES | | 0 | | +----------+--------------+------+-----+---------+----------------+5 rows in set (0.00 sec)mysql>
七、數(shù)據(jù)操作
7.1 插入數(shù)據(jù)
命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];
例:向 myclass 表中插入以下記錄,留空的表示使用默認(rèn)值。
mysql> insert into myclass (id, name, sex, degree, passtest) values(1, 'david', 1, 80.56, 78); Query OK, 1 row affected (0.00 sec)mysql> insert into myclass values(2, 'sandy', 0, 100, 90);Query OK, 1 row affected (0.00 sec)mysql> insert into myclass (id, name, sex, degree) values(3, 'renee', 0, 90.34);Query OK, 1 row affected (0.00 sec)mysql> insert into myclass (id, name) values(4, 'china');Query OK, 1 row affected (0.00 sec)mysql>
7.2 查詢(xún)表中的數(shù)據(jù)
a. 查詢(xún)所有行
命令:select <字段1,字段2,...> from < 表名 > where < 表達(dá)式 >;
例1:查看表 myclass 中所有數(shù)據(jù)
mysql> select * from myclass;+----+-------+-----+--------+----------+| id | name | sex | degree | passtest |+----+-------+-----+--------+----------+| 1 | david | 1 | 80.56 | 78 | | 2 | sandy | 0 | 100.00 | 90 | | 3 | renee | 0 | 90.34 | 0 | | 4 | china | 0 | NULL | 0 | +----+-------+-----+--------+----------+4 rows in set (0.00 sec)mysql>
例2:查詢(xún)表 david 相關(guān)信息
mysql> select * from myclass where name='david';+----+-------+-----+--------+----------+| id | name | sex | degree | passtest |+----+-------+-----+--------+----------+| 1 | david | 1 | 80.56 | 78 | +----+-------+-----+--------+----------+1 row in set (0.00 sec)mysql>
b. 查詢(xún)前幾行數(shù)據(jù)
例如:查看表 myclass 中前2行數(shù)據(jù)
mysql> select * from myclass limit 2;+----+-------+-----+--------+----------+| id | name | sex | degree | passtest |+----+-------+-----+--------+----------+| 1 | david | 1 | 80.56 | 78 | | 2 | sandy | 0 | 100.00 | 90 | +----+-------+-----+--------+----------+2 rows in set (0.00 sec)mysql>
或者:
mysql> select * from myclass order by id limit 2;+----+-------+-----+--------+----------+| id | name | sex | degree | passtest |+----+-------+-----+--------+----------+| 1 | david | 1 | 80.56 | 78 | | 2 | sandy | 0 | 100.00 | 90 | +----+-------+-----+--------+----------+2 rows in set (0.01 sec)mysql>
7.3 刪除表中的數(shù)據(jù)
命令:delete from 表名 where 表達(dá)式;
例如:刪除表 myclass 中編號(hào)為4的記錄
mysql> delete from myclass where id=4;Query OK, 1 row affected (0.00 sec)mysql> select * from myclass;+----+-------+-----+--------+----------+| id | name | sex | degree | passtest |+----+-------+-----+--------+----------+| 1 | david | 1 | 80.56 | 78 | | 2 | sandy | 0 | 100.00 | 90 | | 3 | renee | 0 | 90.34 | 0 | +----+-------+-----+--------+----------+3 rows in set (0.00 sec)mysql>
7.4 修改表中的數(shù)據(jù)
update 表名 set 字段 = 新值,… where 條件;
例:修改 myclass 表中編號(hào)為1的記錄,將degree 值改成89.99
mysql> update myclass set degree=89.99 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> select * from myclass;+----+-------+-----+--------+----------+| id | name | sex | degree | passtest |+----+-------+-----+--------+----------+| 1 | david | 1 | 89.99 | 78 | | 2 | sandy | 0 | 100.00 | 90 | | 3 | renee | 0 | 90.34 | 0 | +----+-------+-----+--------+----------+3 rows in set (0.00 sec)mysql>
八、數(shù)據(jù)的導(dǎo)入導(dǎo)出
8.1 導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)
命令:mysqldump -u 用戶(hù)名 -p 數(shù)據(jù)庫(kù)名 > 導(dǎo)出的文件名
[root@TS-DEV bin]# ./mysqldump -uroot -p david > /tmp/david/david.sqlEnter password: [root@TS-DEV bin]# ll /tmp/david/total 4-rw-r--r-- 1 root root 2764 Apr 17 17:13 david.sql[root@TS-DEV bin]#
8.2 導(dǎo)出一個(gè)表
命令:mysqldump -u 用戶(hù)名 -p 數(shù)據(jù)庫(kù)名 表名> 導(dǎo)出的文件名
[root@TS-DEV bin]# ./mysqldump -uroot -p david myclass > /tmp/david/david_myclass.sqlEnter password: [root@TS-DEV bin]# ll /tmp/david/total 8-rw-r--r-- 1 root root 1854 Apr 17 17:16 david_myclass.sql-rw-r--r-- 1 root root 2764 Apr 17 17:13 david.sql[root@TS-DEV bin]#
8.3 導(dǎo)出一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)
命令:mysqldump -u root -p -d --add-drop-table test > test_db.sql
-d 沒(méi)有數(shù)據(jù) --add-drop-table 在每個(gè)create 語(yǔ)句之前增加一個(gè)drop table
[root@TS-DEV bin]# ./mysqldump -uroot -p -d --add-drop-table david > /tmp/david/david_db.sqlEnter password: [root@TS-DEV bin]#
8.4 導(dǎo)入數(shù)據(jù)庫(kù)
a. 常用source 命令
進(jìn)入mysql 數(shù)據(jù)庫(kù)控制臺(tái)
# ./mysql -uroot -p
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema | | mysql | +--------------------+2 rows in set (0.00 sec)mysql> create database sandy;Query OK, 1 row affected (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema | | mysql | | sandy | +--------------------+3 rows in set (0.00 sec)mysql> use sandyDatabase changedmysql> source /tmp/david/david.sqlQuery OK, 0 rows affected (0.00 sec)...Query OK, 2 rows affected (0.00 sec)Records: 2 Duplicates: 0 Warnings: 0...Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0...Query OK, 0 rows affected (0.00 sec)mysql> show tables;+-----------------+| Tables_in_sandy |+-----------------+| emp | | myclass | | myclass4 | +-----------------+3 rows in set (0.00 sec)mysql> select * from emp;+------+-------+| id | name |+------+-------+| 1 | david | | 2 | sandy | +------+-------+2 rows in set (0.00 sec)mysql>
b. 使用mysql 命令
先創(chuàng)建要導(dǎo)入的數(shù)據(jù)庫(kù) renee。
mysql> create database renee;Query OK, 1 row affected (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema | | mysql | | renee | | sandy | +--------------------+4 rows in set (0.00 sec)mysql>
導(dǎo)入數(shù)據(jù)
[root@TS-DEV bin]# ./mysql -uroot -p -D renee < /tmp/david/david_myclass.sql Enter password: [root@TS-DEV bin]#
查看數(shù)據(jù)
mysql> use renee;Database changedmysql> show tables;+-----------------+| Tables_in_renee |+-----------------+| myclass | +-----------------+1 row in set (0.00 sec)mysql> select * from myclass;+----+-------+-----+--------+----------+| id | name | sex | degree | passtest |+----+-------+-----+--------+----------+| 1 | david | 1 | 89.99 | 78 | | 2 | sandy | 0 | 100.00 | 90 | | 3 | nancy | 0 | 90.34 | 0 | +----+-------+-----+--------+----------+3 rows in set (0.00 sec)mysql>
更多導(dǎo)入導(dǎo)出命令,請(qǐng)自行Google+Baidu。
bitsCN.com聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com