设为首页 收藏本站
查看: 749|回复: 0

[经验分享] MySQL的基本应用

[复制链接]
累计签到:4 天
连续签到:1 天
发表于 2018-10-3 10:45:53 | 显示全部楼层 |阅读模式
  MySQL中的复制
  实验需要两台Linux主机:他们的IP地址为192.168.0.28(主)和192.168.0.29(从)
  主服务器端:
  1.确保在服务器和从服务器上安装的MySQlL兼容。理想情况,应在主服务器和从服务器上使用最近版本的MySQL。
  2.在主服务器上为服务器设置一个连接账户。该账户必须授予REPLICATION SLAVE权限。如果账户仅用于复制(推荐这样做),则不需要再授予任何其它权限。

  mysql> GRANT REPLICATION SLAVE,REPLICATION ON *.* TO 'myadmin'@'192.168.0.29'>  3.确保主服务器主机上my.cnf文件的[mysqld]部分包括一个log-bin选项。该部分还应有一个server-id=Master_id选项,其中master_id必须为1到232–1之间的一个正整数值。例如:
  [mysqld]
  log-bin=mysql-bin
  server-id=1
  如果没有提供那些选项,应添加它们并重启服务器。
  从服务器端:
  1.确保从服务器分配了一个唯一的服务器ID号;在其my.cnf文件中添加下面的行:
  [mysqld]
  server-id=2
  2.在从服务器上执行下面的语句,为每个选项填入适当的值:
  mysql> CHANGE MASTER TO
  ->     MASTER_HOST='192.168.0.28',
  ->     MASTER_USER='myadmin',
  ->     MASTER_PASSWORD='myadmin',
  ->     MASTER_LOG_FILE='recorded_log_file_name',
  ->     MASTER_LOG_POS='0';
  3.    在从服务器上执行START SLAVE语句。
  mysqladmin:用于管理MySQL服务器的客户端。mysqladmin是一个执行管理操作的客户程序。可以用它来检查服务器的配置和当前的状态,创建并删除数据库等等。
  shell> mysqladmin [options] command [command-options] [command [command-options]] ...
  mysqladmin支持下面的命令:
  create db_name              创建一个名为db_name的新数据库。
  debug                           告诉服务器向错误日志写入调试信息。
  drop db_name                删除名为db_nam的数据库和所有表。
  extended-status             显示服务器状态变量及其值。
  flush-hosts                     刷新主机缓存中的所有信息。
  flush-logs                       刷新所有日志。
  flush-privileges              重载授权表(类似reload)。
  flush-status                   清除状态变量。
  flush-tables                   刷新所有表。
  flush-threads                刷新线程缓存。

  kill>  password new-password       设置一个新密码。将用mysqladmin连接服务器使用的 账户的密码更改为new-password。
  ping                           检查服务器是否仍活动。
  processlist                 显示活动服务器线程的列表。
  reload                        重载授权表,相当于flush-privileges。
  refresh                       刷新所有表并关闭和打开日志文件,相当于flush-hosts和flush-logs。
  shutdown                  停止服务器。
  start-slave                 开始从服务器上的复制。
  status                        显示短服务器状态消息。
  stop-slave                 停止从服务器上的复制。
  variables                   显示服务器系统变量及其值。
  version                      显示服务器的版本信息。
  下述存储引擎是最常用的:
  MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。
  InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。
  BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。
  Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。
  Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。
  Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。
  Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。
  Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。
  Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。
  MySQL的备份与还原
  mysqldump命令产生的.sql文件包含一系列SQL INSERT语句,可以用来重载转储的表。
  mysqldump
  --all-databases               备份所有的数据库
  --database  db_name1    备份数据库db_name1
  --databases  db_name1 db_name2 备份多个数据库db_name1,db_name2
  --flush-logs             作日志滚动
  --lock-all-tables        锁定所有表
  --no-data               只备份表结构,不备份数据
  --replace                使用replace取代insert
  --opt                     使用扩在选项
  --where"表达式"      使用where语句限定备份
  可使用下例命令恢复数据库:
  shell>mysql -uroot -p < back.sql
  或使用:mysql>source back.sql
  可恢复数据库。
  SELECT INTO OUTFILE对具体文件进行选择备份:
  要想复制表,使用SELECT * INTO OUTFILE 'file_name' FROM tbl_name。
  要想重载表,使用LOAD DATA INFILE 'file_name' INTO TABLE tblname 并恢复。
  要避免复制记录,表必须有PRIMARY KEY或一个UNIQUE索引。当新记录复制唯一键值的旧记录时,REPLACE关键字可以将旧记录替换为新记录。
  mk-parallel-backup是一款开源软件:
  要想备份数据库可使用命令为:
  mk-parallel-dump  --basedir = /backs
  要想还原数据库应使用命令为:
  mk-parallel-restare /backs
  mysqlhotcopy在数据目录所在的服务器上执行此命令,数据库引擎为MyISAM,近乎于冷备份,命令格式为:
  mysqlhotcopy mydb /backup          本地主机数据库备份
  mysqlhotcopy --method=scp mydb username@backup.company.com:/backup 远程主机数据库备份
  恢复数据库只需把备份文件目录拷贝到相应目录下即可。
  mysqlbinlog:用于处理二进制日志文件的实用工具
  服务器生成的二进制日志文件写成二进制格式。要想检查这些文本格式的文件,应使用mysqlbinlog实用工具。mysqlbinlog命令的使用方法:
  shell> mysqlbinlog [options] log-files...
  要想显示二进制日志binlog.000003的内容,使用下面的命令:
  shell> mysqlbinlog binlog.0000003
  可用下面命令来备份日志:
  shell>mysqlbinlog mysql-bin.000003 > mysql-bin00003.sql
  对于企业备份数据库,备份结束后一定要检测数据库是否备份成功。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-608909-1-1.html 上篇帖子: mysql+proxy+mmm-milan22 下篇帖子: mysql问题不断
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表