您好,登錄后才能下訂單哦!
前言:
無論大家從事的是什么行業,大家或許都聽說過數據庫這個詞匯。在今天互聯網高速發展的時代數據庫與我們的生活息息相關,例如你在公司上班需要登記員工的信息錄入到數據庫中,數據庫沒有那么高深難懂,筆者本人所理解的數據庫就是感覺它是一種類excel表格的一種程序,但是它又優于excel。本文將為大家簡述一下關于MySQL數據庫的基本操作。
MySQL簡介:
MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬于Oracle公司。MySQL是最流行的關系型數據庫管理系統,在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System:關系數據庫管理系統)應用軟件之一。
Relational 美[r'lenl]
Database美[detbes]
Management美[mndmnt]
MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL所使用的SQL語言是用于訪問數據庫的最常用標準化語言。MySQL軟件采用了雙授權政策,它分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫。由于其社區版的性能卓越,搭配PHP和Apache可組成良好的開發環境。
雙授權政策:開放源代碼版本和商業版本。例如:很多公司出售應用軟件,例如Microsoft、Apple和Oracle;如Red Hat和IBM,則通過為其開放源代碼軟件提供銷售支援、托管或咨詢等服務來進行賺錢。但鮮為人知的是,企業可以透過開放源代碼發布他們的軟件,也可以同時銷售該軟件的商業版本。
--------------------------尊敬的讀者您好:您已經進入實踐操作區域------------------------------------
安裝軟件之前筆者有個習慣就是去看看軟件描述信息,這樣有助于我們了解軟件用途以及出現問題去官網找問題的解決辦法因為官網有絕大多軟件的QA。
yum info mysql-server
Name:軟件包名稱mysq-server
Arch:系統架構X86_64
Version:軟件包版本5.1.73
Release:發布者版本號7.e16
Size:軟件包大小為25M
Repo:該軟件包來至于base倉庫
Summary:軟件概述這是MySQL服務的相關文件
URL:官網地址http://www.mysql.com
License:授權許可遵循GPL v2版許可協議
Description:詳細描述
MySQL是一個多用戶,多線程的SQL數據庫服務器。 MySQL是一個由服務端守護程序(mysqld)組成的客戶端/服務端來實現工作,以及許多不同的庫與客戶端程序。 這個軟件包含MySQL服務端和一些附帶的文件目錄。
yum info mysql //這是查看MySQL客戶端的軟件信息和面的描述大同小異讀者朋友可以自行翻譯一下本文就不多做介紹了。
------------------------------------以上內容為本人工作學習的習慣-------------------------------------
安裝軟件
yum install mysql-server mysql //本文所用環境是Centos6.8系統 mysql-server //MySQL服務端 mysql //MySQL客戶端
******************安裝過程略***************
這里為了避免大家出現各種奇怪的錯誤請先關閉防火墻和selinux
service iptables stop //本次關閉防火墻服務 chkconfig iptables off //下次開機永久關閉防火墻 setenforce 0 //臨時關閉SELinux getenforce //查看selinux現在的狀態 Disabled //關閉的 Permissive //關閉的 Enforcing //開啟的 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config //下次開機永久關閉selinux
啟動MySQL服務
service mysqld start Starting mysqld: [ OK ]
加固mysql服務器,在安裝完成后,運行mysql_secure_installation命令
mysql_secure_installation Enter current password for root (enter for none):直接回車 輸入當前root(這里的root是數據庫管理員名與系統無關)用戶的密碼默認為空直接回車 Set root password? [Y/n]y 為root用戶設置密碼 New password: 設置root用戶的密碼 Re-enter new password: 再輸入一次確認你設置的密碼 Remove anonymous users? [Y/n]y 是否刪除匿名用戶,生產環境建議刪除,所以直接回車 Disallow root login remotely? [Y/n]y 是否關閉root遠程登錄,根據自己的需求選擇Y/n并回車,建議禁止 Remove test database and access to it? [Y/n]y 是否刪除test的測試庫,通常都刪除所以輸入y或者直接回車 Reload privilege tables now? [Y/n] 是否立即重新加載授權表,輸入y或者直接回車 現在就可以使用mysql -h 127.0.0.1 -uroot -p來進入你的數據庫了
常用選項:
-u, --user=username:用戶名,默認為root;
-h, --host=hostname:遠程主機(即mysql服務器)地址,默認為localhost; 客戶端連接服務端,服務器會反解客戶的IP為主機名,關閉此功能(skip_name_resolve=ON);
-p, --password[=PASSWORD]:USERNAME所表示的用戶的密碼; 默認為空;
注意:mysql的用戶賬號由兩部分組成:
'USERNAME'@'HOST';
其中HOST用于限制此用戶可通過哪些遠程主機連接當前的mysql服務;HOST的表示方式,支持使用通配符;
%:匹配任意長度的任意字符;
172.16.%.%, 172.16.0.0/16
_:匹配任意單個字符;
-P, --port=#:mysql服務器監聽的端口;默認為3306/tcp;
-S, --socket=/PATH/TO/mysql.sock:套按字文件路徑;
-D, --database=DB_name:連接到服務器端之后,設定其處指明的數據庫為默認數據庫;
-e, --execute='SQL STATEMENT':連接至服務器并讓其執行此命令后直接返回;
系統管理
連接MySQL
命令格式: mysql -h 主機地址 -u用戶名 -p用戶密碼
例 1:連接本地主機
[root@node2 ~]#mysql -uroot -p
例 2:連接遠程主機庫
[root@node2 ~]#mysql -h 127.0.0.1 -uroot -p111111
增加新用戶
命令格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by '密碼'
舉例:
例 1:增加一個用戶 dev1 密碼為 dev123,讓他可以在任何主機上登錄,并對所有數據庫有
查詢、插入、修改、刪除的權限。
首先用以 root 用戶連入 MySQL,然后鍵入以下命令:
mysql> grant select,insert,update,delete on *.* to dev1@localhost identified by'dev123'; 或者 grant all privileges on *.* to dev1@localhost identified by 'dev123';
然后刷新權限設置。
flush privileges;
例 2:如果你不想 root 有密碼操作數據庫“class”里的數據表,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on class.* to root@localhost identified by '';
刪除用戶
命令格式: DROP USER 'username'@'host';
舉例:
mysql> drop user 'dev1'@'localhost'; mysql> flush privileges;
刪除用戶的數據庫
mysql>drop database dbname;
庫操作
顯示所有的數據庫
mysql> show databases;(注意:最后有個 s)
創建數據庫
mysql> create database newdb;
刪除數據庫
mysql> drop database newdb;
連接數據庫
mysql> use newdb; 也可以登錄的時候指定使用哪個庫 mysql -h 127.0.0.1 -uroot -p newdb;(注意:-p后面有個空格然后是你要使用的庫名稱)
查看當前使用的數據庫
mysql> select database();
當前數據庫包含的表信息
mysql> show tables; (注意:最后有個 s)
表操作
注:操作之前使用“use 數據庫名”應連接某個數據庫。
創建表
命令格式:create table 表名 (字段名I 類型I 字段名II 類型II );
例:
mysql> create table dev(id int (4) not null primary key auto_increment, > name char(20) not null,sex int(4)not null default '0', > joinyear DATE not null);
獲取表結構
命令格式: desc 表名,或者show columns from 表名
例:查看我們剛才創建好的dev這張表
mysql> desc dev; 或者 mysql> show columns from dev;
刪除表
命令格式:drop table <表名>
例如:刪除表名為 m23info 的表
mysql> drop table m23info;
插入數據
命令格式:insert into <表名> VALUES ('設定值1','設定值2','設定值3','設定值4');
例子:
mysql> INSERT INTO dev VALUES('2','Jeck','0','2012-12-25');
查詢表中的數據
查詢所有行
mysql> select * from dev;
查詢前幾行數據
例如:查看表 dev 中前 2 行數據
mysql> select * from dev order by id limit 0,2;
或者
mysql> select * from dev limit 0,2;
刪除表中數據
命令格式:delete from 表名 where 表達式
例:刪除表 dev 中編號為 1 的記錄
mysql> delete from dev where id=1;
很明顯剛才的id為1的那條記錄已經被刪除;
修改表中數據
命令:update 表名 set 字段=新值,... where 條件
mysql> update dev set name='Boss' where id=2;
把原來ID號是2的jeck改成了Boss
在表中增加字段
命令格式:alter table 表名 add 字段 類型 其他;
例:在表 dev 中添加了一個字段 Duties類型為 int(5),默認值為 0
mysql> alter table dev add Duties int(5) default '0';
更改表名
命令格式:rename table 原表名 to 新表名;
例如:在表 dev 名字更改為 opt
mysql> rename table dev to opt;
數據庫導入導出
從數據庫導出數據庫文件
使用“mysqldump”命令
1)導出newdb數據庫
命令格式:mysqldump -u [數據庫用戶名] -p -A>[備份文件的保存路徑]
mysqldump -uroot -p密碼 newdb >/sqlbackup/newdb`date +%F-%T`.sql //備份newdb到/sqlbackup/下命名為newdb+時間戳.sql
2)導出數據和數據結構
格式:mysqldump -u [數據庫用戶名] -p [要備份的數據庫名稱]>[備份文件的保存路徑]
舉例:
例 1:將數據庫 mydb 導出到 /sqlbackup下的mysqldb.sql。
mysqldump -h localhost -uroot -p mysql > /sqlbackup/mysqldb.sql
然后輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。
3)只導出數據不導出數據結構
格式:
mysqldump -u [數據庫用戶名] -p -t [要備份的數據庫名稱]>[備份文件的保存路徑]
4)導出數據庫中的Events
格式:mysqldump -u [數據庫用戶名] -p -E [數據庫用戶名]>[備份文件的保存路徑]
5)導出數據庫中的存儲過程和函數
格式:mysqldump -u [數據庫用戶名] -p -R [數據庫用戶名]>[備份文件的保存路徑]
從外部文件導入數據庫中
1)使用“source”命令
首先進入“mysql”命令控制臺,然后創建數據庫,然后使用該數據庫。最后執行下面操作。
mysql>source [備份文件的保存路徑]
2)使用“<”符號
首先進入“mysql”命令控制臺,然后創建數據庫,然后退出 MySQL,進入 DOS 界面。最后執行下面操作。
mysql -u root –p < [備份文件的保存路徑]
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。