Mysql安裝及經常使用命令

部份內容轉載於html

https://www.linuxidc.com/Linux/2016-09/135288.htmmysql

 https://www.cnblogs.com/rays-/p/8081798.htmllinux

 

在CentOS7安裝mysql5.7sql

yum源 rmp包下載地址docker

https://dev.mysql.com/downloads/repo/yum/數據庫

 

下載mysql源安全

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安裝mysql源app

yum localinstall mysql57-community-release-el7-8.noarch.rpm

檢查mysql源url

yum repolist enabled | grep "mysql.*-community.*"

成功則有下圖spa

 須要更換版本能夠在 /etc/yum.repos.d/mysql-community.repo切換,把須要的版本enabled=1,原來的修改爲0

 安裝mysql

yum install mysql-community-server

守護進程操做

啓動mysql systemctl start mysqld 關閉mysql systemctl stop mysqld 開機自啓動 systemctl enable mysqld 關閉自啓動 systemctl disable mysqld

 檢查端口是否開啓mysql,3306是mysql默認端口

 登入mysql

mysql隨機生成一個密碼,在/var/log/mysqld.log

grep 'temporary password' /var/log/mysqld.log

後面那串隨機的字符串就是密碼

 在終端輸入

mysql -uroot -p

而後輸入密碼,進入mysql

修改密碼,格式爲 set password for 'root@localhost'=password('你要需改的密碼');

 若是出現如下提示,是由於mysql默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,而且長度不能少於8位

 

 咱們能夠把這個密碼檢查策略關閉,找到mysql的配置文件 /etc/my.conf,添加一下兩行

[mysqld] validate_password=off

而後重啓mysql服務

systemctl restart mysqld

進入mysql在修改密碼

 

 

經常使用的SQL語句

數據庫查詢語言    專門用於查詢數據 表明指令爲select /show

數據操做語言       專門用於寫入數據 表明指令instert update delete

事務處理語言       專門用於事務安全處理       表明指令 transaction

數據控制語言       專門用於權限管理              表明指令 grant / revoke

數據定義語言       專門用於結構管理              表明指令creat / drop

 

數據庫操做

show databases     #查看所有數據庫

show databases like ‘匹配模式’;   #查看指定數據庫 匹配模式:   _: 匹配當前位置單個字符、   %:匹配指定位置多個字符

create database 數據庫名    #建立數據庫

drop database 數據庫名    #刪除數據庫

use 數據庫名字;   #選擇數據庫

 

 表操做

use 數據庫名稱     #先選擇進入的數據庫

show  tables    #查看當前數據庫的所有表

 

create table 表名(字段名1  字段類型2  [ 字段名2 類型2 ]  )       #建立表

 

drop table 表名    #刪除表

 

 

alter table 表名 add 字段名 字段類型   #增長字段

 

 

 

 

 

 

 

 

 

 

 設置遠程用戶訪問,進入mysql的命令行且須要root權限, (其中% 表示全部主機均可以訪問)

GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES 刷新權限設置

 建立用戶

CREATE USER '用戶名'@'host' IDENTIFIED BY '密碼';

 host能夠是本地(localhost),也能夠是任意主機(%),或者指定主機

 刪除用戶

DROP USER '用戶名'@'host';

查看所有用戶

select user,host from mysql.user

 修改用戶名,將root修改爲admin

update mysql.user set user='admin' where user='root';

 

用戶受權,須要刷新權限才能生效

GRANT 權限操做 ON 數據庫名.表名 TO '用戶名'@'host'
FLUSH PRIVILEGES

 命令操做能夠是 select create update delete等,所有權限能夠輸入ALL,所有的數據庫的所有表名能夠表示   *.*

例如   GRANT SELECT ON test_db.* TO 'test'@'localhost'; 只能本地登入的test用戶擁有讀取test_db數據庫下面的全部表

刪除權限

REVOKE 權限操做 ON 數據庫名.表名 FROM '用戶名'@'host';

查看用戶的權限

SHOW GRANTS FOR '用戶名'@'host'

 

 

一些安全策略

0、備份文件

mysqldump -uroot -p --databases student >/var/lib/mysql/data2/student.sql

還原數據庫

先建立原來的數據庫,進入,而後還原

create database student; use student; source student.sql;

 

一、mysql中危險的配置項,能夠對文件繼續操做,即讀取或寫入

進入mysql的命令行輸入 ,查看導入導出權限

show global variables like '%secure%';

 

若是secure_file_priv那一行是空的,這說明咱們能夠在任意範圍進行文件導入或導出

若是是null,則說明禁止文件操做

若是是一個文件路徑,則只能在該路徑下面進行操做

在配置文件/etc/my.cnf下面添加,而後重啓服務

secure_file_priv =null

 

二、禁止用戶讀取本地文件或訪問操做系統上的文件

在/etc/my.cnf添加,而後重啓服務

set-variable=local-infile=0

若是報錯就在配置文件添加

local-infile=0

 

三、刪除test庫,匿名用戶能夠訪問,存在風險

drop database test;

 

四、刪除無用的用戶,修改root用戶的名稱

參考前面的命令

 

五、刪除歷史記錄

訪問 cat ~/.mysql_history,會發現以前mysql模式下輸入的命令都保存在此,將其刪除

cat /dev/null > ~/.mysql_history
相關文章
相關標籤/搜索