標籤:ppa stop set art 建立 比較 rop 查看 system
RHEL7安裝MariaDB
Yum install –y mariadb mariadb-server
Mysql_install
db //初始化資料庫
? 可以為root帳戶設定密碼。
? 可以刪除root可從本地主機以外訪問的帳戶。
? 可以刪除匿名使用者帳戶。
? 可以刪除test資料庫(預設情況下,所有使用者甚至匿名使用者都可以訪問該資料庫)以及允許任何人訪問以名稱開頭的資料庫的許可權 test。
如果不初始化資料庫,mysql可以匿名登陸,會產生test資料庫
.
.
.
.
.
Mysqld_safe & //平滑啟動資料庫 &是後台啟動並執行意思
Systemctl start mariadb //啟動資料庫
Mysqladmin shutdown //關閉資料庫
Systemctl stop mariadb //停止資料庫
.
.
.
.
.
.
Mysql –uusername –ppassword //指定使用者和密碼登陸資料庫 密碼可不輸入(單獨輸入)
Mysql –uusername –ppassword –D mysql //-D 指定進入資料庫
Mysql –S /var/lib/mysql/mysql.sock //sock通訊端檔案 指定通訊端檔案sock來串連資料庫
Mysql –h (ip地址) //指定登陸一台主機上的資料庫 前提是指定的主機開啟並運行你串連
Mysql –e “use mysql;select user,host,password from user;” //-e 通過shell進行直接控制串連資料庫
-P 指定服務端連接埠
-C 壓縮資料轉送
-E 查詢結果縱向顯示 (庫外操作)
.
.
.
.
.
資料庫的建立:
Use mysql //切換資料庫
Select user,host,password from user; //查詢user表中user,host,password列
Create user ‘xiaoquan’@’localhost’ identified by ‘123’
Create database if not exists testdb; //如果testdb庫存在就不建立
.
.
.
密碼管理
在庫外設定資料庫密碼
mysqladmin –uroot password 123 //設定密碼
Mysqladmin –uroot –p123 password linux
在庫內設定密碼
Set password for ‘root’@’localhost’=password(‘123’J)’
.
.
.
MariaDB [(none)]> use mysql
MariaDB [mysql]> Insert into mysql.user(user,host,password) values(‘zhang’,’localhost’,password(‘123’)); //在mysql庫中的user表中的user,host,password欄位中插入資料(必須在庫內!)
Grant all on mysql.* to ‘zhangsan’@’localhost’ identified by ‘123’; //授權資料庫 如果使用者不存在將會自動建立使用者
.
.
刪除使用者:
1)Delete from mysql.user where user=’zhangsan’ and password=’123’;
Flush privileges //刪除和建立後都需要重新整理!!!
2)drop user ‘zhang’@’localhost’;
重新命名:
Rename user ‘xiaoquan’@’localhost’ to ‘zhang’@’localhost’;
3)5.7版本不可以使用!
Update mysql.user set password = password(‘xiaoquan’) where user=’root’ and host=’localhost’;
.
.
.
Mysql 密碼破解
- 停止mysql
Mysqladmin shutdown
- 使用—skip-grant-tables啟動mysql
Mysqld_safe –skip-grant-tables &
- Update mysql.user set password=password(‘123’) where user=’root’ and host=’localhost’;
重啟資料庫
.
.
.
.
.
授權管理
授權文法:grant all [privileges] on db.tbl ‘username’@’host’ identified by ‘password’;
Grant all on . to ‘xiaoquan’@’localhost’ identified by ‘xiaoquan’; //將本地所有庫和表的許可權授權給xiaoquan
Grant all on . to ‘xiaoquan’@’%’ identified by ‘xiaoquan’; //給所有主機上有使用者xiaoquan的授權
Grant select on mysql.user to ‘zhang’@’localhost’ identified by ‘123’; //指定授權使用者可以查詢庫中的表
Show grants for ‘zhang’@’localhost’\G //查看許可權
Revoke select on mysql.user from ‘zhang’@’localhost’; //刪除許可權
.
.
.
.
.
.
資料庫變數:
Show global variables\G //查看所有全域變數
Show global variables like ‘%version%\G //查看與版本version有關的全域變數
Like 關鍵字匹配 % 萬用字元相當於*
Show global variables where variable_name like ‘charavter%’; //global 全域 variables 變數 where 指定條件 variable_name 變數名 like 匹配 //查看全域與字元集相關的變數
Show global variables where variable_name like ‘%log%’ and value=’off’; //查看日誌關閉的全域參數
Show session variables\G //查看回話參數
Show variables \G //不知名變數參數 預設的為session 回話參數
.
.
Select @@[global.|session.] system_var_name //查看單個變數的文法
Select @@global.pid_file; //查看pid_file變數參數
.
.
MariaDB [(none)]> select @@session.autocommit; //查詢autocommit變數
修改文法:(不指定類型,預設修改會話變數)
MariaDB [(none)]> SET GLOBAL var_name = value;
MariaDB [(none)]> SET @@GLOBAL.var_name = value;
MariaDB [(none)]> SET SESSION var_name = value;
MariaDB [(none)]> SET @@SESSIO.var_name = value;
Set @@session.autoconmmit=0; //修改autocommint參數
運行時修改的變數並非永久有效,重啟後將會失效;
運行時修改global層級的變數:對修改之前建立的會話沒有影響,僅對修改後建立立的會話有效;
運行時修改session層級的變數:僅對當前會話有效,且立即生效;
如果想要使設定永久有效,需要設定設定檔。
但是在不確定的情況下,不要隨便修改設定檔,否則將可能會出現無法預計的問題
.
.
.
MYSQL help參數:
清除(\c)清除當前輸入語句。
串連(\r)重新串連到伺服器。可選的參數是DB和主機。
定界符(\d)SET語句定界符。
用編輯器編輯(\e)編輯命令。
(\g)向MySQL伺服器發送命令,垂直顯示結果。
退出(\q)退出mysql。與退出相同。
轉到(\g)發送命令到MySQL伺服器。
列印(\p)列印當前命令。
提示(\r)更改MySQL提示符。
退出(\q)退出mysql。
原始碼(.)執行SQL指令檔。將檔案名稱作為參數。
狀態(S)從伺服器擷取狀態資訊。
系統(!)執行系統外殼命令。
使用(\u)使用另一個資料庫。將資料庫名稱作為參數。
字元集(\c)切換到另一字元集。可能需要用多位元組字元集來處理BILCONG。
警告(\w)在每個語句之後顯示警告。
(\W)在每個語句之後不顯示警告。
.
.
.
.
.
MySQL的概念
1)什麼是資料庫
按照資料的關係,組織、管理、儲存的系統
2)資料庫的分類
關係型:Oracle 、 MySQL 、 SQL-server
資料都是按照表狀結構儲存,二維關係,表與表之間可以建立聯絡,多表查詢,可以跨越版本、跨越不同軟體,將資料匯入匯出
都是基於SQL(結構化查詢語句)
非關係型:Redis memache mongodb
NoSQL = not only SQL ,對關係型資料庫的一個補充,大大提高的查詢檢索效率,把所有資料都同意儲存,都有自己的,不存在資料的連結
當前企業使用MySQL的版本分布:
5.1 ----- 20%
5.5 ----- 60%
5.6或以上 ----- 20%
Oracle 和 MySQL
Oracle: 應用傳統行業(金融、證券、大學等),臃腫,閉源(收費)
MySQL: 應用於互連網行業(BAT 58 jd等等),我們都是根據系統進行二次開發使用,開源的(RHEL6.x 預設5.1系統 -- RHEL7.x 預設mariadb5.5)
2008年左右 MySQL被SUN公司收購,2012年SUN公司又被Oracle收購(JDK也是Oracle),MySQL很有可能閉源
MySQL公司有開發一款和MySQL完全相同的資料庫MariaDB
a)安裝方式:
yum/rpm 安裝
源碼安裝(cmake安裝) --- 營運,針對裝置少時
二進位安裝 --- 開發,針對叢集架構較大時
b)MySQL版本:
商業版: 收取lisence費用 服務費用 -- 針對大公司
社區版: 免費版,個人用、小公司
四大發行版本:
Alpha---預覽版(自我裝載版本),開發人員使用,完全不對外,測試大的bug
Beta---測試版(公開測試版),加入很多新功能,邀請比較不錯的使用者嘗試使用---BAT公司使用
RC----發行版本,可能會有小bug ,但是能滿足較大的需求
GA----穩定發行版本(沒有任何的尾碼,就是這個版本)
資料庫總結:
create 建立
delete | drop刪除
grant 授權
revoke 刪除許可權
select 查詢
set 修改
show 顯示
rename 重新命名
MySQL 常用語句以及基礎知識