MySQL安装
MySQL官网下载 mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
上传至/usr/local目录下,解压重命名为mysql-8.0.23
cd /usr/local
rz
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz (-xvf解压tar.xz, -zxvf解压tar.gz)
mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql-8.0.23
cd mysql-8.0.23
mkdir data (创建数据目录data)
ll
初始化Mysql (注意:最好新建一个用户,这里为方便演示使用的是root用户)
cd bin
./mysqld --user=root --basedir=/usr/local/mysql-8.0.23 --datadir=/usr/local/mysql-8.0.23/data/ --initialize
修改/etc/my.cnf配置文件 (1.修改basedir, datadir 2.注释掉mysqld_safe及log-error, pid-file)
vi /etc/my.cnf
添加mysqld服务
启动mysql服务
启动服务异常!!!
修改/etc/init.d/mysql中的"start"部分,添加root用户启动即可
再次启动服务
启动成功!
接着可以添加mysql命令到服务
ln -s /usr/local/mysql-8.0.23/bin/mysql /usr/bin
同时登录连接MySQL(输入之前初始化时生成的临时密码)
登录成功!
接着修改root用户密码并刷新权限使之生效
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;
flush privileges;
接着修改root用户支持远程连接并刷新权限使之生效
use mysql;
update user set host=‘%’ where user=‘root’;
flush privileges;
防火墙永久开放3306端口(注意:若已停用/已禁用防火墙此步骤可以忽略)
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
#查看防火墙端口状态
firewall-cmd --list-all
现在可以用客户端工具进行远程连接MySQL服务了!
主从同步
MySQL主从同步复制默认采用异步复制的方式,主节点执行完用户提交的事务后写入Binlog日志然后返回客户端响应,另外Binlog会由一个dump线程异步传输至从节点;
为保证数据一致性,MySQL主从架构严格限制从节点数据写入,即只能将数据从主节点同步到从节点,主节点提供数据写操作从节点提供数据读操作,并且后续的读写分离也是基于主从同步进行处理的。
若需要限制从节点数据写入
1.可以在从节点配置文件中设置read_only=1(set global read_only=1;)只读(该操作限定的是普通用户只读,对super权限用户无效,并且该操作不会影响从节点数据同步)
2.从节点执行 flush tables with read lock; 操作 (该操作可限制super权限用户写操作,但是会影响从节点同步复制)
实战配置
方式一:Binlog同步
1、配置主节点/etc/my.cnf
[mysqld]
#指定MySQL集群节点id(保证唯一)
server-id=1
#开启binlog
log_bin=master-binlog
log_bin-index=master-binlog.index
#配置需要同步的数据库
binlog-do-db=masterslave
#配置不需要同步的数据库
binlog-ignore-db=sys
binlog-ignore-db=information_schame
binlog-ignore-db=performation_schema
#数据log保留时间(天)
expire-logs-days=7
skip-name-resolve
port=3306
#指定MySQL安装目录
basedir=/usr/local/mysql-8.0.23
#指定MySQL数据存放目录
datadir=/usr/<