1. 程式人生 > >MySQL 常用語句以及基礎知識

MySQL 常用語句以及基礎知識

字符集 into 腳本文件 自己 leg creat 我們 mysql服務器 多表查詢

RHEL7安裝MariaDB
Yum install –y mariadb mariadb-server
Mysql_installdb //初始化數據庫
? 可以為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 密碼破解

  1. 停止mysql
    Mysqladmin shutdown
  2. 使用—skip-grant-tables啟動mysql
    Mysqld_safe –skip-grant-tables &
  3. 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 常用語句以及基礎知識