重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文主要给大家介绍MySQL常用到的技术,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL常用到的技术吧。
普定网站建设公司创新互联建站,普定网站设计制作,有大型网站制作公司丰富经验。已为普定上千提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的普定做网站的公司定做!
部署数据库
apt-get update
问题 可能报错
rm /var/lib/apt/lists/lock
dpkg --configure -a
apt-get install mysql-server
弹框----输入密码 确认密码 /// 也可以mysql_secure_installation配置
mysql -uroot -p'12345'
主从配置
1、修改主配置文件
vim /etc/mysql/mysql.cnf
[mysqld] log-bin=master-bin //启动MySQL二进制日志 server-id=100 log_bin_index = master-bin.index //指定记录二进制日志的数据库 binlog_do_db = my_data //指定记录二进制日志的数据库 binlog_ignore_db = mysql //指定不记录二进制日志的数据库 ... #bind 127.0.0.1 注释掉
mysql>grant replication slave on *.* to slave@39.105.177.38 identified by '12345'; mysql> flush privileges;
问题 授权这块root@39.105.177.38两者 加单引号 会出错 未证实
授权给想要登录的主机
bind 0.0.0.0
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.8' IDENTIFIED BY 'www.linuxidc.com' WITH GRANT OPTION;
3、重启mysql
service mysql restart
4、查看状态
1、编辑配置文件
[mysqld] log_bin=slave-bin server-id = 2 relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index ... #bind 127.0.0.1 注释掉
2、重启服务
service mysql restart
3、登录Slave从云服务器,连接Master主云服务器
mysql> change master to master_host='39.96.73.99',master_user='slave',master_password='12345',master_log_file='master-bin.000001',master_log_pos=154;
4、启动Slave数据同步。
mysql>start slave;
5、查看Slave信息:
mysql>show slave status\G;
#同步成功
问题 如果不成功 主从上均执行一下命令
从库中断问题
报错显示:ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
大多是权限 和 log pos不一致
slave: stop slave reset slave 做以下的前提要保证:此刻从库和主库数据相同 要不然成功之后还会因缺少某条数据报错 master: flush logs; show master status; 记下File, Position。 slave: CHANGE MASTER TO MASTER_LOG_FILE='file',MASTER_LOG_POS=pos; slave start; show slave status\G;
报错
解决:stop slave ;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; #跳过slave上的1个错误
start slave ;
线上MYSQL同步报错故障处理总结 http://blog.itpub.net/15498/viewspace-2134013/
针对第三种 我试了直接三步https://blog.csdn.net/heng_ji/article/details/51013710
卸载mysql
sudo apt-get remove mysql-* dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P //清理残留的数据
跳出一个对话框,选择yes
数据库备份
注意是否需要my.cnf 里边 解除注释 备份: mysqldump -uroot -p12345 --all-databases --single-transaction -- master-data=2 --flush-logs > /alidata/`date +%F-%H%M`-mysql-all.sql
数据恢复
还原库 mysql -uroot -p12345 < /alidata/backup/mysql-all.sql 导表: mysql -uroot -p12345 进去数据库 use cw100; source /root/crm.sql 在相应表里将外表倒进去
一个完整的备份脚本例子
#!/bin/bash # Program # use mysqldump to Fully backup mysql data per week! # 2017-8-28 huangwei # History # Path BakDir=/var/lib/mysql/backup LogFile=/var/lib/mysql/backup/fullBakLog.log Date=`date +%Y%m%d` Begin=`date +"%Y年%m月%d日 %H:%M:%S"` cd $BakDir DumpFile=$Date.sql GZDumpFile=$Date.sql.tgz mysqldump -uroot -pcw100SQ18 --all-databases > $DumpFile /bin/tar -zvcf $GZDumpFile $DumpFile /bin/rm $DumpFile #只保留过去四周的数据库内容 count=$(ls -l *.tgz |wc -l) if [ $count -ge 5 ] then file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1') rm -f $file fi Last=`date +"%Y年%m月%d日 %H:%M:%S"` echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile #cd $BakDir/daily #/bin/rm -f
查看binlog日志
eg: /usr/bin/mysqlbinlog --no-defaults --base64-output=decode-rows -v --database=cw100 --start-datetime="2019-04-17 08:00:00" --stop-datetime="2018-07-18 11:00:00" /usr/lib/mysql/mysql-bin.000154 > /root/binlog.txt
看完以上关于MySQL常用到的技术,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。