MySQL資料庫管理4
修改資料庫管理員本機登入密碼
[root@localhost ~]# mysqladmin -hlocalhost -uroot -p
password “新密碼”
恢復資料管理員本機登入的密碼
vim /etc/my.cnf
[mysqld]
#validate_password_policy=0
#validate_password_length=6
skip-grant-tables
:wq
#systemctl restart mysqld
#mysql
mysql> update mysql.user
-> set
-> authentication_string=password(“123123”)
-> where
-> user=”root” and host=”localhost”;
mysql> flush privileges;
mysql>quit
vim /etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=6
#skip-grant-tables
:wq
#systemctl restart mysqld
#mysql -uroot -p123123
mysql>
+++++++++++++++++++++++++
使用者授權
*預設只允許資料庫管理員從本機登入。
*預設只有資料庫管理員在本機登入才有授權許可權。
給誰授權: 管理者(運維工作人員) 使用者(網站伺服器)
授權命令
mysql> grant 許可權列表 on 資料庫名 to 使用者名稱;
mysql> grant 許可權列表 on 資料庫名 to 使用者名稱@”客戶地
址” identified by “密碼” with grant option;
許可權列表
all 所有許可權
select,insert,update(name,age)
資料庫名的表示方式:
*.* 所有庫所有表
庫名.* 某個庫
庫名.表 某張表
使用者名稱:授權時自定義的
客戶地址表示方式
% 所有主機
192.168.4.% 網段
192.168.4.7 ip地址
主機名 pc101.tedu.cn
域名 %.tedu.cn
identified by “密碼” 登入密碼 (可選項)
with grant option 有授權許可權 (可選項)
新增yaya使用者可以在本機登入,對所有庫表有完全許可權但不能授
權,登入密碼654321
mysql> grant all on *.* to yaya@”localhost”
-> identified by “654321”;
mysql> select user(); 顯示當前登入的使用者和客戶端地址
mysql> show grants; 顯示當前登入使用者的訪問許可權
新增plj使用者可以在x.x.x.254登入,對所有庫表有完全許可權並有
授權許可權,登入密碼654321
mysql> grant all on *.* to plj@”192.168.4.254″
identified by “654321” with grant option;
MySQL [(none)]> grant all on bbsdb.* to student
identified by “654321”;
授權user1使用者可以在網路中的任意主機連線資料庫伺服器,連
接後僅對userdb庫下user表有查詢 插入 更新許可權 更新時只能
更新name欄位的值,登入密碼 123456;
grant select ,insert ,update(name) on userdb.user to
user1@”%” identified by “123456”;
授權資訊儲存在mysql庫下的表裡
user 儲存已有的授權使用者
db 記錄授權使用者對庫訪問許可權
tables_priv 記錄授權使用者對錶訪問許可權
columns_priv 記錄授權使用者對錶中欄位的訪問許可權
檢視一樣的授權使用者和登入客戶端地址
select user,host from mysql.user;
管理使用者檢視授權使用者的訪問許可權
mysql> show grants for 使用者名稱@”客戶端地址”;
許可權撤銷
mysql> revoke 許可權列表 on 庫名 from 使用者名稱@”客戶
端地址”;
撤銷plj使用者在x.x.x.254登入的授權許可權
revoke grant option on *.* from
plj@”192.168.4.254″;
撤銷plj使用者在x.x.x.254登入後刪除表記錄的許可權
revoke delete on *.* from plj@”192.168.4.254″;
撤銷plj使用者在x.x.x.254登入後所有的許可權
revoke all on *.* from plj@”192.168.4.254″;
刪除授權使用者
mysql> delete from mysql.user where user=”plj” and
host=”192.168.4.254″; flush privileges;
mysql> drop user plj@”192.168.4.254″;
授權使用者修自己的登入密碼
SET PASSWORD=PASSWORD(`新密碼`);
資料庫管理重置授權使用者的登入密碼
SET PASSWORD for 使用者@”客戶端地址”=PASSWORD(`
新密碼`);
練習
1 刪除以上所有的授權使用者。
2 允許254 主機可以使用資料庫管理員連線資料庫伺服器,並擁
有管理員的許可權。
grant all on *.* to root@”192.168.4.254″ identified
by “123123” with grant option;
3 不允許資料庫管理員在資料庫伺服器本機登入。
delete from mysql.user where
-> user=”root” and host=”localhost”; flush privileges;
4 授權webadmin使用者對webdb有完全許可權,並有授權許可權,
在網路中所有主機都可以連線資料庫服務登入密碼123456
grant all on webdb.* to webadmin@”%”
-> identified by “123456” with grant option;
grant insert on mysql.* to webadmin@”%”;
5 測試以上授權
6 刪除以上授權並只允許資料庫管理員從伺服器本機登入。
grant all on *.* to root@”localhost” identified by
“123123” with grant option;
delete from mysql.user where
-> host!=”localhost”;
mysql> flush privileges;
+++++++++++++++++++++++++++++++++
安裝mysql服務圖形管理工具 phpmyadmin
137 rpm -q httpd php
138 rpm -q php-mysql
139 yum -y install httpd php php-mysql
140 rpm -q httpd php php-mysql
141 systemctl start httpd
142 systemctl status httpd
143 systemctl enable httpd
144 systemctl is-enabled httpd
145 echo 123 > /var/www/html/test.html
147 yum -y install elinks
148 elinks –dump http://localhost/test.html
149 vim /var/www/html/test.php
<?php
echo “hello boy”;
?>
:wq
150 elinks –dump http://localhost/test.php
154 tar -zxvf phpMyAdmin-2.11.11-all-
languages.tar.gz
167 mv phpMyAdmin-2.11.11-all-languages
/var/www/html/phpmyadmin
168 cd /var/www/html/
171 chown -R apache:apache phpmyadmin/
172 cd phpmyadmin/
174 cp config.sample.inc.php config.inc.php
# vim config.inc.php
17 $cfg[`blowfish_secret`] = `plj123`;
31 $cfg[`Servers`][$i][`host`] = `localhost`;
:wq
mysql -uroot -p123123
mysql> create database gamedb;
mysql> grant all on gamedb.* to
gameuser@”localhost” identified by “123456”;
mysql -hlocalhost -uroot -p123123
firefox http://192.168.4.12/phpmyadmin
gameuser
123456
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
資料備份與恢復
1 為什麼對資料做備份?使用備份檔案恢復資料。
2 資料備份方式?
物理備份:拷貝庫或表對應的系統檔案
193 tar -zcvf /opt/mysql.tar.gz
/var/lib/mysql/mysql/*
180 cp -r /var/lib/mysql/mysql /opt/mysql.bak
181 ls /opt/
182 ls /opt/mysql.bak/
183 rm -rf /var/lib/mysql/mysql
184 systemctl status mysqld
185 quit
186 cp -r /opt/mysql.bak/ /var/lib/mysql/mysql
187 cd /var/lib/mysql
188 ll
189 chown -R mysql:mysql /var/lib/mysql/mysql
190 systemctl restart mysqld
191 mysql -uroot -p123123
邏輯備份:執行備份時,根據已有的庫、表、記錄,生成對應的
sql 命令,把SQL保持到指定的檔案裡。
3 資料備份策略
完全備份:備份所有資料
一臺資料庫伺服器的所有資料
一個庫的所有資料
一張表的所有資料
差異備份:備份自完全備份後,所有新產生的資料
增量備份:備份自上次備份後,所有新產生的資料
完全
差異
增量
單獨使用完全備份
完全備份+差異備份
完全備份+增量備份
方式 策略
完全備份+差異備份
週期 時間 regtab 備份檔名
1 完全 18 10 1.sql 10
2 差異 18 2 2.sql 2
3 18 5 3.sql 7
4 18 3 4.sql 10
5 4 5.sql 14
6 7 6.sql 21
7 差異 1 7.sql 22
方式 策略
完全備份+差異備份
週期 時間 regtab 備份檔名
1 完全 18 10 1.sql 10
2 增量 18 2 2.sql 2
3 18 5 3.sql 5
4 18 3 4.sql 3
5 4 5.sql 4
6 7 6.sql 7
7 增量 1 7.sql 1
完全備份
週期 時間 regtab 備份檔名
1 完全 18 10 1.sql 10
2
delete from t1;
2 18 2 2.sql 2
3 18 5 3.sql 5
4 18 3 4.sql 3
5 4 5.sql 4
6 7 6.sql 7
7 完全 1 7.sql 1
生產環境中 使用
週期性計劃任務 備份指令碼
30 18 * * 1 /shell/allbak.sh
++++++++++++++++++++++++++++++++
完全備份資料
mysqldump -hlocalhost -uroot -p123123 資料庫名 >
目錄名/名.sql
資料庫名的表示方式:
–all-databases 一臺資料庫伺服器的所有資料
庫名 一個庫的所有資料
庫名 表名 一張表的所有資料
-B 庫名1 庫名2 一起備份多個庫的所有資料
#mysqldump -hlocalhost -uroot -p123123 userdb t2 >
/opt/t2.sql
完全資料恢復
mysql -uroot -p123123 資料庫名 < 備份檔案
#mysql -uroot -p123123 userdb < /opt/t2.sql
編寫指令碼allbakt2.sh 功能:
把伺服器上userdb庫t2表的所有記錄備份到本機/mybak資料夾裡。使用系統日期做備份檔名例如 2017-05-25-t2.sql
#! /bin/bash
day=$(date +%F)
if [ ! –e /mydbbak ] ; then
mkdir /mydbbak
fi
mysqldump -uroot -pabc123 userdb > /mydbbak/$day-userdb.sql
相關文章
- MySQL資料庫資料管理MySql資料庫
- [Mysql] 4.Mysql 建立資料庫MySql資料庫
- MySQL資料庫管理員(OCP)MySql資料庫
- 4 管理資料庫例項和叢集資料庫資料庫
- 4,MySQL資料庫的設計MySql資料庫
- MYSQL預設有4個資料庫MySql資料庫
- MySQL終端管理資料庫操作指南MySql資料庫
- 4、MySQL建立資料庫(CREATE DATABASE語句)MySql資料庫Database
- 《大型資料庫技術》MySQL管理維護資料庫MySql
- 安裝phpMyAdmin來管理Mysql資料庫PHPMySql資料庫
- 建立管理MySQL資料庫的shell指令碼MySql資料庫指令碼
- MySQL資料庫系統日常管理職責MySql資料庫
- MySQL資料管理MySql
- 【資料庫】mysql資料庫索引資料庫MySql索引
- MySQL資料庫UTF8mb4設定MySql資料庫
- MySQL資料庫許可權體系入門(4)---管理全域性許可權MySql資料庫
- rhel4 mysql 5.5_檢視業務資料庫的表名及表列_管理MySql資料庫
- 資料庫4資料庫
- [資料庫]【MySQL】MySQL資料庫規範總結資料庫MySql
- 【MySql】mysql 資料庫資料訂正MySql資料庫
- 《MySQL 入門教程》第 03 篇 管理資料庫MySql資料庫
- SQL資料庫管理工具:SQLPro for MySQL for Mac資料庫MySqlMac
- MySQL-授權使用者管理資料庫MySql資料庫
- MySQL之終端:管理資料庫的基本操作MySql資料庫
- MySQL資料庫管理的常用操作命令錦集MySql資料庫
- 資料庫(MySQL)資料庫MySql
- 資料庫-MySQL資料庫MySql
- 資料庫 MySQL資料庫MySql
- MYSQL資料庫MySql資料庫
- 資料庫PostrageSQL-管理資料庫資料庫SQL
- 資料庫管理資料庫
- 4. mysql資料庫操縱常用命令MySql資料庫
- 理解 MySQL(4):並行資料庫與分割槽(Partition)MySql並行資料庫
- Mysql資料庫-資料模型MySql資料庫模型
- MySQL資料庫許可權體系入門(5)---管理資料庫許可權MySql資料庫
- MySQL預設資料庫之mysql庫MySql資料庫
- 管你MySQL還是Oracle,資料庫管理就完事了MySqlOracle資料庫
- 如何從CLI管理阿里巴巴MySQL資料庫阿里MySql資料庫