`
ghl116
  • 浏览: 165850 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySql学习(转)

阅读更多

如何复制一份MySQL5.x的从库

现在的MySQL.x从库已经不够使用,需要在另一台机上复制配置一份从库。

(1) 在新的机器上编译好同版本的数据库,并能正常使用

(2) 在正在使用的从库上运行

slave stop;

然后将数据目录打包(tar),并复制到新的数据库作为数据库目录

slave start;

(3) 修改新的数据库my.cnf,注意与从库的相关的IP及权限的配置

(4)在主库上添加新的从库数据复制的操作权限

(5)查看最后的master.info信息(以便运行第8步)

(6)在新的从数据库上删除相关的文件:mysql*-relay-bin*,mysql-bin.*,master.info,relay-log.info

(7)启动新的从数据库

(8)登陆新的从数据库,运行以下:

slave stop;

CHANGE MASTER TO MASTER_HOST='ip',
MASTER_PORT=3306,
MASTER_USER='user',
MASTER_PASSWORD='pass',
MASTER_LOG_FILE='mysql-bin.000220',
MASTER_LOG_POS=951474375;

slave start;

 

标签: MySQL5.1 MySQL5.2 从库 主从同步 同步

mysql5.1+ 支持innodb

oracle 收购 innobase 后,mysql从5.1开始就不默认支持innodb引擎了,要使用innodb必须编译时,在configrue的时候,加上--with-plugins=innobase这个参数。

这样编译安装的mysql就支持InnoDB了。

可以用下面的命令进行测试:

mysql> show plugin;  

mysql>show engines\G ;

 

标签: MySQL5.1 MySQL5.2 innobase innodb

MySQL相关命令

/srv/mysql-4.0.24/bin/mysqldump --add-drop-table -uroot -p -h192.168.1.2 -P3306 haiguan > haiguan1.sql

 

标签: MySQL mysqldump mysqlimport

修改已存在的表增加ID属性为auto_increment自动增长

今天有需要将已经存在表设置自动增长属性

具体如下

alter table customers change id id int not null auto_increment primary key; 

扩展知识:

//添加字段并设置主键
ALTER TABLE tabelname ADD new_field_id int(5) unsigned default 0 not null auto_increment ,ADD primary key (new_field_id);

//加主关键字的索引
ALTER TABLE tablename ADD primary key(id);

//加索引
ALTER TABLE tablename CHANGE depno depno int(5) not null;
ALTER TABLE tablename ADD INDEX 索引名 (字段名1[,字段名2 …]);
ALTER TABLE tablename ADD INDEX emp_name (name);

//加唯一限制条件的索引
ALTER TABLE tablename ADD UNIQUE emp_name2(cardnumber);

//删除某个索引
ALTER TABLE tablename DROP INDEX emp_name;


//增加字段:
ALTER TABLE table_name ADD field_name field_type;

//删除字段
ALTER TABLE table_name DROP field_name;

//重命名列
ALTER TABLE table_name CHANGE field_name1 field_name2 integer;

//调整字段顺序 
ALTER TABLE `users` CHANGE `user_password` `user_password` varchar( 20 ) NOT NULL AFTER user_name;

//改变列的类型
ALTER TABLE table_name CHANGE field_name field_name bigint not null;
ALTER TABLE infos CHANGE list list tinyint not null default '0';

//修改原字段名称及类型:
ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

//重命名表
ALTER TABLE table_name rename new_table_name;

//级联更新 和 删除(红色部分,不区分大小写 )
DROP TABLE IF EXISTS `mail_model`;create TABLE mail_model(id varchar(50) primary key not null ,mail_filename varchar(200),content varchar(2000))ENGINE=InnoDB DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `mail_model_extend`;create TABLE mail_model_extend(id int(6) auto_increment not null primary key,rid varchar(50) not null,content varchar(2000),INDEX (RID),FOREIGN KEY (RID) REFERENCES mail_model(ID) ON DELETE CASCADE ON UPDATE CASCADE)ENGINE=InnoDB DEFAULT CHARSET=gbk;

 

标签: MySQL auto_increment 自动增长

MySQL5主库断电后主从的恢复

 问题,主库异常断电后,重启主库机器,主从同步不能启动:

Slave_IO_Running: No
Slave_SQL_Running: Yes

解决办法:

(1)重启主库后找到主库的最后一条日志的数字

mysqlbinlog mysql-bin.000008 > 1.txt

tail -n 100000 1.txt > 2.txt

然后打开2.txt文件,跳到最后: 

 

# at 753870260

#080724 16:21:25 server id 2 end_log_pos 753870665 Query thread_id=185 exec_time=0 error_code=0 

 

找到数字为:753870260

(2)以下在从库上运行一次

CHANGE MASTER TO MASTER_HOST='主库连接IP',
MASTER_USER='masteruser',
MASTER_PASSWORD='masterpass',
MASTER_LOG_FILE='mysql-bin.000008',
MASTER_LOG_POS=753870260; 
 
(3)然后不断的运行以下,直到两个都是“YES” 
slave stop;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
slave start;
show slave status\G
 
(4)见到以下状态,OK了!
Slave_IO_Running: No
Slave_SQL_Running: Yes

 

 

标签: 主从同步出错 MySQL5 主库断电

MySQL5主从同步出错处理

今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Errno: 1062
....
Seconds_Behind_Master:NULL
原因:
1.程序可能在slave上进行了写操作 
2.也可能是slave机器重起后,事务回滚造成的.

解决办法I:
1.首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值。


mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000020 | 135617781 | | |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)

3.到slave服务器上执行手动同步:

mysql> change master to 
> master_host='master_ip',
> master_user='user', 
> master_password='pwd', 
> master_port=3307, 
> master_log_file='mysql-bin.000020', 
> master_log_pos=135617781;
1 row in set (0.00 sec)
mysql> slave start;
1 row in set (0.00 sec)

再次查看slave状态发现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Seconds_Behind_Master: 0
解决办法II:
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;

/tmp1/mysql5/bin/mysql -uksu -h172.16.200.99 -P4307 -p

分享到:
评论

相关推荐

    Mysql中类型转换

    通过对MySQL中类型转换功能的学习,我们可以更加灵活地处理各种数据类型,提高查询效率并减少潜在的错误。无论是将字符串转换为日期,还是将日期格式化为字符串,这些强大的转换工具都能帮助我们更好地管理数据库中...

    mysql函数,将数字金额转成人民币大写

    在给定的文件列表中,`function_to_ch.sql`可能包含了实现转换的SQL函数代码,而`B站Go源码.zip`似乎与MySQL无关,可能是其他项目或学习资料,如Go语言编程的示例代码。 综上所述,要在MySQL中实现数字金额到...

    mysql数据库转换成sql server

    - **持续支持**:迁移后,数据库管理员需要学习SQL Server的管理和维护,以便提供长期支持。 - **版本升级**:考虑到SQL Server的版本更新,需要了解新版本带来的变化和改进。 在进行MySQL到SQL Server的转换时,...

    PHP, MySQL, and JavaScript 学习手册

    ### PHP、MySQL与JavaScript学习手册知识点详述 #### 标题与描述中的核心知识点解析 **标题:“PHP, MySQL, and JavaScript 学习手册”** 该手册旨在为非程序员提供一个简单、精炼的指南,帮助他们快速掌握如何...

    mysql自己整理的学习文档

    这份学习文档涵盖了MySQL的基础知识和核心概念,对于初学者来说是一个很好的起点。 1. **DOS下的常用操作**:在Windows操作系统中,我们通常通过DOS命令行与MySQL交互。这些操作包括启动和关闭MySQL服务,登录MySQL...

    mysql学习资料电子书Mysql教程精选

    本资源“mysql学习资料电子书Mysql教程精选”提供了深入学习MySQL的基础和高级概念的重要参考资料,对于初学者和有经验的开发者来说都是极好的学习工具。 1. **MySQL基础** - 数据库概念:了解什么是数据库,以及...

    oracle scott 转成mysql 的表学习应用

    将Oracle中的Scott数据迁移到MySQL,可以帮助用户了解不同数据库系统之间的差异,并学习如何在MySQL环境中操作数据。 首先,我们需要了解Oracle的Scott schema中的主要表结构。`EMP`表包含了员工的基本信息,如员工...

    基于Mysql的表转HBase小Demo

    总之,“基于Mysql的表转HBase小Demo”是一个很好的学习资源,它演示了如何在Java环境中实现数据从关系型数据库到NoSQL数据库的迁移。对于初学者来说,这是一个理解数据模型转换和熟悉HBase操作的好机会,同时也可...

    Mysql脚本配合博客学习.rar

    这个名为“Mysql脚本配合博客学习.rar”的压缩包文件显然是为了帮助学习者通过实际操作来提升对MySQL数据库的理解。它包含了关于数据库表、视图、函数以及存储过程的脚本,这些都是MySQL数据库管理中的核心概念。 ...

    MySQL转MSSQL

    标题中的“MySQL转MSSQL”指的是将数据从MySQL数据库迁移至Microsoft SQL Server(MSSQL)的过程。这个过程在数据库管理中很常见,可能是为了业务需求、性能优化或者使用不同平台的应用程序。以下是关于这一转换过程...

    使用kettle转换oracle与 mysql的表数据

    这些文档是学习和应用Kettle进行数据转换的重要参考资料,务必仔细阅读并实践其中的案例。 总之,Kettle作为一个强大的ETL工具,使得Oracle到MySQL的数据转换变得直观且高效。通过理解其工作原理和配置方法,你可以...

    6天带你玩转mysql课程配套学习资料.zip

    学习配置MySQL服务器,设置用户权限,以及管理MySQL服务的启动和停止。 2. **SQL语言基础**:学习SQL语言的基本语法,包括创建数据库、数据表,插入、更新和删除数据,以及查询操作。理解SELECT语句的各种使用方式...

    北大青鸟mysql数据库学习资料 案例MySchool数据库代码等

    北大青鸟作为知名的IT教育机构,提供了一系列的MySQL学习资料,旨在帮助学员深入理解和掌握数据库管理技术。"MySchool"数据库案例是这些资料中的一个重要部分,它是一个实际的数据库应用实例,适合初学者实践操作和...

    高性能mysql学习笔记

    ### 高性能MySQL学习笔记:查询性能优化与实践 #### 一、查询性能低下的原因与分析步骤 查询性能低下通常归因于访问了过多的数据。优化查询性能的关键在于识别并减少不必要的数据访问。具体可以通过以下两个步骤...

    PHP+MySQL学习文档

    这份"PHP+MySQL学习文档"将引导你逐步掌握这两个技术的基础知识。 首先,我们来了解一下PHP。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,主要用在Web开发中,用于生成动态网页内容。在安装PHP前...

    6天玩转mysql

    6天玩转mysql,非常适合初级者学习的资料,欢迎下载,谢谢。

    易语言mysql学习例程

    本压缩包文件“易语言mysql学习例程”提供了一套完整的源码,旨在帮助初学者掌握如何在易语言中与MySQL数据库进行交互。 MySQL是一个广泛使用的开源关系型数据库管理系统,它具有高性能、高可靠性以及易于使用的...

    国产数据库kingbase数据迁移到mysql、DB2

    对于学习数据库迁移技术和提升数据库管理技能而言,这是一个宝贵的资源。 总之,数据库迁移是一项技术性强且需要谨慎操作的任务,需要考虑数据的一致性、完整性以及迁移后的兼容性问题。通过使用定制工具或现成的...

    Mongo数据库转MySQL代码

    通过阅读和理解代码,你可以深入学习如何进行数据库间的数据迁移,以及Java处理不同数据库API的方式。 总之,从MongoDB到MySQL的数据迁移是一项涉及多种技术的任务,包括数据库连接、数据类型转换、SQL语句构造等。...

    MySQL基础学习中所使用的数据库文件

    在MySQL的基础学习中,我们经常会接触到各种数据库文件,这些文件是数据库中的核心组成部分,它们存储着数据和数据库的结构信息。下面将详细讨论标题和描述中涉及的知识点,并围绕提供的压缩包子文件进行解析。 1. ...

Global site tag (gtag.js) - Google Analytics