簡單了解linux中MySQL的一些知識

本文主要給大家簡單講講linux中MySQL的一些知識,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望linux中MySQL的一些知識這篇文章可以給大家帶來一些實際幫助。

廣昌ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

MySQL的相關概念介紹

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬于 Oracle 旗下產品。MySQL是最流行的關系型數據庫管理系統之一,在 WEB應用方面,MySQL是最好的 RDBMS (Relational DatabaseManagement System,關系數據庫管理系統) 應用軟件。

MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。

所謂的"關系型"可以理解為"表格"的概念, 這里的關系概念可以理解成生活中人及事物之間的關系,是一種通用的概念。一個關系型數據庫由一個或數個表格組成, 具體以學生這一實體為例。比如新學期開學,老師第一次上課,每一個學生都是陌生的臉孔,如何確認班上每一個學生,除了臉部識別之外,老師唯一確認一個學生依靠的是學生的學號,一個學號代表一個學生,學號沒有重復,叫到一個學號每次只有一個學生答到,這樣班級的每一個學生都可以被確定,所以id就是主鍵,唯一識別某一個具體的學生。但是這樣在確認了學生之后還是不夠的,每個學生都有自己的姓名、性別、年齡、聯系方式,依靠這些信息雖然不能唯一識別一個具體的學生,但是卻是每個學生都需要有的信息,這就是學生這一實體的屬性,屬性之間是互相不能依靠邏輯推出信息的,例如僅僅知道學生性別并不能根據性別而推測出學生的年齡,姓名,等其他屬性的信息,如果出現除了主鍵之外依據某一屬性可以推測出其他屬性的信息的現象則叫數據冗余,需要合并或者刪除屬性,從而實現合理全面的數據存儲。

如圖所示的一個表格:

簡單了解linux中MySQL的一些知識

表頭(header): 每一列的名稱即屬性;

列(row): 具有相同數據類型的數據的集合;

行(col): 每一行用來描述某個人/物的具體信息;

值(value): 行的具體信息, 每個值必須與該列的數據類型相同;

鍵(key): 表中用來識別某個特定的人\物的方法, 鍵的值在當前列中具有唯一性。

MariaDB

從 MySQL 轉向 MariaDB的代表廠家:谷歌(2013年9月)、RedHat(2013年6月)、維基百科(2013年4月)

MySQL在 2008年被Sun以10億美金所收購,MySQL創始人Michael Widenius則不滿Sun開發團隊腳步過慢,憤而離職成立開源數據庫聯盟,另外從現有 MySQL 程序代碼中,開發出另一個延伸分支版本,也就是名為瑪莉亞數據庫的企業級開源數據庫。

瑪莉亞數據庫如同 MySQL的影子版本,瑪莉亞數據庫是 MySQL的一個分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全兼容。

腳本實現centos 7.3及centos 6.9二進制安裝mariadb

#!/bin/bash

#判斷系統是否已經安裝mariadb數據庫軟件,若安裝則進行提醒,并退出該腳本。

rpm -q mariadb >> /dev/null&& echo `rpm -q mariadb` is installed && exit 0

###注意:rpm查詢,只能查詢以rpm機制安裝的軟件,以其他方式安裝的軟件可能查詢不到。

#創建數據庫程序的用戶,并指定其工作目錄與登錄方式

useradd -d /app/mysqldb -r -m -s/sbin/nologin mysql

#切回root用戶目錄下

cd

#下載mariadb壓縮包,并將其解壓縮到指定目錄/usr/local

wgetftp://172.17.0.1/pub/Sources/6.x86_64/mariadb/mariadb-5.5.57-linux-x86_64.tar.gz

tar -xf/root/mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/

cd /usr/local

#創建軟鏈接

ln -s mariadb-5.5.57-linux-x86_64mysql

cd /usr/local/mysql

mkdir /etc/mysql/

#拷貝配置文件樣例

cp support-files/my-huge.cnf/etc/mysql/my.cnf

