一、环境介绍
操作系统:CentOS 7
MySQL:5.7
二、MySQL的卸载
1、查看MySQL软件
rpm -qa|grep mysql
2、卸载MySQL
yum remove -y mysql mysql-libs mysql-common
rm -rf /var/lib/mysql
rm /etc/my.cnf
查看是否还有 MySQL 软件,有的话继续删除。
软件卸载完毕后如果需要可以删除 MySQL 的数据库: /var/lib/mysql
三、安装MySQL
1、安装
#下载yum源
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
#安装yum源
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
#使用此命令可以查看 MySQL Yum 存储库中的所有子存储库,并查看其中哪些子存储库已启用或禁用
yum repolist all | grep mysql
#关闭mysql8的下载源
yum-config-manager --disable mysql80-community
#开启mysql5.7下载源
yum-config-manager --enable mysql57-community
#安装mysql5.7
yum install -y mysql-community-server
2、配置MySQL
vim /etc/my.cnf
修改内容如下:
[mysqld]
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8
3、启动MySQL
systemctl start mysqld
4、设置root用户密码
安装了mysql5.7之后初始密码不再默认为空,初始密码会生成一个默认密码。密码会输出到mysql日志
中。日志文件的位置在 /var/log/mysqld.log
1)查看初始密码
2)修改初始密码
#1.登录mysql
[root@localhost ~]# mysql -uroot -p't)WMH;uUe9Jn'
#mysql5.7以后对密码的强度是有要求的,必须是字母+数字+符号组成的,如果想设置简单密码例
如‘root’,需要做以下设置
#2.设置密码长度最低位数
mysql> set global validate_password_length=4;
#3.设置密码强度级别
mysql> set global validate_password_policy=0;
#4.修改密码
mysql> alter user 'root'@'localhost' identified by 'root';
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特
殊字符。
四、MySQL远程连接授权
1、登录MySQL
登录命令:
mysql -uroot -proot
命令说明:
-u:指定数据库用户名
-p:指定数据库密码,记住-u和登录密码之间没有空格
2、授权
授权命令
grant 权限 on 数据库对象 to 用户
示例:
授予root用户对所有数据库对象的全部操作权限:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH
GRANT OPTION;
命令说明:
- ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。
- *.* :表示所有库中的所有表
- 'root'@'%' : myuser是数据库的用户名,%表示是任意ip地址,可以指定具体ip地址。
- IDENTIFIED BY 'mypassword' :mypassword是数据库的密码。
五、关闭linux的防火墙
#关闭防火墙
systemctl stop firewalld
#设置开启不启动
systemctl disable firewalld.service
六、关闭linux的防火墙
1、查看SELinux状态命令:
##如果SELinux status参数为enabled即为开启状态
/usr/sbin/sestatus -v
SELinux status: enabled
##也可以用这个命令检查
getenforce
2、关闭SELinux方法
1)临时关闭(不用重启机器):
#设置SELinux 成为permissive模式
setenforce 0
#设置SELinux 成为enforcing模式
setenforce 1
2)修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
七、Mysql主备集群搭建
1)准备两台机器,安装Mysql
2) Master节点修改mysql配置,vi /etc/my.cnf
# 服务的唯一编号
server-id=1
# 开启mysql binlog功能
log-bin=mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format=ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image=minimal
# 指定需要复制的数据库名为xayimsdb,主库从库必须一样
binlog-do-db=xayimsdb
3)修改后重启Master节点
systemctl restart mysqld
4)登录客户端,创建从库同步数据的账号
#创建用户
create user 'xay'@'%' identified by 'xay123456';
#为用户添加复制权限
grant replication slave on *.* to 'replicate'@'%';
#使执行生效
flush privileges;
5)查看主库状态
show master status\G;
file:表示同步的bin-log信息从哪个文件开始;
position:表示从file的哪个位置开始;
binlog_do_db:表示同步哪一个库
在后面的slave配置中,这三个结果都需要使用到。
6)Slave节点修改mysql配置,vi /etc/my.cnf
# 服务的唯一编号
server-id=2
# 开启mysql binlog功能
log-bin=mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
# 指定需要复制的数据库名为xayimsdb
replicate-do-db = xayimsdb
7)重启Mysql
systemctl restart mysqld
8)mysql的终端执行同步命令,给从设置主服务器ip,同步账号密码,同步位置
change master to master_host='server02',master_port=3306,master_user='xay',master_password='xay123456',master_log_file='mysql-bin.000002',master_log_pos=538;
ps:命令需要特别注意:master_log_file 和master_log_pos 2个属性内容,这2个属性是刚才主服务器上执行show master status\G;查询出来的内容。
9)开启从机角色
start slave;
10)查看从库状态,当Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功
show slave status\G;