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://ybzwz.com/article/pgddgo.html