0. 安装wget命令
yum -y install wget
1. 创建用户组和用户
groupadd mysql
useradd-r -g mysql -s /mysql
2. 安装mysql8
#检查之前是否有残留的mysql,有的话就删除
find / -name mysql
rm -rf xxx
#上传到服务器wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
#本地安装yum localinstall mysql80-community-release-el7-1.noarch.rpm
#检查是否安装成功yum repolist enabled | grep "mysql.*-community.*"
出现下图则代表成功安装
3. 安装mysql的服务端
yum install -y mysql-community-server
#使用命令启动和查看mysql
systemctl start mysqld
systemctl status mysqld
可以看到mysql的active状态已经是running了,意味着mysql已经成功安装好了
4. 密码修改
修改 /etc/my.cnf的配置文件,将default-authentication-plugin=mysql_native_password"取消注释
#重启mysql
systemctl restart mysqld
#通过命令查看自动生成的密码grep 'temporary password' /var/log/mysqld.log
#登陆数据库
mysql -uroot -p
#修改密码规则 记得打分号
set global validate_password.policy=0;
set global validate_password.length=6;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
5. 解决远程访问的问题
#创建一个密码为123456的用户,同时可以访问全部ip(%)
CREATE USER'someone'@'%' IDENTIFIED BY '123456';
#授予用户DDL和DML的权限
grant all on*.* to 'someone'@'%';
#关闭防火墙
systemctl stop firdwalld.service
systemctl disable firewalld.service
6. 在Master库上创建一个具有Replication Slave权限的账号
主服务器通过binlog日志记录操作事件,从服务器通过IO线程读取binlog日志,生成relay-log日志,再由从服务器读取relaylog执行操作。
CREATE USER 'dark'@'%'IDENTIFIED BY '123456';
GRENT REPLICATION SLAVE ON*.* TO 'dark'@'%';
7. 修改Master服务器上的my.conf,一般是在/etc目录下
log-bin=mysql-bin
#此处不写或者为0时,master将拒绝slave的请求
server-id=1
#日志类型binlog-format=mixed
8. 重启master数据库,查看状态
9. 修改slave的my.conf文件
server-id=2#slave本地记录主数据库二进制日志的日志文件
relay-log=mysql-bin
10. 进入从数据库
1. stop slave;
2. change master to master_host='10.0.102.86',
master_user='dark',
master_password='123456',
master_port=3306,
#此处需要对应master的状态
master_log_file='mysql-bin.000005',
master_log_pos='343';
3. start slave;
11. 查看slave状态
show slave status \G
#设置从数据库只能读数据
set global read_only=1;
set global super_read_only=1;
12. 进行测试
主数据库创建
从数据库查看
**********************************************************************************************************
踩坑总结:
1. 因为是从虚拟机克隆过来的,所以出现了主从数据库的UUID一致的问题
find / -name auto.conf
mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bk
2. slave_sql_running:no:因为我人为手动在从库中添加了数据导致的
stop slave;
set global sql_slave_skip_counter=1;
start slave;
3. 敲代码尤其是配置文件,记得看仔细。。。出问题记得看日志