在实际工作中,所有前端的同一组LNMP动态服务器都是共享后端同一个数据库的。因此,之前的LNMP是单机部署,要实现集群就必须单独部署MySQL服务器,整个部署过程如下:
#1)创建用户。
useradd mysql -s /sbin/nologin -M
id mysql
#2)创建目录上传软件。
mkdir -p /server/tools/
cd /server/tools/
#wget -----
#3)解压安装。
tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
mkdir -p /application
mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql-5.7.26
ln -s /application/mysql-5.7.26/ /application/mysql
#4)配置配置文件。
rpm -e --nodeps mariadb-libs
cat >/etc/my.cnf<<EOF
[mysqld]
basedir = /application/mysql/
datadir = /application/mysql/data
socket = /tmp/mysql.sock
server_id = 1
port = 3306
log_error = /application/mysql/data/oldboy_mysql.err
[mysql]
socket = /tmp/mysql.sock
prompt = oldboy [\\d]>
EOF
#5)初始化数据库。
rpm -qa mariadb-libs
yum install libaio-devel -y
mkdir -p /application/mysql/data
chown -R mysql.mysql /application/mysql/
/application/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/application/mysql/ --datadir=/application/mysql/data
#6)配置启动。
cat >/etc/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server by oldboy
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
systemctl start mysqld
systemctl enable mysqld
netstat -lntup|grep mysql
#7)登录测试。
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
. /etc/profile
mysql
quit
#8)数据库迁移。
#从单机LNMP迁移到db01独立的MySQL。
#Web01服务器相关操作。这里迁移的之前搭建的wordpress实验博客
#1)备份当前数据库数据。
mysqldump -uroot -poldboy123-A -B|gzip >/tmp/web01_db.sql.gz
#2)拷贝到异机(独立mysql,192.168.3.117)。
scp /tmp/web01_db.sql.gz 192.168.3.117:/tmp
#3)停止本地MySQL服务。
systemctl stop mysqld
systemctl disable mysqld
lsof -i :3306
#4)对Web01修改代码以访问数据库的地址。
[root@web01~]# cd /application/nginx/html/blog/
[root@web01 /application/nginx/html/blog]# vim wp-config.php
define( 'DB_NAME', 'wordpress' );
/* * MySQL database username */
define( 'DB_USER', 'wordpress' );
/* * MySQL database password */
define( 'DB_PASSWORD', 'oldboy123' );
/* * MySQL hostname */
define( 'DB_HOST', '192.168.3.17' );
#5)进行db01操作。
[root@db01~]# cd /tmp
[root@db01 /tmp]# gzip -d web01_db.sql.gz
[root@db01 /tmp]# mysql </tmp/web01_db.sql
#6)登录到数据库里,执行下面语句。
grant all privileges on wordpress.* to wordpress@'192.168.3.%' identified by 'oldboy123';
flush privileges;
select user, authentication_string, host from mysql.user;
#7)打开网站测试