1. 用戶管理
1.1 作用
登錄
管理對(duì)象
1.2 長(zhǎng)成什么樣?
用戶名@'白名單'
1.2.1 用戶名:
不要太長(zhǎng) , 和業(yè)務(wù)有關(guān)
emp_user01
grant all on *.* to wordpress@'%' identified '123';
1.2.2 白名單?
user@'10.0.0.56'
user@'%'
user@'10.0.0.%' 255.255.255.0 24位
user@'10.0.0.0/255.255.254.0' 23位
user@'10.0.0.5%' 50-59
user@'localhost' 本地
常用:
user@'10.0.0.%'
user@'10.0.0.0/255.255.254.0'
user@'10.0.0.5%' 50-59
user@'localhost' 本地
1.2.3 用戶管理
創(chuàng)建用戶:
mysql> CREATE USER oldguo@'10.0.0.%' IDENTIFIED BY '123';
查詢用戶:
mysql> select user,host from mysql.user;
mysql> select user,host,authentication_string from mysql.user;
修改用戶:
mysql> alter user oldguo@'10.0.0.%' identified by '123456';
刪除用戶:
mysql> drop user oldguo@'10.0.0.%';
說(shuō)明:
8.0+ 版本: 必須先創(chuàng)建用戶再授權(quán).
8.0以前: 可以grant 授權(quán)時(shí)自動(dòng)創(chuàng)建用戶.
2. 權(quán)限管理
2.1 MySQL權(quán)限列表
mysql> show privileges;
2.2 授權(quán)和回收權(quán)限
GRANT 權(quán)限 ON 權(quán)限作用范圍 TO 用戶 IDENTIFIED BY '123' with grant option;
權(quán)限 :
ALL :
Alter
Alter routine
Create
Create routine
Create temporary tables
Create view
Create user
Delete
Drop
Event
Execute
File
Grant option
Index
Insert
Lock tables
Process
Proxy
References
Reload
Replication client
Replication slave
Select
Show databases
Show view
Shutdown
Super
Trigger
Create tablespace
Update
Usage
權(quán)限作用范圍 :
*.* ====> 一般是管理員會(huì)設(shè)置的方法
oldguo.* ====> 一般是業(yè)務(wù)用戶會(huì)設(shè)置的方法
oldguo.t1 ====> 一般是業(yè)務(wù)用戶戶設(shè)置的方法
2.3 企業(yè)授權(quán)案例
(1)授權(quán)一個(gè)管理員用戶oldguo,可以從10網(wǎng)段任意地址登錄管理數(shù)據(jù)庫(kù)
GRANT ALL ON *.* TO oldguo@'10.0.0.%' IDENTIFIED BY '123' with grant option;
(2)授權(quán)一個(gè)業(yè)務(wù)用戶app,可以從10網(wǎng)段地址訪問(wèn)app庫(kù)的所有表
grant select,update,insert,delete ON app.* TO app@'10.0.0.%' IDENTIFIED BY '123' ;
(3)授權(quán)一個(gè)開(kāi)發(fā)用戶dev,可以對(duì)dev庫(kù)進(jìn)行業(yè)務(wù)開(kāi)發(fā)
2.4 root管理員密碼忘記或被篡改如何處理?
(1) 關(guān)閉數(shù)據(jù)庫(kù),啟動(dòng)到"單用戶"模式
[root@db01 data_3306]# systemctl stop mysqld
[root@db01 data_3306]# mysqld_safe --skip-grant-tables --skip-networking &
(2) 無(wú)密碼登錄MySQL
[root@db01 data_3306]# mysql
mysql> alter user root@'localhost' identified by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '123456';
(3) 重啟數(shù)據(jù)庫(kù)到正常模式
[root@db01 data_3306]# systemctl restart mysqld
2.5 查詢用戶權(quán)限
mysql> show grants for app@'10.0.0.%';
2.6 回收權(quán)限
mysql> revoke delete,drop on app.* from 'app'@'10.0.0.%';
3. MySQL的連接管理
3.1 自帶客戶端工具
3.1.1 mysql
-u 用戶名
-p 密碼
-h IP
-P 端口
-S socket位置
-e 免交互
< 導(dǎo)入SQL腳本
例子:
(1) TCP連接串遠(yuǎn)程登錄
注:需要提前創(chuàng)建好遠(yuǎn)程用戶
mysql> grant all on *.* to oldguo@'10.0.0.%' identified by '123';
[root@db01 data_3306]# mysql -uroot -p -h 10.0.0.51 -P 3306
(2) Socket連接方式
注:需要提前創(chuàng)建好localhost用戶
mysql> grant all on *.* to oldguo@'localhost' identified by '123';
[root@db01 data_3306]# mysql -uoldguo -p -S /tmp/mysql.sock
Enter password:
如何驗(yàn)證一個(gè)用戶是通過(guò)本地還是遠(yuǎn)程和登錄的.
show processlist;
(3) 免交互執(zhí)行命令
[root@db01 ~]# mysql -uroot -p -e "show processlist"
(4) 導(dǎo)入SQL腳本
[root@db01 ~]# mysql -uroot -p < t100w.sql
Enter password:
mysql> source /root/world.sql
3.1.2 mysqladmin
(1) 修改密碼
[root@db01 ~]# mysqladmin -uroot -p123456 password 123
[root@db01 ~]# mysql -uroot -p123
(2) 關(guān)閉數(shù)據(jù)庫(kù)
[root@db01 ~]# mysqladmin -uroot -p123 shutdown
mysqldump(備份恢復(fù))
略.
3.2 第三方開(kāi)發(fā)工具
sqlyog
navicat
workbench
3.3 應(yīng)用程序連接
php-mysql
pip3 install mysql
jar
go
4. MySQL的啟動(dòng)關(guān)閉
systemctl ---> mysql.server start
-----> mysqld_safe ----> mysqld
5. MySQL的初始化配置
5.1 初始化配置方法
源碼安裝定制 < 初始化配置文件 < 命令行啟動(dòng)時(shí)定制
5.2 初始化配置文件
[root@db01 data_3306]# mysqld --help --verbose |grep my.cnf
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
建議一個(gè)mysql實(shí)例一個(gè)配置文件
5.3 配置文件書(shū)寫(xiě)格式
[root@db01 data_3306]# cat /etc/my.cnf
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
標(biāo)簽項(xiàng) ====> [mysqld]
服務(wù)器端 [server]: [mysqld],[mysqld_safe] ====> 影響到MySQL啟動(dòng)
客戶端 [clinet] : [mysql] ,[mysqldump] ====> 影響本地客戶端程序
配置項(xiàng) ====> key=value
5.4 自定制初識(shí)化配置文件位置
mysqld --defaults-file=/opt/a.cnf &