千家信息网

LNMP组件分离

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,环境[root@db01 ~]# cat /etc/redhat-releaseCentOS release 6.7 (Final)[root@db01 ~]# uname -r2.6.32-573.
千家信息网最后更新 2024年11月30日LNMP组件分离

环境
[root@db01 ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@db01 ~]# uname -r
2.6.32-573.el6.x86_64
[root@db01 ~]# uname -m
x86_64

创建软件下载目录
[root@db01 ~]# mkdir /home/oldboy/tools

创建软件安装目录
[root@db01 ~]# mkdir /application/

下载上传命令
[root@db01 ~]# yum install -y lrzsz

上传MySQL安装包
[root@db01 ~]# cd /home/oldboy/tools/
[root@db01 tools]# rz -y
(提前下载好MySQL5.5.49的压缩包)


查看
[root@db01 tools]# ls -lh
total 178M
-rw-r--r-- 1 root root 178M May 16 23:19 mysql-5.5.49-linux2.6-x86_64.tar.gz

创建mysql用户
[root@db01 tools]# useradd -s /sbin/nologin mysql -M

检查
[root@db01 tools]# id mysql
uid=501(mysql) gid=501(mysql) groups=501(mysql)

解压
[root@db01 tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz

移动并重命名
[root@db01 tools]# mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49

创建软链接
[root@db01 tools]# ln -s /application/mysql-5.5.49/ /application/mysql

检查
[root@db01 tools]# ls /application/mysql
bin docs lib README sql-bench
COPYING include man scripts support-files
data INSTALL-BINARY mysql-test share

切换到MySQL目录
[root@db01 tools]# cd /application/mysql

授权
[root@db01 mysql]# chown -R mysql.mysql /application/mysql/

初始化
[root@db01 mysql]# ./scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/

[root@db01 mysql]# ll -ld /tmp/
drwxrwxrwt. 4 root root 4096 May 18 01:12 /tmp/
[root@db01 mysql]# ll data/
total 12
drwx------ 2 mysql root 4096 May 18 01:12 mysql
drwx------ 2 mysql mysql 4096 May 18 01:12 performance_schema
drwxr-xr-x 2 mysql mysql 4096 May 18 01:07 test


修改启动脚本文件路径
[root@db01 mysql]# cd bin/
[root@db01 bin]# cp mysqld_safe{,.ori}

进行替换,因为二进制文件默认目录不是我们上传放软件/application/下面的
[root@db01 bin]# sed -i 's#/usr/local#/application/#g' mysqld_safe

拷贝到/etc下
[root@db01 mysql]# cd ../
[root@db01 mysql]# \cp support-files/my-small.cnf /etc/my.cnf
[root@db01 mysql]# /application/mysql/bin/mysqld_safe --user=mysql & #(时间有点久,估计一分钟)
[root@db01 mysql]# lsof -i :3306
[root@db01 mysql]# /application/mysql/bin/mysql

设置全局变量
[root@db01 mysql]# echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
[root@db01 mysql]# tail -1 /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@db01 mysql]# . /etc/profile
[root@db01 mysql]# echo $PATH
/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

设置MySQL启动脚本
[root@db01 mysql]# cd support-files/
[root@db01 support-files]# cp mysql.server{,.ori}
[root@db01 support-files]# cd ..
[root@db01 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@db01 mysql]# chmod +x /etc/init.d/mysqld
[root@db01 mysql]# sed -i 's#/usr/local/#/application/#g' /etc/init.d/mysqld


设置MySQL开机自启动
[root@db01 mysql]# chkconfig --add mysqld
[root@db01 mysql]# chkconfig mysqld on
[root@db01 mysql]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
提示:也可以将启动命令/etc/init.d/mysqld start 放到/etc/rc.local里面。

把wordpress数据库迁移到后端数据库中或者说数据库的迁移
1.在10.0.0.8 上操作
①.导出web10.0.0.8 数据库中的wordpress数据库
[root@web01 ~]# mysqldump -uroot -poldboy123 wordpress -B|gzip >bak.sql.gz
[root@web01 ~]# ls
anaconda-ks.cfg bak.sql.gz install.log install.log.syslog nginx-1.6.3.tar.gz
[root@web01 ~]#
②.把数据备份的脚本传送到后台数据库10.0.0.51的文件系统中,目的还原,增加至数据库
[root@web01 ~]# scp bak.sql.gz root@10.0.0.51:/tmp
The authenticity of host '10.0.0.51 (10.0.0.51)' can't be established.
RSA key fingerprint is 61:c1:8c:77:39:33:91:47:5c:4c:b5:0f:5a:aa:7d:be.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.51' (RSA) to the list of known hosts.
root@10.0.0.51's password:
bak.sql.gz 100% 121KB 121.2KB/s 00:00
[root@web01 ~]#
③更改访问数据库的配置文件
[root@web01 blog]# cd /application/nginx/html/blog/
[root@web01 blog]# vim wp-config.php
define('DB_HOST', '172.16.1.51');
2.在10.0.0.51上操作
解压
[root@db01 mysql]# cd /tmp/
[root@db01 tmp]# gzip -d bak.sql.gz
导入数据
[root@db01 tmp]# mysql -uroot -poldboy123[root@db01 tmp]#
在数据库中授权
[root@db01 tmp]# mysql -uroot -poldboy123
mysql> grant all on wordpress.* to wordpress@'172.16.1.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql>

3关闭10.0.0.8的数据库
[root@web01 blog]# /etc/init.d/mysqld stop
[root@web01 blog]# chkconfig mysqld off
[root@web01 blog]# chkconfig --list mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@web01 blog]#
4测试:
http://blog.etiantian.org/wp-admin/edit.php
在web界面发表一篇文章,然后去172.16.1.51这台服务器去测试数据
mysql> select * from old_posts \G;


wordpress图片的分离,将图片分离到NFS上
1.建立NFS挂载点,并授权
[root@nfs01 ~]# cat /etc/exports
/data/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=500,anongid=500)
[root@nfs01 ~]# mkdir -p /data/upload
[root@nfs01 ~]# useradd -u 506 -s /sbin/nologin www -M
[root@nfs01 ~]# id www
uid=506(www) gid=506(www) groups=506(www)
[root@nfs01 ~]# chown -R www.www /data/upload
[root@nfs01 ~]#
2.本分本机的数据防止中间出现错误
[root@web01 tmp]# cd /application/nginx/html/blog/wp-content/uploads/
[root@web01 uploads]# pwd
/application/nginx/html/blog/wp-content/uploads
[root@web01 uploads]# cp -a 2016 /tmp/
3.本机挂载
[root@web01 uploads]# mount -t nfs 172.16.1.31:/data/upload /application/nginx/html/blog/wp-content/uploads
[root@web01 uploads]# df -h /application/nginx/html/blog/wp-content/uploads
Filesystem Size Used Avail Use% Mounted on
172.16.1.31:/data/upload
6.9G 1.5G 5.1G 22% /application/nginx-1.6.3/html/blog/wp-content/uploads
[root@web01 uploads]#
4.把原来的数据迁移回来
[root@web01 tmp]# \cp -a /tmp/2016 /application/nginx/html/blog/wp-content/uploads/
反思:NFS共享目录一定要和nginx目录用户的权限一致 ,在前期application/nginx/对这个授予了nginx的权限
否则无法写入

