mysql创建数据库

MYSQL主从配置

风流意气都作罢 提交于 2020-03-02 09:45:34
MYSQL介绍,配置MYSQL主 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。 主从过程大致有3个步骤 1)主将更改操作记录到binlog里 2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog(中继日志)里 3)从根据relaylog里面的sql语句按顺序执行 主上有一个log dump线程,用来和从的I/O线程传递binlog 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地 主从配置 - 主上操作 安装mysql 修改my.cnf,增加server-id=130和log_bin=aminglinux1 修改完配置文件后,启动或者重启mysqld服务 把mysql库备份并恢复成aming库,作为测试数据 mysqldump -uroot -p123 mysql > /tmp/mysql.sql mysql -uroot -e “create database aming” mysql -uroot -plinbs123 aming < /tmp/mysql.sql 创建用作同步数据的用户

linux环境下安装mysql

会有一股神秘感。 提交于 2020-03-02 07:41:21
Linux下安装mysql Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。为了以后每次安装的时候不要再从网络上找各种安装教程,特此进行自己的安装过程记录,以便以后再次安装时候重复走弯路,绝大多数安装还是按照网上教程操作的。 安装版本为: mysql-5.7.24 安装步骤: 一、 安装前准备 1、检查电脑是否已经安装过mysql,执行命令 [root@localhost /]# rpm -qa | grep mysql 从执行结果,可以看出我们已经安装了 mysql-libs-5.1.73-5.el6_6.x86_64 ,执行删除命令 [root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64 再次执行查询命令,查看是否删除 [root@localhost /]# rpm -qa | grep mysql 2、查询所有Mysql对应的文件夹 [root@localhost /]# whereis mysql mysql: /usr/bin/mysql /usr/include/mysql [root@localhost lib]# find /

mysql索引创建&查看&删除

家住魔仙堡 提交于 2020-03-02 07:38:04
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。 SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行。而可能的组合数目为1000×1000×1000(十亿),显然查询将会非常慢。 如果对每个表进行索引,就能极大地加速查询进程。利用索引的查询处理如下。 (1)从表t1中选择第一行,查看此行所包含的数据。 (2)使用表t2上的索引,直接定位t2中与t1的值匹配的行。类似,利用表t3上的索引,直接定位t3中与来自t1的值匹配的行。 (3)扫描表t1的下一行并重复前面的过程,直到遍历t1中所有的行。 在此情形下,仍然对表t1执行了一个完全扫描,但能够在表t2和t3上进行索引查找直接取出这些表中的行,比未用索引时要快一百万倍。 利用索引,MySQL加速了WHERE子句满足条件行的搜索,而在多表连接查询时

开发人员MySQL调优-实战篇2-让SQL使用索引详解

て烟熏妆下的殇ゞ 提交于 2020-03-02 07:34:12
建议先看看 开发人员MySQL调优-实战篇0 让执行的SQL使用索引 虽然DBA给我们建了很多索引,但没有经验的开发人员往往只看表结构,不太关注索引和如何利用索引提高SQL执行速度,下面罗列一些经验,让你写的SQL更加高效的利用索引 在做实验之前最好先想一想索引的数据结构与排序,以及索引工作的方式,才能更快的理解与记住这些点,否则在工作中遇到更复杂的情况,很可能就不会处理了 查询字段与某一个索引的结构完全一致,包括字段和顺序(完全匹配) create index idx_tv_v_user_u_a_g on tb_v_user(user_name,age,gendor); select * from tb_v_user where user_name = '1F7sJ' and age = 44 and gendor = 1; 查询条件与索引的列与顺序完全一致,执行计划扫描类型为ref。有兴趣的同学可以试试分别将user_name、age、gendor查询条件删除,看看执行计划是什么情况 不在列上做任何附加操作,比如加函数 select * from tb_v_user where left(user_name,5) = '1F7sJ' and age=44 and gendor = 1; 这里的SQL和上面的SQL执行结果是一模一样,写法上区别是在user

mysql_全文搜索+match against_已迁移

