案例1:授权数据库用户
案例2:查看及撤销授权
案例3:重置数据库管理密码
案例4:远程维护数据库
案例5:企业OA系统部署
案例6:企业OA系统迁移
1 案例1:授权数据库用户
1.1 问题
本例要求掌握MariaDB数据库中用户账号的授权操作,完成下列任务:
1)为OA系统建立专库 oadb,并授权用户
允许用户 runoa 从本机访问,对库 oadb 有全部权限
访问密码为 pwd@123
测试用户runoa的数据库访问权限
2)新建名为tarzan的管理员
允许从任何客户机('%')访问,对所有库有全部权限
访问密码为 tedu.cn1234
测试用户tarzan的数据库访问权限
1.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:为OA系统建立专库 oadb,并授权用户
1)创建数据库oadb
MariaDB [(none)]> CREATE DATABASE oadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>
2)授权用户 runoa 从本机访问,对库 oadb 有全部权限,访问密码为 pwd@123
MariaDB [(none)]> GRANT all ON oadb.* TO runoa@localhost IDENTIFIED BY 'pwd@123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
3)测试runoa的数据库访问权限
另开一个命令行终端,以runoa用户连接本机数据库,测试删除及重建oadb库。
[root@zbx ~]# mysql -urunoa -ppwd@123
.. ..
MariaDB [(none)]> DROP DATABASE oadb;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> CREATE DATABASE oadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> QUIT;
Bye
[root@zbx ~]#
步骤二:新建名为tarzan的管理员
1)增加管理员用户
允许从其他任何客户机('%')访问,对所有库有全部权限,访问密码为 tedu.cn1234。
管理员用户有权限通过GRANT授权用户。
MariaDB [(none)]> GRANT all ON *.* to tarzan@'%' IDENTIFIED BY 'tedu.cn1234' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
2)以新管理员用户连接,测试数据库访问权限
使用mysql命令连接其他主机的数据库时,需要添加 –h主机地址 选项,比如从客户机svr8上访问位于192.168.10.7的MariaDB数据库。
[root@svr8 ~]# mysql -utarzan -ptedu.cn1234 -h292.168.10.7
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2797
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
测试新建数据库zhdb:
MariaDB [(none)]> CREATE DATABASE zhdb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>
测试授权数据库用户zhwuji:
MariaDB [(none)]> GRANT all ON zhdb.* TO zhwuji@localhost IDENTIFIED BY 'pwd@123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
退出:
MariaDB [(none)]> QUIT;
Bye
[root@zbx ~]#
2 案例2:查看及撤销授权
2.1 问题
本例要求学会在MariaDB数据库中查看及撤销指定用户的授权,完成下列任务:
1)查看用户tarzan访问本机数据库的权限
2)撤销用户tarzan从任何客户机来访对所有库的所有权限
3)再次查看用户tarzan访问本机数据库的权限
2.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:查看用户tarzan访问本机数据库的权限
MariaDB [(none)]> SHOW GRANTS FOR tarzan@'%';
+----------------------------------------------------------------------------------------------------------------------------------+
| Grants for tarzan@% |
+----------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'tarzan'@'%' IDENTIFIED BY PASSWORD '*8AB2CB3B8352A05A9C4AB822AAF421001382BD5E' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>
步骤二:撤销用户tarzan从任何客户机来访对所有库的所有权限
MariaDB [(none)]> REVOKE all ON *.* FROM tarzan@'%';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
步骤三:再次查看用户tarzan访问本机数据库的权限
MariaDB [(none)]> SHOW GRANTS FOR tarzan@'%';
+-------------------------------------------------------------------------------------------------------------------------+
| Grants for tarzan@% |
+-------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'tarzan'@'%' IDENTIFIED BY PASSWORD '*8AB2CB3B8352A05A9C4AB822AAF421001382BD5E' WITH GRANT OPTION |
+-------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>
3 案例3:重置数据库管理密码
3.1 问题
本例要求学会重置数据库管理密码的基本方法,以便在忘记或无法获知MariaDB数据库管理密码的情况下取得管理权限,完成下列任务:
1)停止mariadb服务
2)跳过授权启动数据库进程mysqld_safe
3)重设管理密码
4)关闭mysqld_safe进程,正常启动mariadb服务
5)验证新密码
3.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:停止mariadb服务
[root@svr7 ~]# systemctl stop mariadb //停服务
步骤二:跳过授权启动数据库进程mysqld_safe
[root@svr7 ~]# mysqld_safe --skip-grant-tables & //直起进程
[1] 105799
[root@svr7 ~]#
步骤三:重设管理密码
1)免密码登入数据库
[root@svr7 ~]# mysql -uroot //免密码登入
.. ..
MariaDB [(none)]>
2)设置新密码
MariaDB [(none)]> UPDATE mysql.user SET Password=password('pwd@123') WHERE User='root' AND Host='localhost'; //设置新密码
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
MariaDB [(none)]> FLUSH PRIVILEGES; //刷新授权
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
3)退出连接
MariaDB [(none)]> QUIT //退出
Bye
步骤四:关闭mysqld_safe进程,正常启动mariadb服务
1)关闭mysqld_safe进程
[root@svr7 ~]# pkill -9 mysqld_safe //强关mysqld_safe
[1]+ 已杀死 mysqld_safe --skip-grant-tables
2)正常启动mariadb服务
[root@svr7 ~]# systemctl restart mariadb //起正常服务
步骤五:验证新密码
[root@svr7 ~]# mysql -uroot -ppwd@123 //验证新密码登入
.. ..
MariaDB [(none)]> QUIT
Bye
[root@svr7 ~]#
4 案例4:远程维护数据库
4.1 问题
本例要求学会通过MySQL-Front图形软件远程维护MariaDB数据库服务器系统,完成下列任务:
1)在MariaDB服务端授权管理用户
允许root从任何IP地址访问本机,密码为 pwd@123
2)从Win客户机远程管理MariaDB服务器
安装MySQL-Front管理软件
运行MySQL-Front程序,远程连接MariaDB服务器
查看studb库stuinfo表的数据内容
备份studb库
4.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:在MariaDB服务端授权管理用户
允许root从任何IP地址访问本机,密码为 pwd@123
[root@svr7 ~]# mysql -uroot -ppwd@123
.. ..
MariaDB [(none)]> GRANT all ON *.* to root@'%' IDENTIFIED BY 'pwd@123' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> QUIT
Bye
[root@zbx ~]#
步骤二:从Win客户机远程管理MariaDB服务器
1)安装MySQL-Front管理软件
双击安装程序MySQL-Front_Setup.exe,如图-1所示,然后根据界面提示完成安装
2)运行MySQL-Front程序,远程连接MariaDB服务器
双击桌面的MySQL-Front快捷图标,可以打开此软件程序。在初次启动界面中,可以根据提示正确填写数据库服务器信息,如图-2所示,确定后可以添加数据库连接。
然后选中刚建立的连接,如图-3所示,单击“打开”。
接下来会成功连接至目标数据库服务器,如图-4所示,默认会列出此用户有权限看到的所有库。
3)查看studb库stuinfo表的数据内容
在MySQL-Front连入数据库服务器的管理界面中,可以对指定的库、表进行操作。
比如,展开studb库、选中stuinfo表,可以通过右侧的“对象浏览器”来查看或修改表的结构,如图-5所示。
单击右侧的“数据浏览器”可以查看或修改表格的数据内容,如图-6所示。
4)备份studb库
在MySQL-Front界面中,右击左侧的某个库,选择“导出”-->“SQL文件”,可以选择存放位置、备份方式,如图-7所示,单击“运行”即可执行备份。
5 案例5:企业OA系统部署
5.1 问题
本例要求在虚拟机192.168.10.7上快速部署“信呼协同办公”系统,为下一个迁移案例做好环境准备,完成下列任务:
1)准备LAMP环境,注册本地域名 oa.tedu.cn
2)配置虚拟主机 oa.tedu.cn ,使用“信呼协同办公”代码
3)准备专用数据库 oadb,授权用户 runoa 全权访问
4)调整 /var/www/oa 目录的归属,使Web服务有写入权限
5)访问 http://oa.tedu.cn/ ,按提示安装OA系统
5.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:准备LAMP环境,注册本地域名 oa.tedu.cn
1)确保启动LAMP网站平台
[root@svr7 ~]# yum -y install httpd mariadb-server maria php php-mysql
[root@svr7 ~]# systemctl restart httpd mariadb
[root@svr7 ~]# systemctl enable httpd mariadb
2)注册本地域名 oa.tedu.cn
[root@svr7 ~]# vim /etc/hosts //注册本地域名
.. ..
192.168.10.7 svr7.tedu.cn oa.tedu.cn
步骤二:配置虚拟主机 oa.tedu.cn ,使用“信呼协同办公”代码
1)解包及部署
[root@svr7 ~]# unzip /root/信呼协同办公_v1.8.1.zip -d /var/www/
.. .. //解包并部署到位
2)为oa.tedu.cn添加虚拟主机
[root@svr7 ~]# vim /etc/httpd/conf.d/vhosts.conf //配置虚拟主机
<VirtualHost *:80>
ServerName oa.tedu.cn
DocumentRoot /var/www/oa
</VirtualHost>
[root@svr7 ~]# systemctl restart httpd //重启Web服务
步骤三:准备专用数据库oadb,授权用户runoa全权访问
如果之前已经执行过此操作,则此处可跳过。
[root@svr7 ~]# mysql -uroot -ppwd@123 //连接
MariaDB [(none)]> CREATE DATABASE oadb; //建库
MariaDB [(none)]> GRANT all ON oadb.* to runoa@localhost IDENTIFIED BY 'pwd@123'; //授权用户
MariaDB [(none)]> QUIT; //退出
[root@svr7 ~]#
步骤五:调整/var/www/oa目录的归属,使Web服务有写入权限
[root@svr7 ~]# chown -R apache /var/www/oa/
[root@svr7 ~]# ls -ld /var/www/oa/
drwxr-xr-x. 10 apache root 231 9月 24 22:27 /var/www/oa/
步骤五:访问http://oa.tedu.cn/,按提示安装OA系统
在svr7主机上启动Firefox火狐浏览器,访问http://oa.tedu.cn/,可以看到信呼协同系统的安装页面,如图-8所示。
单击“知道了”,在下一个页面中正确填写数据库连接信息,如图-9所示,确定无误后单击“提交安装”即可。
注意:若提示“无法写入文件夹Webmain”,请检查SELinux安全机制是否关闭。
完成安装后,请根据页面提示删除安装目录、记录默认管理用户(admin)及密码(123456),如图-10所示,然后单击“前去登录页面”。
成功登录即可看到信息系统的管理界面,如图-11所示。
6 案例6:企业OA系统迁移
6.1 问题
本例要求通过LAMP网站平台的离线迁移过程,进一步熟悉网站和数据库的备份、恢复相关操作,完成下列任务:
1)备份 svr7.tedu.cn 上的OA系统网站和数据库资料
2)准备一台新虚拟机(svr8.tedu.cn-->192.168.10.8)
安装并启动LAMP网站平台
注册本地域名 oa.tedu.cn-->192.168.10.8
3)通过备份将OA系统迁移到 svr8.tedu.cn 上
4)在svr8上访问http://oa.tedu.cn/,验证结果
6.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:备份 svr7.tedu.cn 上的OA系统网站和数据库资料
1)备份网站
停Web服务:
[root@svr7 ~]# systemctl stop httpd
执行备份:
[root@svr7 ~]# tar -zcPf /root/oa_web.tgz /etc/httpd/conf.d/vhosts.conf /var/www/oa/ //注意选项P是大写的
2)备份数据库
执行备份:
[root@svr7 ~]# mysqldump -uroot -ppwd@123 --databases oadb > /root/oa_database.sql //按多库方式备份
确认备份文件:
[root@svr7 ~]# ls -lh /root/oa_*
-rw-r--r--. 1 root root 1021K 9月 25 02:12 /root/oa_database.sql
-rw-r--r--. 1 root root 2.0M 9月 25 02:06 /root/oa_web.tgz
步骤二:准备一台新虚拟机(svr8.tedu.cn 192.168.10.8)
1)安装并启动LAMP网站平台
[root@svr8 ~]# yum -y install httpd mariadb-server maria php php-mysql
[root@svr8 ~]# systemctl restart httpd mariadb //开启网站和数据库服务
[root@svr8 ~]# systemctl enable httpd mariadb
2)注册本地域名 oa.tedu.cn,对应IP地址192.168.10.8
[root@svr8 ~]# vim /etc/hosts
192.168.10.8 oa.tedu.cn
步骤三:通过备份将OA系统迁移到 svr8.tedu.cn 上
1)上传备份资料
注意提前将svr7上的网站、数据库资料备份文件上传到svr8上。比如,在svr7上可以使用scp直接上传备份文件。
[root@svr7 ~]# scp /root/oa_* root@192.168.10.8:/root
root@192.168.10.8's password:
oa_database.sql 100% 518KB 51.1MB/s 00:00
oa_web.tgz 100% 1947KB 65.4MB/s 00:00
[root@svr7 ~]#
2)在svr8上确认备份资料
[root@svr8 ~]# ls -lh /root/oa_*
-rw-r--r--. 1 root root 518K 1月 15 18:11 /root/oa_database.sql
-rw-r--r--. 1 root root 2.0M 1月 15 18:11 /root/oa_web.tgz
3)恢复网站、数据库
[root@svr8 ~]# tar -xPf /root/oa_web.tgz //导入网站文档
[root@svr8 ~]# mysql -uroot < /root/oa_database.sql //导入数据库
4)准备数据库用户
[root@svr8 ~]# mysql -uroot //新数据库服务器无密码
MariaDB [(none)]> GRANT all ON oadb.* to runoa@localhost IDENTIFIED BY 'pwd@123'; //授权用户
MariaDB [(none)]> QUIT; //退出
[root@svr8 ~]#
步骤四:在svr8上访问http://oa.tedu.cn/ ,验证结果
迁移完毕后,可以在svr8上访问http://oa.tedu.cn/ ,直接获得原来运行在svr7上的OA平台。通过管理员admin可以直接登录,数据资料都完好无损,如图-12所示。