mysql01
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql01,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5328字,纯文字阅读大概需要8分钟。
内容图文
![mysql01](/upload/InfoBanner/zyjiaocheng/895/4af7f65f9a95490583983ea5ff78f7fa.jpg)
mysql的安装与配置
安装centos6.9
网卡设置
1 cd /etc/sysconfig/network-scripts 2 vim ifcfg-eth0 3 onboot yes 4 DNS1=8.8.8.8
service network restart
mysql的安装
1.http://dev.mysql.com/downloads/repo/yum/
2.yum localinstall mysql57-community-release-el6-11.noarch.rpm
3.yum -y install mysql-community-server
重启mysql服务
service mysqld start
第一次登陆从log日志中取得随机密码
1 more /var/log/mysqld.log
修改密码的复杂度
1 修改密码的复杂度 2 set global validate_password_policy=0; 3 修改密码的长度 4 set global validate_password_length=1; 5 6 alter user 'root'@'localhost' identified by 'root';
其他操作
1 创建用户 2 create user 'test'@'%' identified by 'test'; 3 4 查看当前的用户 5 select user,host from mysql.user; 6 7 通过用户名和主机才能唯一确定一个用户 8 alter user 'test'@'%' indentified by '1234'; 9 10 赋予权限 11 grant + 权限 + 数据库.数据表 to 用户 12 grant replication slave on *.* to 'test'@'%'; 13 14 回收权限 15 revoke all on *.* from 'test'@'%'; 16 17 删除用户 18 drop user 'test'; 19 20 备份数据库 21 mysqldump -uroot -p 数据库名 备份到的路径 22 mysqldump -uroot -p user > /root/mysqlback.sql 23 24 恢复数据库 25 mysqldump -uroot -p mytest >~/bak/mytest.sql 26 user mytest; 27 drop table user; 28 quit 29 30 mysql -uroot -p mytest < mytest.sql
主从复制
数据冗余,提高数据的安全性
提高服务器的负载
原理:从节点读取主节点的binlog日志
场景:数据库备份,读写分离
主从配置搭建
主192.168.239.140 从192.168.239.141
主机配置
1 创建用户 2 create user 'repl'@'192.168.239.%' indetified by 'repl'; 3 4 查看用户 5 select * from mysql.user\G; 6 7 赋予只读权限 8 grant replication slave on *.* to 'repl'@'192.168.239.%' identified by 'repl';
mysql 日志
Error log 错误日志
General query log 普通查询日志
slow query log 慢查询日志
Binary log 二进制日志文件
Binary log作用:增量备份,主从
1 开启binlog日志 2 vim /etc/my.cnf 3 server-id=1 #多节点不可重复 4 log-bin=/var/lib/mysql/mysql-bin #指定bin log 的日志文件名 5 6 7 mysql-bin.00001 是日志文件的数据文件 8 mysql-bin.index 是日志文件的索引文件 9 10 查看bin log 文件配置 11 show variables like '%log_bin%';
查看二进制文件
1 mysqlbinlog filename 2 或 3 >show binlog events; 4 5 6 查看具体的二进制文件 7 >show binlog events in ‘Log_name’; 8 9 每次重启服务器,服务器调用flush logs,会重创建新的bin-log日志文件 10 11 flush logs 刷新日志文件,产生新的日志文件 12 13 show master status; 14 查看当前日志状态 15 16 show master logs 17 查看所有的日志文件 18 19 reset master 20 清空所有的日志文件 21 23 binlog 恢复数据 24 25 mysqlbinlog bin 日志文件名 | mysql -uroot -p 26 mysqlbinlog mysql-bin.000001 | mysql -uroot -p 27 28 恢复指定数据 29 mysqlbinlog mysql-bin.000001-start-position 219 -stop-position 412 | mysql -uroot -p
从机配置
1 复制网卡信息,修改网卡信息(随机) 2 00:0C:29:D5:95:67 3 4 vi /etc/sysconfig/network-scripts/ifcfg-eth0 5 修改 mac 地址 6 7 cd /etc/udev/rules.d 8 rm -rf * 9 10 重启 11 reboot
从节点
配置同步日志
指定主节点的ip 端口,用户,等信息
启动从节点
1 配置日志 2 vi /etc/my.cnf 3 4 server-id=2 与主机不一致 5 log-bin=/var/lib/mysql/relay-bin 6 7 重启服务 8 service mysqld restart
1 change master to master_host='192.168.239.140' , master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=0; 2 3 start slave; 4 5 show slave status\G 6 7 注意 8 Slave_IO_Running Connection 连接到主库,并读取主库的日志到本地,生成本地日志文件 9 Slave_SQL_Running Yes 读取本地日志文件,并执行日志里的SQL命令。
异常处理
Slave_IO_Running NO
Slave_SQL_Running Yes
1 cd /var/lib/mysql 2 cat auto.cnf 3 4 vi auto.cnf 5 随机修改server-uuid
Slave_IO_Running Connection
Slave_SQL_Running NO
1 解决办法一、 2 Slave_SQL_Running: No 3 1.程序可能在slave上进行了写操作 4 2.也可能是slave机器重起后,事务回滚造成的. 5 一般是事务回滚造成的: 6 解决办法: 7 mysql> slave stop; 8 mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 9 mysql> slave start; 10 11 解决办法二、 12 首先停掉Slave服务:slave stop 13 到主服务器上查看主机状态: 14 记录File和Position对应的值 ,注意master_log_file是否发生变化 15 进入master 16 mysql> show master status; 17 mysql>change master to master_host='192.168.239.140' , master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=0; 18 mysql> show slave status\G
主机需要关闭防火墙
service iptables status
service iptable stop
slave
mysql -urepl -p -h192.168.239.140
ok
在主节点上操作,从机会默认同步
mysql 的主主复制就是两台 mysql 节点互为主从
在原来主从的基础上做如下操作:
1.开启原从节点的 binlog 日志
1 salve 2 3 vim /etc/my.cnf 4 log-bin=/var/lib/mysql/mysql-bin 5 service mysqld restart
2.原从节点创建读取副本的用户
1 slave 2 create user 'repl'@'192.168.239.%' identified by 'repl'; 3 grant all on *.* to 'repl'@'192.168.239.%'; 4 5 show master status;
3.在原主节点中让 master 指向从节点
1 change master to master_host='192.168.239.141',master_port=3306,master_user='repl', 2 master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=616;
4.在原主节点执行 start slave 命令
master
start slave;
以上步骤即可完成主主节点的配置
下面有一个问题需要解决,就是自增主键的问题,按照上面的做法,如果向两个节点中插
入数据,一定会导致主键的重复,这里需要一个小的技巧
这里让第一台节点主键采用 1, 3 ,5 ,7.的方式自增
第二台节点采用 2, 4, 6, 8 的方式递增,这样就不会导致主键冲突了,在 MySQL5.7 中,不需要配置主键自增策略,每个库的操作都会让另外一个库递增
1 master 2 vim /etc/my.cnf 3 4 auto_increment_increment=2 5 auto_increment_offset=1 6 7 8 slave 9 vim /etc/my.cnf 10 11 auto_increment_increment=2 12 auto_increment_offset=2
完
内容总结
以上是互联网集市为您收集整理的mysql01全部内容,希望文章能够帮你解决mysql01所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。