linux安装解压版mysql并配置主从复制(亲测有效,傻瓜教程)

1、下载mysql

mysql最新版的官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads。如果新的项目,推荐mysql5.7或更新版本,因为它比老版本的配置文件更少,更容易配置和管理,安装方式更加自动化。

2、解压:

下载后的文件名:mysql-5.7.26-el7-x86_64.tar

先tar -xvf mysql-5.7.26-el7-x86_64.tar,解压后为mysql-5.7.26-el7-x86_64.tar.gz和mysql-test-5.7.26-el7-x86_64.tar.gz,再使用tar -zxvf mysql-5.7.26-el7-x86_64.tar.gz解压,将要使用的mysql进行解压

3、安装相关的组件

yum install libaio
yum install libnuma

或者:yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel

将解压后的文件夹移到其他目录并修改名称:

mv mysql-5.7.26-el7-x86_64 /root/mysql-5.7.26

4、创建mysql组和用户

cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
groupadd mysql
useradd -r -g mysql mysql
(useradd -r -g mysql mysql :参数表示mysql用户是系统用户,不可用于登录系统)

将mysql安装目录指定用户和组:chown -R mysql:mysql /root/mysql-5.7.26

5、修改support-files/mysql.server文件

cp -a ./support-files/mysql.server /etc/init.d/mysqld(拷贝mysql服务脚本到系统目录)
export PATH=$PATH:/root/mysql-5.7.26/bin/(临时将mysql的bin目录指定到环境变量,永久生效可以加到/etc/profile中)

6、修改/etc/my.cnf文件(以下例子)

[client]
#客户端设置
port=3336
socket=/root/mysql-5.7.26/mysql.sock
default-character-set=utf8mb4
[mysqld]
user=mysql
port=3336
server-id=1
#安装目录
basedir=/root/mysql-5.7.26
#数据库存放目录
datadir=/root/mysql-5.7.26/data
socket=/root/mysql-5.7.26/mysql.sock
log-error=/root/mysql-5.7.26/mysqld.log
pid-file=/root/mysql-5.7.26/mysqld.pid
#系统数据库编码设置,排序规则
character_set_server=utf8mb4
collation_server=utf8mb4_bin
back_log=1024
explicit_defaults_for_timestamp=ON
lower_case_table_names = 0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
max_connections=512
max_connect_errors=1000000
table_open_cache=1024
max_allowed_packet=8M
thread_stack=256K
thread_cache_size=384
 
skip-external-locking
 
interactive_timeout=600
wait_timeout=3600
log_timestamps=SYSTEM
log-error=/root/mysql-5.7.26/data/error.log
 
#默认使用InnoDB存储引擎
default_storage_engine=InnoDB
innodb_buffer_pool_size=64M
innodb_purge_threads=1
innodb_log_buffer_size=2M
innodb_log_file_size=128M
innodb_lock_wait_timeout=120
 
bulk_insert_buffer_size=32M
myisam_sort_buffer_size=8M
# MySQL重建索引时所允许的最大临时文件的大小
myisam_max_sort_file_size=10G
myisam_repair_threads=1
 
[mysqldump]
quick
max_allowed_packet=16M
 
[myisamchk]
key_buffer_size=8M
sort_buffer_size=8M
read_buffer=4M
write_buffer=4M

7、建立mysqld.log文件(可以不加)

vim mysqld.log
:wq
chmod 777 mysqld.log
chown mysql:mysql mysqld.log

**由于时间太长忘记这个文件该加在那个目录下了,所以有下面的方法可以做:

1、#skip-grant-tables,加上这个配置,意思是忽略密码验证,这样在没有mysqld.log文件的时候,我们可以不使用密码直接登录,登陆后再修改root的密码,再把这个配置注释,进行重启mysql,这样下次登录就要加密码了

2、如何修改密码:

使用update user set password=password(“新密码”) where user=”用户名”

执行后报错 ERROR 1054(42S22) Unknown column 'password' in ‘field list’

错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

使用:update mysql.user set authentication_string=password('*******') where user='*******'; #修改密码成功

最后进行刷新:flush privileges;  #立即生效

8、初始化数据库

进入mysql用户:su mysql,保证和mysql相关的目录和文件的用户和组都为mysql,如果有mysql的目录是root的所有者,会失败,这是大坑,切记!!!!!!!

在mysql安装目录下执行以下命令(根据自己的配置进行修改):

bin/mysqld --initialize --user=mysql --basedir=/root/mysql-5.7.26 --datadir=/root/mysql-5.7.26/data --lc_messages_dir=/root/mysql-5.7.26/share --lc_messages=en_US

mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/root/mysql-5.7.26 --datadir=/root/mysql-5.7.26/data --lc_messages_dir=/root/mysql-5.7.26/share --lc_messages=en_US

在mysqld.log文件中查看初始化密码

9、启动服务并进行配置,第一次进入需要修改初始化密码

启动服务:service mysqld start/stop

set password=password('新密码');
flush privileges;
grant all privileges on *.* to 'root'@'%' identified by 'root123';
flush privileges;
设置root用户的权限和可以远程登录

新增用户并设置权限:

grant all privileges on *.* to 'xiaoming'@'%' identified by 'xiaoming124';

10、设置主备同步

按以上方法装两个mysq服务,设置主备同步

1、增加配置参数

在主库进行以下操作:

1、创建做同步的用户,并设置权限
create user 'repl'@'%' identified by 'repl123';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
2、在住主库的my.cnf增加以下配置
#log-bin设置此参数表示启用binlog功能,并指定路径名称
log-bin=/vnum/mysql/mysql-bin
sync_binlog=0
#设置日志的过期天数
expire_logs_days=7
#binlog_cache_size此参数表示binlog使用的内存大小
binlog_cache_size=1G
#需要同步的库
binlog-do-db=vnumdb

在备库增加以下配置:(备库和主库的serverid要不同)

#需要同步的表
replicate-wild-do-table=vnumdb.%

2、开启主备同步

在主库执行show master slave;(查看binlog文件和位置)

在备库执行如下命令:

CHANGE MASTER TO MASTER_HOST='192.168.21.104',master_port=3336, MASTER_USER='repl', MASTER_PASSWORD='repl123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;

(注意主库的IP、端口、同步的用户、密码、binlog日志和位置)

执行start slave;开启主备同步

查看主备同步的状态:

注:

当主备停止的时候,在备库执行stop slave,执行CHANGE MASTER TO MASTER_HOST='192.168.21.104',master_port=3336, MASTER_USER='repl', MASTER_PASSWORD='repl123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;修改同步的文件和位置,在执行start slave开启主备同步状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值