关于wordpress的反思
1.nginx存储目录的权限要和NFS远程允许挂载的权限一致
2.所有的服务都应该是开机启动
3.迁移数据首先要备份数据
4.NFS挂载端的开机挂载应该放在/etc/rc.lcoal中,不能放在/etc/fstab中


1.登录数据库
[root@web01 data]# mysql -uroot -p
2.更改已知用户的密码
[root@web01 ~]# mysqladmin -uroot -p123456 password "oldboy"
3.初始化root的密码
[root@web01 ~]# mysqladmin -uroot password "123456"
4.查看数据库
mysql> show databses;
5.使用数据库
mysql> use mysql;
Database changed
mysql>
6.查看数据库的表
mysql> show tables;
7.查看数据表的结构
mysql> describe user;
8.从表中查找字段(此处查询的字段不区分大小写)
mysql> select Host,User from user; #直接查表
mysql> select host,user from mysql.user; #从哪个库的哪一个表
9.删除库中的数据(use数据库中的 用户)
mysql> drop user "sanlang"@"10.0.0.8";
或者:
mysql>delete from mysql.user where user="sanlang" and host="110.0.0.8";
10.查看当前的用户
mysql> select user();
11.查看当前所在的数据库
mysql> select database();
12.处理完用户要执行的命令
mysql> flush privileges;
13.导出数据库
[root@web01 ]#mysqldump -uroot -poldboy123 wordexpress -B|gzip >bak.sql.gz
14.把数据库脚本导入
[root@web01 ]#mysql -uroot -poldboy123

数据 数据库 目录 用户 文件 权限 脚本 命令 软件 一致 图片 备份 字段 密码 本机 服务 检查 测试 二进制 全局 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技给银行带来支撑 通用软件帮助软件开发的弱点 滨州戴尔服务器代理哪家好 客户端与数据库交互的技术 副局长参加网络安全宣传周 深信服云桌面无法获取服务器配置 工会开展网络安全周工作 数据库认证报名 掌易乐游网络技术 网络营销软件开发定制大概价格 联合国数据库代查 末心网络安全论坛网页 数据库课本第二版例题答案 湖北语音网络技术代理商 数据库两个表的数据怎么匹配 凤翔软件开发商 南京拼团商城软件开发 服务器批量管理软件 游戏软件开发属于电脑的哪个课程 基于结果的软件开发的好处 战地5那个服务器好点 四年级网络安全手抄报简单内容 山东智能养老软件开发 办公软件开发费用核算 excel选取某段数据库 软件和网络技术有什么区别 杭州同欣网络技术有限公司 直播软件开发图 甘肃省网络安全知识竞赛登入 武陵神装如何看此前登录服务器
0