1. 下载mysql解压包
Mysql newer version: 8.0.33
cat /etc/redhat-release 查看centOS版本
https://downloads.mysql.com/archives/community/ 社区版下载地址
根据操作系统版本选择相应版本tar包,目前最新版本是8.0.33
2. 解压配置mysql
查看mysql用户组是否存在
groups mysql
不存在添加mysql用户组及用户
groupadd mysql && useradd -r -g mysql mysql;
解压tar包
tar -zxvf mysql-8.0.33-el7-x86_64.tar.gz
mv mysql-8.0.33-el7-x86_64 mysql8.0.33
将此文件夹赋予权限
chown mysql:mysql -R /data/mysql;
创建mysql数据目录
mkdir /data/mysql/data
chown mysql:mysql -R /data/mysql/data;
配置mysql配置文件,主从配置时需指定不同的server-id,必须配置log-bin启用二进制日志。其它参数主要是一些性能配置和数据文件目录。
vi /etc/my.cnf
[mysql]
default-character-set=utf8mb4
[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
port=3306
server-id=3306
user=mysql
general_log = 1
general_log_file= /data/mysql/mysql8.0.33/data/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/data/mysql/mysql8.0.33
datadir=/data/mysql/mysql8.0.33/data
log-bin=/data/mysql/mysql8.0.33/data/mysql-bin
innodb_data_home_dir=/data/mysql/mysql8.0.33/data
innodb_log_group_home_dir=/data/mysql/mysql8.0.33/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
[mysqld_safe]
log-error=/data/mysql/mysql8.0.33/data/mysql-error.log
pid-file=/data/mysql/mysql8.0.33/data/mysql.pid
执行下面命令初始化mysql
./mysqld --user=mysql --basedir=/data/mysql/mysql8.0.33 --datadir=/data/mysql/mysql8.0.33/data/ --initialize;
初始化后会生成一个密码
A(#UR<iDo8:i
注意:这里面生成的密码如果有&什么特殊字符的,无法登录成功。照网上的办法试了几种,没管用。最简单的办法删除mysql初始化的文件夹,重新执行初始化命令,生成一个不带&符号的密码...
1. 复制文件
cp /data/mysql/mysql8.0.33/support-files/mysql.server /etc/init.d/mysql;
cp /data/mysql/mysql8.0.33/support-files/mysql.server /etc/init.d/mysqld;
2. 赋予权限(赋予用户与用户组的权限)
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
3.检查一下/var/lib/mysql是否存在,否则进行创建
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/
1. 进入mysql的bin目录
cd /data/mysql/mysql8.0.33/bin;
2. 启动mysql服务
service mysql start; #启动mysql
service mysql stop; #停止mysql
service mysql restart; #重启mysql
service mysql status; #查看mysql运行状态
3. 进入mysql并且首次修改root用户的密码(不修改密码不让操作库)
映射mysql命令
ln -s /data/mysql/mysql8.0.33/bin/mysql /usr/bin
mysql -uroot -p初始密码; #进入mysql
alter user user() identified by 'bwt4567'; #修改初始密码
启动完成!
允许mysql对外访问(不配置,navicat及外部环境无法访问)
use mysql;
update user set host ='%' where user = 'root';
flush privileges;
3. 主从配置
主库查看show master status; 获取log文件及Position
主从配置(从库中执行)
change master to master_host='192.168.174.210', master_user = 'root', master_password='bwt4567',master_log_file='mysql-bin.000005', master_log_pos=643;
开启主从同步
start slave;
查看从库状态, 如果能看到这俩个线程都是Yes。则代表主从同步成功,接下来可以测试一下。主库中建一个表, 去从库查看是否也有相应表。
show slave status;
4. 主从复制原理
主从复制整体分为以下三个步骤:
- 主库将数据库的变更操作记录到Binlog日志文件中。
- 从库读取主库中的Binlog日志文件信息写入到从库的Relay Log中继日志中。
- 从库读取中继日志信息在从库中进行Replay,更新从库数据信息。
在上述三个过程中,涉及了Master的BinlogDump Thread和Slave的I/O Thread、SQL Thread,它们 的作用如下:
Master服务器对数据库更改操作记录在Binlog中,BinlogDump Thread接到写入请求后,读取 Binlog信息推送给Slave的I/O Thread。 Slave的I/O Thread将读取到的Binlog信息写入到本地Relay Log中。 Slave的SQL Thread检测到Relay Log的变更请求,解析relay log中内容在从库上执行。
标签:log,33,最全,mysql8.0,mysql,从库,data,主从 From: https://www.cnblogs.com/brook0366/p/17664713.html