Centos7 rpm安装Mysql8.0.16及搭建主从数据库
mysql8 下载地址 https://dev.mysql.com/downloads/mysql/
服务安装环境说明
主机名 | IP | 作用 | 操作系统 |
---|---|---|---|
node61 | 10.148.30.161 | 主数据库 | Centos7 |
node62 | 10.148.30.162 | 从数据库 | Centos7 |
安装准备
我的服务器环境没有连接外网,采用rpm包的方式安装
在官网选择对应的操作系统和mysql版本,下载 xxx-bundle.tar
打包格式,会把多个依赖包打包到一起下载
我这边使用的mysql8.0.16版本:mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
安装数据库
使用 tar -xvf
解压安装包
开始安装1
2
3
4
5# 安装 mysql-community-common
sudo rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
# 安装 mysql-community-libs
sudo rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
报错如下: mariadb-libs is obsoleted by mysql-community-libs-8.0.16-2.el7.x86_64
经过一番搜寻,才发现是因为在CentOS 7上已经有一个mariadb 而这个会与 MySQL的mariadb发生冲突。所以此时我们需要将系统自带的mariadb卸载掉,然后使用mysql自带的mariadb。
我们先来查看系统安装的版本rpm -qa | grep mariadb
,随后进行卸载,卸载的过程中会提示不能卸载,因为有其他软件依赖此包,我们要加上 –nodeps 参数强制卸载
1 | sudo rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 |
重新运行 sudo rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
安装成功
1 | # 安装 mysql-community-client |
安装非必选项(可不安装,按照顺序)
rpm -ivh mysql-community-libs-compat-8.0.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.16-1.el7.x86_64.rpm
安装完成,按照以上步骤在node62上安装数据库
rpm安装位置说明
更多详细说明请查看官网文档:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-rpm.html
文件或资源 | 位置 |
---|---|
客户端命令和脚本 | /usr/bin |
mysqd server | /usr/sbin |
配置文件 | /etc/my.cnf |
数据库错误日志 | /var/log/mysqld.log |
系统初始化脚本 | /etc/init.d/mysqld |
pid文件 | /var/run/mysql/mysqld.pid |
启动数据库
1 | #启动数据库 |
连接数据库
mysql8 默认生成了root密码在数据库错误日志中
1 | # 查看root密码 |
结果如图
1 | # 登录数据库 |
此时不能进行其他操作,必须修改root密码
1 | # 修改root密码 |
validate_password is installed by default. The default password policy implemented by validate_password requires that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters.
上面官方文档大概意思是: mysql采用validate_password验证密码,密码需要包含一个小写字母一个大写字母,一个数字,一个特殊字符,密码长度长度不小于8个字符
mysql 主从同步配置
node61上mysql数据库为主库,node62上mysql库为从库
修改node61配置文件my.cnf
1 | #修改配置文件 |
创建用于复制的用户和权限
1 | # 登录数据库 |
重启主mysql服务器
1 | systemctl restart mysqld |
查看主服务器状态
1 | #进入mysql数据库 |
slave从服务器的配置(node62)
修改从服务器my.conf
1 | vim /etc/my.cnf |
重启从mysql服务器
1 | systemctl restart mysqld |
连接mysql从服务器
1 | # 进入从服务器mysql(node62) |
启动服务器同步数据
1 | #启动slave数据同步 |
查看slave信息
1 | mysql> show slave status\G; |