真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

本文主要給大家簡單講講linux中MySQL的一些知識,相關專業(yè)術語大家可以上網(wǎng)查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望linux中MySQL的一些知識這篇文章可以給大家?guī)硪恍嶋H幫助。

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

MySQL的相關概念介紹

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

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

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

如圖所示的一個表格:

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

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

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

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

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

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

MariaDB

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

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

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

腳本實現(xiàn)centos 7.3及centos 6.9二進制安裝mariadb

#!/bin/bash

#判斷系統(tǒng)是否已經(jīng)安裝mariadb數(shù)據(jù)庫軟件,若安裝則進行提醒,并退出該腳本。

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

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

#創(chuàng)建數(shù)據(jù)庫程序的用戶,并指定其工作目錄與登錄方式

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

#創(chuàng)建軟鏈接

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

#初始化數(shù)據(jù)庫

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

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

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

chkconfig --add mysqld

#判斷系統(tǒng)版本,以便創(chuàng)建不同的數(shù)據(jù)庫日志文件

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

#設置環(huán)境變量

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腳本的基本組成

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

標識符

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

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

關鍵字:

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

語句:

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

函數(shù):

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

MySQL中的數(shù)據(jù)類型

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

數(shù)字類型

整數(shù): tinyint、smallint、mediumint、int、bigint

浮點數(shù): float、double、real、decimal

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

字符串類型

字符串: char、varchar

文本: tinytext、text、mediumtext、longtext

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

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

常用基本操作

1、顯示數(shù)據(jù)庫

 show databases;

2、選擇數(shù)據(jù)庫

use 數(shù)據(jù)庫名;

3、顯示數(shù)據(jù)庫中的表

show tables;

4、顯示數(shù)據(jù)表的結構 

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、備份數(shù)據(jù)庫 

mysqldump -uroot -p --opt 數(shù)據(jù)庫名>備份名; //進入到庫目錄

14、恢復

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

 15、數(shù)據(jù)庫授權

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

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

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

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

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

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

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

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

數(shù)據(jù)庫: Mysql

表:     User

修改:   User表中的Host列的值來現(xiàn)實登錄入口

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


文章名稱:簡單了解linux中MySQL的一些知識
本文來源:http://weahome.cn/article/jedhgc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部