环境
[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</tmp/bak.sql [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测试: 在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</tm/bak.sql