痞子三分冷 提交于 2020-03-02 06:26:15
一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行, 但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。 ------------------- 上面这句话 我是在网上看到的, 说得挺有道理的, mysql 本身提供了一种叫做全文搜索的技术吧, 不过这好像从后来的版本才有的, 比较旧的版本不支持,不过那是很早期的版本了, 现在大家使用的版本 应该都支持的。我现在使用 mysql6.0.4 来演示 全文搜索 比起 索引 我觉得更加全面, 索引只对某一个字段,然后在查询时候使用 like 配合。 全文搜索它可以设置多个字段进行搜索,可以说是比起 select .... like 高级吧。 好了, 既然 全文搜索 有这样的优点,下面我们来看看 是否真的如此。 下面提供的测试例子,是 mysql 手册上面的一个例子 CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT (title,body) ); 上面这是创建表的 mysql 语句, 其中最后一句 FULLTEXT (title,body) 就是为 title 和 body 创建一个 全文搜索,也就是 以后 方便搜索

mysql的sql_mode合理设置

泄露秘密 提交于 2020-03-02 02:55:20
mysql的sql_mode合理设置 sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题 sql_mode常用值如下: ONLY_FULL_GROUP_BY: 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中 NO_AUTO_VALUE_ON_ZERO: 该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。 STRICT_TRANS_TABLES: 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_ZERO_IN_DATE: 在严格模式下,不允许日期和月份为零 NO_ZERO_DATE: 设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。 ERROR_FOR_DIVISION_BY_ZERO: 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL NO_AUTO_CREATE

MySQL数据备份之mysqldump使用

邮差的信 提交于 2020-03-01 22:59:47
mysqldump常用于MySQL数据库逻辑备份。 1、 各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump 生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。 B. --opt 如果加上--opt参数则生成的dump文件中稍有不同: . 建表语句包含drop table if exists tableName . insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables C. 跨主机备份 使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库: mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb -C指示主机间的数据传输使用数据压缩 D. 只备份表结构 mysqldump --no-data --databases mydatabase1

MySQL5.7常用命令

允我心安 提交于 2020-03-01 21:12:29
1、连接mysql 连接本机 mysql -u root -p 连接远程主机 mysql -h 192.168.1.128 -u root -p 退出 exit; 2、修改密码 格式:alter user 用户名@主机地址 identified by '新密码'; 将root密码改为newroot alter user root@local identified by 'newroot'; 查看用户主机地址方法 use mysql; select user,host from user; 3、管理用户 可以管理mysql数据库中的user表来管理用户。 对于用户方面的管理,最好对用户授予不同的权限来管理用户。 增加tom用户,密码为tom,可在任何主机登录: create user 'tom'@localhost identified by 'tom'; create user 'tom1'@'192.168.1.%' identified by 'tom1'; 4、管理数据库 显示数据库 show databases; 注:数据库乱码问题 修改/etc/my.cnf配置文件:character-set-server=utf8 Java连接mysql的配置文件中: jdbc:mysql://localhost:3306/test?useUnicode=true

mysql主从复制(一主一从)

百般思念 提交于 2020-03-01 21:11:03
概念         MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。 安装mysql(一主一从)   192.168.138.187  主机   192.168.138.188  丛机   步骤一:检查虚拟机中是否有mysql环境,并将其卸载,命令如下 rpm -qa | grep -i mysql          如果有使用【rpm -e --nodeps MySQL-client-5.5.44-1.linux2.6.x86_64】命令将其删除;      使用【find / -name mysql】命令查看是否有相关的mysql文件夹            有的话,使用【rm -rf 文件名】删除相关文件或文件夹          步骤二:在【/usr/local】目录下使用命令【mkdir mysql

mysql读写分离

二次信任 提交于 2020-03-01 21:03:34
什么是读写分离   在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理select查询,让两者分工明确达到提高数据库整体读写性能。当然,主数据库另外一个功能就是负责将事务性查询导致的数据变更同步到从库中,也就是写操作。 读写分离的好处    1)分摊服务器压力,提高机器的系统处理效率      读写分离适用于读远比写的场景,如果有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能并不高,而主从只负责各自的写和读,极大程度的缓解X锁和S锁争用;     假如我们有1主3从,不考虑上述1中提到的从库单方面设置,假设现在1分钟内有10条写入,150条读取。那么,1主3从相当于共计40条写入,而读取总数没变,因此平均下来每台服务器承担了10条写入和50条读取(主库不承担读取操作)。因此,虽然写入没变,但是读取大大分摊了,提高了系统性能。另外,当读取被分摊后,又间接提高了写入的性能。所以,总体性能提高了,说白了就是拿机器和带宽换性能;    2)增加冗余,提高服务可用性,当一台数据库服务器宕机后可以调整另外一台从库以最快速度恢复服务 什么是 Mycat   是一个开源的分布式数据库系统,但是因为数据库一般都有自己的数据库引擎,而Mycat并没有属于自己的独有数据库引擎