1、訪問(wèn)MySQL數(shù)據(jù)庫(kù)。
1.1、登錄到MySQL服務(wù)器
? ? ? ? 經(jīng)過(guò)安裝后的初始化過(guò)程,MySQL數(shù)據(jù)庫(kù)的默認(rèn)管理員用戶名為"root",密碼為空。
[root@yang ~]# mysql -u root //"-u"選項(xiàng)用于指定認(rèn)證用戶
? ? ? ? 有密碼的情況下,使用"-p"選項(xiàng)來(lái)進(jìn)行密碼校驗(yàn)。
[root@yang ~]# mysql -u root -p
Enter password:
1.2、執(zhí)行MySQL操作語(yǔ)句
????????驗(yàn)證成功以后將會(huì)進(jìn)入提示符為"MySQL>"的數(shù)據(jù)庫(kù)操作環(huán)境,用戶可以輸入各種操作語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。每條MySQL操作語(yǔ)句以分號(hào)";"表示結(jié)束,輸入時(shí)可以不區(qū)分大小寫。
????????例如,以用戶名root登錄到"mysql>"環(huán)境后,執(zhí)行"status;"語(yǔ)句可以查看當(dāng)前數(shù)據(jù)庫(kù)服務(wù)的基本信息。
[root@yang ~]# mysql -u root
mysql> status;
--------------
mysql Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using EditLine wrapper
Connection id: 2
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.36 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 8 min 13 sec
Threads: 1 Questions: 7 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.014
--------------
1.3、退出"mysql>"操作環(huán)境
? ? ? ? 在"mysql>"操作環(huán)境中,執(zhí)行"exit"或"ouit"命令可以退出mysql命令工具,返回原來(lái)的shell環(huán)境。
mysql> exit
Bye
[root@yang ~]#
2、使用MySQL數(shù)據(jù)庫(kù)
2.1、查看當(dāng)前服務(wù)器中有哪些庫(kù)
? ? ? ? show databases 語(yǔ)句:用于查看當(dāng)前MySQL服務(wù)器中包含的庫(kù),默認(rèn)包含(test、mysql、information_schema、performance_schema)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
2.2、查看當(dāng)前使用的庫(kù)中有哪些表
? ? ? ? show tables 語(yǔ)句:用于查看當(dāng)前所在的庫(kù)中包含的表
? ? ? ? use語(yǔ)句:切換到所使用的庫(kù)
mysql> use bdqn
Database changed
mysql> show tables;
+----------------+
| Tables_in_bdqn |
+----------------+
| benet |
+----------------+
1 row in set (0.00 sec)
? ? ? ? MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)文件存放在/usr/local/mysql/data目錄下,每個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)一個(gè)子目錄,用于存儲(chǔ)數(shù)據(jù)表文件。每個(gè)數(shù)據(jù)表對(duì)應(yīng)為三個(gè)文件,擴(kuò)展名分別為".frm"、".myd"、".myi"
[root@yang bdqn]# cd /usr/local/mysql/data/bdqn/
[root@yang bdqn]# ls
benet.frm benet.ibd db.opt
2.3、查看表的結(jié)構(gòu)
? ? ? ??describe 語(yǔ)句:用于顯示表的機(jī)構(gòu),即組成表的各字段(列)的信息。
mysql> describe bdqn.benet;
+--------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| user | char(15) | NO | | NULL | |
| passwd | char(18) | NO | | NULL | |
+--------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
3、創(chuàng)建及刪除庫(kù)和表
3.1、創(chuàng)建新的庫(kù)
????????create database 語(yǔ)句:用于創(chuàng)建一個(gè)新的庫(kù),需指定數(shù)據(jù)庫(kù)名稱作為參數(shù)。
mysql> create database auth; //創(chuàng)建一個(gè)名為auth的數(shù)據(jù)庫(kù)
mysql> show databases; //查看包含哪些數(shù)據(jù)庫(kù)
+--------------------+
| Database |
+--------------------+
| information_schema |
| auth |
| bdqn |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
????????剛創(chuàng)建的數(shù)據(jù)庫(kù)是空的,其中不包含任何表,在/usr/local/mysql/data目錄下會(huì)自動(dòng)生成一個(gè)與新建的庫(kù)名相同的文件夾。
[root@yang bdqn]# cd /usr/local/mysql/data/
[root@yang data]# ls
auth auto.cnf bdqn ibdata1 ib_logfile0 ib_logfile1 localhost.localdomain.err mysql performance_schema test yang.err yang.pid
3.2、創(chuàng)建新的表
? ? ? ? create table 語(yǔ)句:用于在當(dāng)前庫(kù)中創(chuàng)建新的表。
mysql> create table users (user_name char(16) not null, user_passwd char(48) default '', primary key (user_name));
mysql> show tables;
+----------------+
| Tables_in_auth |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
3.3、刪除一個(gè)數(shù)據(jù)表
????????drop table 語(yǔ)句:用于刪除庫(kù)中的表。
mysql> drop table auth.users;
Query OK, 0 rows affected (0.00 sec)
3.4、刪除一個(gè)數(shù)據(jù)庫(kù)
????????drop database 語(yǔ)句:用于刪除指定的庫(kù)。
mysql> drop database auth;
Query OK, 0 rows affected (0.00 sec)
4、管理表中的數(shù)據(jù)記錄
4.1、插入數(shù)據(jù)記錄
????????insert into 語(yǔ)句:用于向表中插入新的數(shù)據(jù)記錄。password('123456')表示將密碼加密
mysql> insert into auth.users (user_name,user_passwd) values('lisi',password('123456'));
Query OK, 1 row affected (0.00 sec)
mysql> select * from auth.users; //查看數(shù)據(jù)表中的內(nèi)容
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)
5、數(shù)據(jù)用戶授權(quán)
5.1、授予權(quán)限
????????grant 語(yǔ)句:專門用來(lái)設(shè)置數(shù)據(jù)庫(kù)用戶的訪問(wèn)權(quán)限,當(dāng)指定的用戶名不存在時(shí),grant語(yǔ)句將會(huì)創(chuàng)建新的用戶,否則,grant語(yǔ)句用于修改用戶信息?
grant??權(quán)限列表 on 庫(kù)名.表名 to 用戶名@來(lái)源地址 [ identified by '密碼' ]
權(quán)限列表:用于授予權(quán)限。select、insert、update,使用"all"表示所有權(quán)限
庫(kù)名.表名:用于指定授權(quán)的對(duì)象,"auth.*"表示auth數(shù)據(jù)庫(kù)中的所有表
用戶名@來(lái)源地址:用于指定訪問(wèn)的對(duì)象??梢允荌P地址、域名。也可以是"%"通配符,"%.bdqn.com"、"192.168.1.%"表示某個(gè)區(qū)域或網(wǎng)段內(nèi)的所有地址
identified by:用于設(shè)置密碼。若省略則用戶的密碼為空
? ? ? ? 創(chuàng)建一個(gè)名為xiaoqi的數(shù)據(jù)庫(kù)用戶,允許本地訪問(wèn)數(shù)據(jù)庫(kù)auth下的所有表,密碼為123?
mysql> grant select on auth.* to 'xiaoqi'@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)
//使用xiaoqi數(shù)據(jù)庫(kù)用戶登錄
[root@yang ~]# mysql -u xiaoqi -p
Enter password:
//驗(yàn)證權(quán)限
mysql> select * from auth.users;
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)
//訪問(wèn)其他數(shù)據(jù)庫(kù)則沒(méi)有權(quán)限
mysql> select * from mysql.user;
ERROR 1142 (42000): SELECT command denied to user 'xiaoqi'@'localhost' for table 'user'
?5.2、查看權(quán)限
????????show grants 語(yǔ)句:專門用于查看數(shù)據(jù)庫(kù)用戶的授權(quán)信息,通過(guò)for可以指定查看的用戶
?5.3、撤銷權(quán)限
????????revoke 語(yǔ)句:用于撤銷指定用戶的數(shù)據(jù)庫(kù)權(quán)限。撤銷后的用戶仍然可以連接到mysql服務(wù)器,但將被禁止執(zhí)行對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作
mysql> revoke all on auth.* from 'xiaoqi'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for 'xiaoqi'@'localhost';
+---------------------------------------------------------------------------------------------------------------+
| Grants for xiaoqi@localhost |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xiaoqi'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+---------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
6、實(shí)驗(yàn)案例
1、為MySQL數(shù)據(jù)庫(kù)的root用戶設(shè)置密碼,刪除用戶名、密碼為空的用戶記錄
2、新建名為"bdqn"的庫(kù),授權(quán)用戶rundb從本機(jī)訪問(wèn),具有所有操作權(quán)限
3、以rundb用戶登錄,在bdqn庫(kù)中創(chuàng)建stuinfo表,并錄入如下數(shù)據(jù)
1、更改數(shù)據(jù)庫(kù)mysql中的user表,將root的密碼更改為123,并刷新用戶授權(quán)信息?
mysql> use mysql
Database changed
mysql> update mysql.user set password=password('123') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges; //刷新用戶授權(quán)信息
Query OK, 0 rows affected (0.00 sec)
?2、創(chuàng)建一個(gè)名為bdqn的數(shù)據(jù)庫(kù),并添加一個(gè)rundb數(shù)據(jù)庫(kù)用戶,授予所有權(quán)限以本機(jī)訪問(wèn)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-858856.html
mysql> create database bdqn;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on bdqn.* to 'rundb'@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)
3、在bdqn數(shù)據(jù)庫(kù)中新建stuinfo表,并錄入數(shù)據(jù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-858856.html
mysql> create table stuinfo
-> (姓名 nvarchar(10) not null primary key,
-> 性別 nvarchar(2) not null,
-> 年齡 int not null,
-> 聯(lián)系電話 bigint not null,
-> Email地址 nvarchar(50)
-> );
mysql> insert into stuinfo (姓名,性別,年齡,聯(lián)系電話,Email地址) values('張無(wú)忌','男','19','17512345678','wuji.zhang@mingchao.org');
mysql> insert into stuinfo (姓名,性別,年齡,聯(lián)系電話,Email地址)
-> values('白居易','男','24','17587654321','juyi.bai@tangchao.org');
mysql> insert into stuinfo (姓名,性別,年齡,聯(lián)系電話,Email地址)
-> values('藍(lán)采和','女','21','17555201314','caihe.lan@wudaisong.org');
mysql> select * from stuinfo;
+-----------+--------+--------+--------------+-------------------------+
| 姓名 | 性別 | 年齡 | 聯(lián)系電話 | Email地址 |
+-----------+--------+--------+--------------+-------------------------+
| 張無(wú)忌 | 男 | 19 | 17512345678 | wuji.zhang@mingchao.org |
| 白居易 | 男 | 24 | 17587654321 | juyi.bai@tangchao.org |
| 藍(lán)采和 | 女 | 21 | 17555201314 | caihe.lan@wudaisong.org |
+-----------+--------+--------+--------------+-------------------------+
到了這里,關(guān)于Linux訪問(wèn)MySQL數(shù)據(jù)庫(kù)(包含實(shí)驗(yàn)案例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!