当前位置 主页 > 服务器问题 > win服务器问题汇总 >
在实际的生产环境中,为了确保数据库的稳定性,我们一般会给数据库配置双机热备机制,这样在master数据库崩溃后,slave数据库可以立即切换成主数据库,通过主从复制的方式将数据从主库同步至从库,在业务代码中编写代码实现读写分离(让主数据库处理 事务性增、改、删操作,而从数据库处理查询操作)来提升数据库的并发负载能力。
下面我们使用最新版本的Mysql数据库(8.0.16)结合SpringBoot实现这一完整步骤(一主一从)。
安装配置mysql
从 https://dev.mysql.com/downloads/mysql/页面下载mysql安装包,我这里下载的是mysql8.0.16 Linux-Generic.
准备两台虚拟机用作安装mysql,并将下载后的文件mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
上传至服务器/app/mysql
192.168.249.131 CENTOS7 主
192.168.249.129 CENTOS7 从
查看防火墙状态,如果启动需要先关闭防火墙
service firewalld status ## 查看防火墙状态 service firewalld stop ## 关闭防火墙 使用如下命令将xz文件解压成tar文件 xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
解压安装包
tar -xvf mysql-8.0.16-linux-gl-ibc2.12-x86_64.tar
在/app/mysql下建立data文件夹,用于存放数据
创建mysql用户组和mysql用户
groupadd mysql ## 创建用户组 useradd -g mysql -d /app/mysql mysql ## 在用户组下创建mysql用户并授权相关目录 groupdel mysql ## 删除用户组名(若报已存在相关用户组) userdel mysql ## 删除用户(若报已存在相关用户)
初始化安装mysql数据库
./mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysqld --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data --initialize 2019-07-01T02:05:52.681626Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release. 2019-07-01T02:05:52.681694Z 0 [System] [MY-013169] [Server] /app/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.16) initializing of server in progress as process 1479 2019-07-01T02:05:52.681726Z 0 [ERROR] [MY-010338] [Server] Can't find error-message file '/app/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive. 2019-07-01T02:05:55.713747Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xa6(H>rK/r<E 2019-07-01T02:05:57.303240Z 0 [System] [MY-013170] [Server] /app/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.16) initializing of server has completed
注意,此时mysql会生成一个默认的临时密码,如上所示,需要先保存下来然后修改
建立mysql服务并增加执行权限
cp mysql-8.0.16-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysqld
修改mysql配置文件 vi /etc/my.cnf 增加如下配置
[mysqld] port=3306 basedir=/app/mysql/mysql-8.0.16-linux-glibc2.12-x86_64 datadir=/app/mysql/data socket=/tmp/mysql.sock symbolic-links=0 [mysqld_safe] log-error=/app/mysql/data/log/error.log pid-file=/app/mysql/data/mysql.pid user=mysql tmpdir=/tmp character_set_server=utf8 default-storage-engine=INNODB init_connect='SET NAMES utf8' !includedir /etc/my.cnf.d