在实际工作中,所有前端的同一组LNMP动态服务器都是共享后端同一个数据库的。因此,前面的LNMP是单机部署,要实现集群就必须单独部署MySQL服务器,整个部署过程如下:
1)创建用户
useradd mysql -s /sbin/nologin -M
id mysql
2)创建目录上传软件
mkdir -p /server/tools/
cd /server/tools/
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
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 zheng
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服务器相关操作
1)备份当前数据库数据
mysqldump -uroot -poldboy123 -A -B|gzip >/tmp/web01_db.sql.gz
2)拷贝到异机(独立mysql,192.168.9.11)
scp /tmp/web01_db.sql.gz 192.168.9.11:/tmp
3)停止本地MySQL服务
systemctl stop mysqld
systemctl disable mysqld
lsof -i :3306
4)对web01修改代码以访问数据库的地址
[root@web01 ~]# cd /application/nginx/html/blog
[root@web01 blog]# vi wp-config.php
/** WordPress数据库的名称 */
define( 'DB_NAME', 'wordpress' );
/** MySQL数据库用户名 */
define( 'DB_USER', 'wordpress' );
/** MySQL数据库密码 */
define( 'DB_PASSWORD', 'oldboy123' );
/** MySQL主机 */
define( 'DB_HOST', '192.168.9.11' );
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.9.%' identified by 'oldboy123';
flush privileges;
select user,authentication_string,host from mysql.user;
7)打开网站测试
网友评论