#使用sed直接對樣例/etc/mysql/my.cnf進行編輯,使其符合自身需求

sed -i '/\[mysqld\]/a\datadir\\=\ \/app\/mysqldb\ninnodb_file_per_table\ \=\ on\nskip_name_resolve\ \=\ on'/etc/mysql/my.cnf

#初始化數據庫

scripts/mysql_install_db--user=mysql --datadir=/app/mysqldb

#創建mariadb的服務程序,并設置在哪些運行級別下可以自行啟動

cp support-files/mysql.server/etc/init.d/mysqld

chkconfig --add mysqld

#判斷系統版本,以便創建不同的數據庫日志文件

if [ `sed -r 's/.*([0-9]+)\..*/\1/' /etc/centos-release` -eq 7 ]; then

        mkdir /var/log/mariadb/

        chown mysql /var/log/mariadb/

        systemctl start mysqld

else

        touch /var/log/mysqld.log

        chown mysql /var/log/mysqld.log

        service mysqld start

fi

#設置環境變量

echo'PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh

#運行安全初始化腳本

echo -e"\ny\n123456\n123456\ny\nn\nn\ny" | mysql_secure_installation

#運行mysql服務

mysql -uroot -p

MySQL腳本的基本組成

與常規的腳本語言類似, MySQL 也具有一套對字符、單詞以及特殊符號的使用規定, MySQL 通過執行 SQL 腳本來完成對數據庫的操作, 該腳本由一條或多條MySQL語句(SQL語句 + 擴展語句)組成, 保存時腳本文件后綴名一般為 .sql。

標識符

標識符用來命名一些對象, 如數據庫、表、列、變量等, 以便在腳本中的其他地方引用。MySQL標識符命名規則稍微有點繁瑣, 這里我們使用萬能命名規則: 標識符由字母、數字或下劃線(_)組成, 且第一個字符必須是字母或下劃線。

對于標識符是否區分大小寫取決于當前的操作系統, Windows下是不敏感的, 但對于大多數 linux\unix 系統來說, 這些標識符大小寫是敏感的。

關鍵字:

MySQL的關鍵字眾多, 這里不一一列出, 在學習中學習。 需要注意的是,這些關鍵字有自己特定的含義, 盡量避免作為標識符。

語句:

MySQL語句是組成MySQL腳本的基本單位, 每條語句能完成特定的操作, 他是由 SQL 標準語句 + MySQL 擴展語句組成。

函數:

MySQL函數用來實現數據庫操作的一些高級功能, 這些函數大致分為以下幾類: 字符串函數、數學函數、日期時間函數、搜索函數、加密函數、信息函數。

MySQL中的數據類型

MySQL有三大類數據類型, 分別為數字、日期\時間、字符串, 這三大類中又更細致的劃分了許多子類型:

數字類型

整數: tinyint、smallint、mediumint、int、bigint

浮點數: float、double、real、decimal

日期和時間: date、time、datetime、timestamp、year

字符串類型

字符串: char、varchar

文本: tinytext、text、mediumtext、longtext

二進制(可用來存儲圖片、音樂等): tinyblob、blob、mediumblob、longblob

(由于數據類型較多,限于文章篇幅有限,具體數據類型請自行查看專業書籍)

常用基本操作

1、顯示數據庫

 show databases;

2、選擇數據庫

use 數據庫名;

3、顯示數據庫中的表

show tables;

4、顯示數據表的結構 

describe 表名;

 5、顯示表中記錄 

SELECT * FROM 表名

 6、建庫

 create databse 庫名;

 7、建表

create table 表名 (字段設定列表);

 
mysql>create table name(
    -> id int auto_increment not null primary key ,
    -> uname char(8),
    -> gender char(2),
    -> birthday date );
Query OK, 0 rows affected (0.03 sec)
mysql> show tables;
+------------------+
| Tables_in_userdb |
+------------------+
| name             |
+------------------+
1 row in set (0.00 sec)
 
