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
成都创新互联公司自2013年创立以来,先为唐山等服务建站,唐山等地企业,进行企业商务咨询服务。为唐山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
创建软件下载目录
[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
网页题目:LNMP组件分离
新闻来源:http://cdiso.cn/article/pgddgo.html