CenterOS7 安装mysql 并设置主从库

安装mysql

  1. 查看linux上是否已经安装了mysql,有则卸载。
    一般centos7默认安装了mariadb,这里把它卸载。
    查看:rpm -qa|grep mariadb
    卸载:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

  2. 安装mysql5.7所需要的依赖
    yum install libaio
    yum install perl
    yum install net-tools

  3. 解压mysql5.7安装包,需要先进入文件所在目录
    tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar

  4. 安装mysql5.7
    rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm

  5. 查看mysql启动状态 inactve(dead)代表未启动
    service mysqld status

  6. 启动mysql active(running)代表启动成功
    service mysqld start

  7. 查看临时密码
    grep password /var/log/mysqld.log

  8. 进入mysql
    mysql -u root -p
    输入密码

  9. 修改初始密码
    ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘密码’;

  10. 刷新权限
    flush privileges;

移动mysql安装目录和数据目录

  1. 创建data文件夹
    mkdir /data

  2. 停止mysql
    service mysqld stop

  3. 移动mysql到我们需要指定的文件夹
    mv -f /var/lib/mysql /data/mysql

  4. 创建软连接
    ln -s /data/mysql /var/lib/mysql

  5. 设置SELinux 成为permissive模式(宽容模式)
    setenforce 0

  6. 修改配置文件
    主数据库配置文件范例

	#MySQL配置
	[client]
	#MySQL客户端端口
	port=3306
	[mysql]
	#MySQL默认字符集编码
	default-character-set=utf8
	[mysqld]
	#进入无密码模式
	#skip-grant-tables
	#MySQL端口
	port=3306
   #MySQL安装路径
   basedir=/var/lib/mysql
   #MySQL数据库文件路径
   datadir=/var/lib/mysql/data
   socket=/var/lib/mysql/mysql.sock
   #忽略大小写
   lower_case_table_names=1 
   #是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
   symbolic-links=0
   #启动和错误日志位置
   log-error=/var/log/mysqld-error.log
   #进程id文件
   pid-file=/var/run/mysqld/mysqld.pid
   #MySQL数据库默认编码
   character-set-server=utf8
   #表存储引擎方式 INNODB与MyISAM两种
   default-storage-engine=INNODB
   #SQL验证模式
   sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
   #最大连接数
   max_connections=1024
   #最大连接线程数
   thread_cache_size=200
   #MyISAM表发生变化时重新排序所需的缓冲
   myisam_sort_buffer_size=35M
   #索引缓冲区的大小
   key_buffer_size=25M
   #内存缓冲区大小
   read_buffer_size=64K
   #随机读缓冲区大小
   read_rnd_buffer_size=256K
   #排序缓冲区大小
   sort_buffer_size=256K
   #mnir配置加入
   max_allowed_packet=100M
   wait_timeout=3600
   #慢查询日志配置
   #开启慢查询日志
   slow_query_log=1
   #慢查询日志的时间定义(秒),默认为10秒,多久就算慢查询的日志
   long_query_time=10
   #将所有没有使用带索引的查询语句全部写到慢查询日志中
   log_queries_not_using_indexes=1   
   #日志位置
   slow_query_log_file=/data/mysql/log/slow-query.log
   #主从配置
   #设置主服务的ID,只要与从服务器不同即可,随意设置,如果在同一局域网,可以设置为IP,以便具有辨识度
   server-id=210
   read-only = 0
   innodb_flush_log_at_trx_commit=2 #(参数的含义如下)
   #0:如果innodb_flush_log_at_trx_commit的值为0,log buffer每秒就会被刷写日志文件到磁盘,提交事务的时候不做任何操作(执行是由mysql的master thread线程来执行的。
   #主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件(REDO LOG)中。不论事务是否已经提交)默认的日志文件是ib_logfile0,ib_logfile1
   #1:当设为默认值1的时候,每次提交事务的时候,都会将log buffer刷写到日志。
   #2:如果设为2,每次提交事务都会写日志,但并不会执行刷的操作。每秒定时会刷到日志文件。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度。
   #每次事务提交的时候将数据写入事务日志,而这里的写入仅是调用了文件系统的写入操作,而文件系统是有 缓存的,所以这个写入并不能保证数据已经写入到物理磁盘
   #默认值1是为了保证完整的ACID。当然,你可以将这个配置项设为1以外的值来换取更高的性能,但是在系统崩溃的时候,你将会丢失1秒的数据。
   #设为0的话,mysqld进程崩溃的时候,就会丢失最后1秒的事务。设为2,只有在操作系统崩溃或者断电的时候才会丢失最后1秒的数据。InnoDB在做恢复的时候会忽略这个值。
   #总结
   #设为1当然是最安全的,但性能页是最差的(相对其他两个参数而言,但不是不能接受)。如果对数据一致性和完整性要求不高,完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能
   #开启binlog日志同步功能
   sync_binlog=1
   #binlog 日志文件名前缀
   log-bin=mysql-bin-210
   #这个表示只同步某个库 (如果没有此项,表示同步所有的库)
   #binlog-do-db=xxxx

从库配置文件范例,配置与主库相同,这里只展示主从部分的区别

	#主从配置
	#与主库不同的ID
	server-id=211 
	#非root用户只读
	read-only = 1
	innodb_flush_log_at_trx_commit=2 
	sync_binlog=1 
	log-bin=mysql-bin-211
  1. 重新设置root密码
    修改配置文件,释放
    skip-grant-tables

  2. 重启mysql,以无密码方式进入数据库

  3. 选择数据库
    use mysql;

  4. 更新root的密码
    update user set authentication_string=password(‘密码’) where user=‘root’ and Host=‘localhost’;

  5. 刷新权限
    flush privileges;

  6. 关闭无密码模式,重启mysql

  7. 防火墙开放3306端口
    firewall-cmd --permanent --add-port=3306/tcp
    firewall-cmd --reload

  8. 授权远程用户登录(这一步可以不做)
    grant all privileges on *.* to ‘用户名’@’%’ identified by ‘登录密码’ with grant option;

主从配置

上面我们已经配置好了主从的配置文件,接下来要对数据库进行一下设置

  1. 主数据库向从库远程授权
    grant replication slave on *.* to ‘账号’@‘IP’ identified by ‘密码’;

  2. 查看主库状态
    show master status;

  3. 记录状态中的File字段和Position字段
    在这里插入图片描述

  4. 配置从数据库连接主数据库
    change master to master_host=‘主库IP’,master_user=‘授权登录账号’ ,master_password=‘授权登录密码’, master_log_file=‘主库FILE字段’ ,master_log_pos=主库Position字段;

  5. 配置完成后启动slave.
    start slave;

  6. 查看slave的状态
    show slave status \G;
    在这里插入图片描述
    检查主库的IP,端口是否正确,检查Slave_IO_Running字段是否为Yes,检查Slave_SQL_Running字段是否为Yes。

  7. 在主库进行增删改查操作验证是否成功

其他

如果出现1820错误就再刷一遍密码
SET PASSWORD = PASSWORD(‘密码’);
flush privileges;

如果出现主从复制失败的情况
首先保证主从数据库之间的数据一致性
然后停止从服务器的复制
stop slave;
重设参数
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
再次启动
start slave;

安装资源

https://download.csdn.net/download/jeffgxy/72295623

配置文件中没有加入忽略大小写,需要的自己手动加入
lower_case_table_names=1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jeffgxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值