最方便的 就是 直接使用docker容器 搭建一个比较方便
或者 直接使用yum源安装,说白了就是少踩坑。
或者 是直接使用 宝塔等工具帮忙,直接脚本跑 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板
以下是内网两台机器安装的方法
MySQL :: Download MySQL Community Server (Archived Versions)
安装的机器 10.108.168.33 和 10.108.168.34 两台
注意防火墙 关闭
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
groups mysql
添加用户组和用户 groupadd mysql && useradd -r -g mysql mysql
(如果是重装,记得 清除mysql所有的东西,删除 mysql用户和组)
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
解压后的mysql-5.7.35-linux-glibc2.12-x86_64文件移动到/usr/local/mysql (文件夹名称修改为mysql不带版本号信息)
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
cat /data/mysql/mysql.err
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
mysql -uroot -p
输入密码
# 设置密码
SET PASSWORD = PASSWORD('这里设置密码,多次输入覆盖没事的');
# 设置用户的访问密码用不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
#刷新权限
FLUSH PRIVILEGES;
# 访问mysql库
use mysql
# 修改root用户能在任何host访问
update user set host = '%' where user = 'root'; # 刷新 FLUSH PRIVILEGES;
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig --list
发现 2、3、4、5 都是开,说明你的mysql加入开机自启成功
如上图所示,如果是2,3,4,5 都是开启的话则成功。
如果不是,可运行以下命令开启:
chkconfig --level 2345 mysql on
reboot
ps -aux | grep mysql
以上就是整个的安装过程,自己重装就是用户和组没删除,重建 搞了好久,记录以下
参考: Linux下搭建Mysql主从复制详细步骤(Mysql版本5.7.35)_linux中mysql主从复制_Direct_的博客-CSDN博客
注意一下 : 主从目录 都可以配置log-bin, 位置就放在默认位置
log-bin=mysql-bin
mysql 主数据库增加配置(增加如下配置,最好去除注释信息,防止报错)
[mysqld]
#开启log-bin二进制日志,放在默认位置就好了
log-bin=mysql-bin#配置唯一的服务器ID,一般使用IP最后一位
server-id=131#添加,允许从服务器更新二进制日志
log-slave-updates=true#下面这两个不是必须要配置
#主要是为了使用带事务的InnoDB进行复制设置时尽可能提高持久性和一致性
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
mysql主数据库(完整配置) my.cnf
[mysqld]
bind-address=0.0.0.0
port=13306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=truelog-bin = mysqlbin
server-id=33
log-slave-updates=true
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
改了配置注意重启 mysql
service mysql restart
mysql从数据库(完整配置) my.cnf
[mysqld]
# data文件路径
datadir=/usr/local/mysql/data
port=13306
user=mysql
character-set-server=utf8
log-bin = mysqlbin
server-id=34
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index[mysqld_safe]
# 日志文件路径
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
在从数据库中,改了端口下面这个连接 就可以开启
#进入mysql数据库mysql -uxxx -pxxx
#停掉从的服务,这里一定要停掉服务再去执行下面的
stop slave; #8以下的可以试试slave stop
#配置关联master,3306可以默认不写,master_log_file和master_log_pos参考之前主库show masterstatus;查询出来的信息。
change master to master_host='192.168.3.206', master_port=3306,master_user='root', master_password='root',master_log_file='binlog.000004',master_log_pos=156;
#启动服务
start slave; #8以下的可以试试slave start
#查看是否成功
show slave status \G;
看到中间两个running都为 yes 说明安装成功
希望都能一把过