mysql> describe name;
+----------+---------+------+-----+---------+----------------+
| Field    | Type    | Null | Key | Default | Extra          |
+----------+---------+------+-----+---------+----------------+
| id       | int(11) | NO   | PRI | NULL    | auto_increment |
| uname    | char(8) | YES  |     | NULL    |                |
| gender   | char(2) | YES  |     | NULL    |                |
| birthday | date    | YES  |     | NULL    |                |
+----------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
 
注: auto_increment 自增
  primary key    主鍵

 8、增加記錄

 insert into name(uname,gender,birthday) values('張三','男','1971-10-01');

 9、修改記錄

update name setbirthday='1971-01-10' where uname='張三';

 10、刪除記錄

delete from namewhere uname='張三';

 11、刪除表

drop table 表名

 12、刪除庫

 drop database 庫名;

13、備份數據庫 

mysqldump -uroot -p --opt 數據庫名>備份名; //進入到庫目錄

14、恢復

mysql -u root -p數據庫名<備份名; //恢復時數據庫必須存在,可以為空數據庫

 15、數據庫授權

  格式:grant select on 數據庫.* to 用戶名@登錄主機identified by "密碼"

例1、增加一個用戶user001密碼為123456,讓他可以在任何主機上登錄,并對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然后鍵入以下命令:

 mysql> grant select,insert,update,delete on *.* to user001@"%" Identified by "123456";

例2、增加一個用戶user002密碼為123456,讓此用戶只可以在localhost上登錄,也可以設置指定IP,并可以對數據庫test進行查詢、插入、修改、刪除的操作 (localhost指本地主機,即MySQL數據庫所在的那臺主機)

       //這樣用戶即使用知道user_2的密碼,他也無法從網上直接訪問數據庫,只能通過MYSQL主機來操作test庫。

//首先用以root用戶連入MySQL,然后鍵入以下命令:

  mysql>grant select,insert,update,delete on test.* to user002@localhost identified by "123456";

注: 其次也可以采用修改表的方式,處理用戶的登錄方式:

數據庫: Mysql

表:     User

修改:   User表中的Host列的值來現實登錄入口

linux中MySQL的一些知識就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。

名稱欄目:簡單了解linux中MySQL的一些知識
轉載注明:http://m.kartarina.com/article12/jedhgc.html

成都網站建設公司_創新互聯,為您提供服務器托管軟件開發品牌網站制作自適應網站面包屑導航品牌網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
主站蜘蛛池模板: 国产av永久无码天堂影院| 一级毛片中出无码| 人妻中文字幕无码专区| 亚洲AV无码成人精品区天堂| 麻豆国产精品无码视频| 真人无码作爱免费视频| 亚洲综合无码一区二区三区| 免费人妻av无码专区| 亚洲AV无码乱码在线观看裸奔| 欧洲黑大粗无码免费| 亚洲精品无码久久久久去q| 国产精品无码亚洲一区二区三区| 国产激情无码一区二区| AV无码小缝喷白浆在线观看 | 亚洲成A∨人片天堂网无码| 久久久无码中文字幕久...| 用舌头去添高潮无码视频| 亚洲精品无码av中文字幕| 中文字幕乱码人妻无码久久| 无码日韩AV一区二区三区| 亚洲AV无码国产精品永久一区| 亚洲AV无码一区二区乱子伦| 日韩精品无码免费专区午夜| av无码aV天天aV天天爽| 人妻丰满熟妇AV无码区免| 中文无码亚洲精品字幕| 久久男人Av资源网站无码软件| 国产精品多人p群无码| 国产丝袜无码一区二区三区视频| 嫩草影院无码av| 精品无码国产AV一区二区三区 | 日韩AV无码久久一区二区| 亚洲精品~无码抽插| 中文无码日韩欧免费视频| 内射人妻少妇无码一本一道| 亚洲AV无码不卡在线观看下载| 无码精品不卡一区二区三区| 无码国模国产在线观看免费| 免费无码成人AV片在线在线播放| 无码人妻av一区二区三区蜜臀| 亚洲av无码专区在线电影天堂|