mysql数据库

Ubuntu下远程访问MySQL数据库

微笑、不失礼 提交于 2020-03-10 20:32:05
出处: http://www.2cto.com/database/201111/111309.html MySQL远程访问的命令 格式:mysql -h 主机地址 -u 用户名 -p 用户密码 示例: root@smt:~# mysql -h 10.0.1.191 -u root -p 123 ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.1.191' (111) 出现错误!无法连接远程的MySQL 数据库 MySQL远程连接数据库,有两种方式: mysql .sock和TCP/IP,前者比后者连接访问速度更快,但仅限于同一台本机,详见 上述错误,是没有远程访问权限导致的 解决方法: 1 在目标服务器上(10.0.1.191),修改mysql的my.cnf文件: sudo vi /etc/mysql/my.cnf 2 注释掉bind-address,屏蔽其只对本地监听 #bind-address = 127.0.0.1 3 重启MySQL服务,使其修改的配置生效 sudo /etc/init.c/mysql restart 配置完了服务器的数据访问权限,此时还是不能远程访问MySQL数据库 这是因为现在还没有对服务器上的数据库或表赋予访问权限(GRANT) 4 在服务器上,登录MySQL数据库 mysql -u

mysql 中 union和union all 的区别

笑着哭i 提交于 2020-03-10 20:31:14
1.union和union all 都是实现数据库连表查询的. 但都需具备2张表的的列, 字段都一样. 2.union 实现连表查询的, 是不允许重复的, 重复值会被覆盖掉. 例如: 表一: person1 ID name age 1 zhangsan 23 – – – 2 lisi 24 – – – 3 wangwu 25 表二: person2 ID name age 1 zhangsan 23 – – – 2 zhouyi 21 – – – 3 zhouer 22 sql语句: SELECT name FROM person1 union SELECT name FROM person2; 查询结果: name zhangsan – lisi – wangwu – zhouyi – zhouer 3.union all连表查询是可以重复的. sql语句: SELECT name FROM person1 union SELECT name FROM person2; 查询结果: name zhangsan – lisi – wangwu – zhangsan – zhouyi – zhouer 来源: CSDN 作者: weixin_45765705 链接: https://blog.csdn.net/weixin_45765705/article/details

MySQL常见问题

十年热恋 提交于 2020-03-10 20:20:02
1.UUID – UUID是通用唯一识别码的缩写,其目的是让分布式系统中的所有元素都能有唯一的便是信息,而不需要通过中央控制端来做辨识信息的指定。 – 三部分:时间戳生成的时间信息、主机的硬件时钟序列、主机的唯一机器识别号 SELECT UUID(); – 为了避免每个MySQL各自生成的主键产生重复 – UUID主键好处: – 1.降低了全局节点的压力,是的主键生成速度快 – 2.全局唯一 – 3.跨服务器合并数据很方面 – 缺点 : – 1.占16个字节,比INT(4),BIGINT(8)占空间 – 2.是字符串类型,查询速度慢 – 3.不是顺序增长的字符串,作为主键,数据写入IO随机性很大 – 主键自动增长的优点 – 1.占空间小;2.检索速度快;3.IO写入连续性好 2.在线修改表结构 – ALTER TABLE缺点: – 1.修改表的时候是锁表的,影响写入操作 – 2.如果修改表结构失败,必须还原表结构,耗时更长 – 3.大数据表记录多,修改表结构锁表时间长 – 可以用PerconaTookit工具包 – 链接 ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY

Ubuntu下远程访问MySQL数据库

江枫思渺然 提交于 2020-03-10 18:17:07
MySQL远程访问的命令 格式: mysql -h主机地址 -u用户名 -p用户密码 jack@jack:~$ mysql -h192.168.5.154 -usaledata -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 587 Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. 示例: yanggang@host:~$ mysql -h192.168.1.11 -uroot -p123456 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.11' (111) 出现错误

mysql锁和事务

孤街浪徒 提交于 2020-03-10 14:55:07
1,事务具有acid特性 2,事务的隔离级别   事务的隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。MySQL事务包含4个隔离级别(从低到高)   1)read uncommitted(dirty read)也称读未提交。事务可以看到其他事务更改了但没有提交的数据,即存在脏读的情况。   2)read committed 也称读提交。事务可以看到在它执行的时候,其他事务已经提交的数据,已经被大部分数据库采用。允许不可重复读,但不允许脏读。   3)repeatable read 也称可重复读。同一个事务同一个查询请求多次执行,获得记录相同,但不能出现幻读。   4)serializable也称序列化,最高级别,解决了幻读。它将锁加在所有访问的数据上。   该锁把普通的select语句默认改成select 。。。lock in share mode。 即查询语句涉及到的数据加上共享锁,阻塞其他事务修改真实的数据。  如下命令查询当前事务的隔离级别 show variables like ‘%tx%’;  不建议更改innodb的事务隔离级别。一些传统的数据库,如oracle使用了read-commited的隔离级别。但是大部分场景下,MySQL的用户都是由默认的repeatable read,此隔离级别下使用的验证比其他的隔离级别完善的多

mysql学习笔记3

*爱你&永不变心* 提交于 2020-03-10 12:55:53
美妙的数据库训练和冒险开始啦,冲鸭!2333! time order: 利用sql语句查询try库中的student,c,sc: 学生表信息如下: 课程表信息如下: 学习表信息如下: 1.两个表的 笛卡尔积运算 1 select student.*,sc.* from student,sc;/*查询每个学生及其选修课程的情况,做笛卡尔积*/ 2.两个表的 等值连接 3. 自然连接 4.复杂的连接查询 (1) /*查询选修2号课程且成绩在95分以上的学生学号,姓名及成绩*/ select student.sno,sname,grade from student,sc where student.sno=sc.sno and sc.cno='2' and sc.grade>95; (2) 一上来就出现了一个bug2333: /*查询选修了数据库课程的学生的姓名和成绩*/ select sname,grade from student,sc,c where student.sno=sc.sno and sc.cno=c.cno and cname='数据库';    实现了多张表的 连接查询! (3) 先写一个小实验: 关于group by子句的: 进阶版: 来源: https://www.cnblogs.com/dragondragon/p/12454950.html

负载均衡haproxy+keepalived、lvs+keepalived后端php+nginx框架

↘锁芯ラ 提交于 2020-03-10 12:36:55
101、102机器 haproxy设置 1. 解压文件并进入解压文件夹 tar xvf haproxy-1.9.8.tar.gz cd haproxy-1.9.8 2. 编译安装haproxy,编译参数 make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy 4. 拷贝二进制执行文件入PATH路径 cp haproxy /usr/sbin/ 5. 修改systemctl启动文件 vim /usr/lib/systemd/system/haproxy.service [Unit] Description=HAProxy Load Banlancer After=syslog.target network.target [Service] ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run

Ubuntu下远程访问MySQL数据库

孤街浪徒 提交于 2020-03-10 11:48:56
MySQL远程访问的命令 格式: mysql -h主机地址 -u用户名 -p用户密码 示例: yanggang@host:~$ mysql -h192.168.1.11 -uroot -p123456 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.11' (111) 出现错误!无法连接远程的MySQL数据库 MySQL远程连接数据库,有两种方式: mysql.sock和TCP/IP,前者比后者连接访问速度更快,但仅限于同一台本机, 详见 上述错误,是没有远程访问权限导致的 解决方法: 1 在目标服务器上( 192.168.1.11 ),修改mysql的my.cnf文件: sudo vi /etc/mysql/my.cnf 2 注释掉bind-address,屏蔽其只对本地监听 #bind-address = 127.0.0.1 3 启动MySQL服务,使其修改的配置生效, 详见 sudo restart mysql 配置完了服务器的数据访问权限,此时还是不能远程访问MySQL数据库 这是因为现在还没有对服务器上的数据库或表赋予访问权限(GRANT) 4 在服务器上,登录MySQL数据库 mysql -u root -p123456 5 对数据库top800赋予权限 grant all

mysql 相关记录

风格不统一 提交于 2020-03-10 11:29:12
1、查看编译参数 head -30 mysql/bin/mysqlbug 2、数据库修复 mysqlcheck --auto-repair --databases data_platform --user=root --password 场景:show tables; 有表存在,但是去用不了,修复之后表确实不存在了,show不出来了,之前mysql被我kill过。 3、数据库中文乱码 网上讲了很多情况和方法,总结起来三点: 1、数据库本身的编码设置 用 show variables like "%character% 可以看到,各个编码要尽量保持一致 [mysqld] character_set_server=utf8 #设置mysql server的编码,这样新建的库默认就是utf8编码了 2、php链接时候的设置 要query("set names utf8")一下 3、插入数据的时候编码要正确 我就被这个问题坑惨了,用sql脚本导入了一批数据,发现取出后怎么设置都是乱码,原因就是入库时没设置编码。 要在开头加一句 set names utf8. 4、授权(all) grant all privileges on *.* to root@"%" identified by 'root' with grant option; 5、MySQL数据导出与导入 导出

MySQL的主从复制

为君一笑 提交于 2020-03-10 10:54:11
1.什么是主从复制 MySQL 主从复制是其最重要的功能之⼀. 主从复制是指⼀台服务器充当主数据库服务器, 另⼀台或多台服务器充当从数据库服务器, 主服务器中的数据⾃动复制到从服务器之中. 对于多级复制, 数据库服务器即可充当主机, 也可充当从机. MySQL主从复制的基础是主服务器对数据库修改记录⼆进制⽇志, 从服务器通过主服务器的⼆进制⽇志⾃动执⾏更新. 2.主从复制的类型 基于语句的复制 : 主服务器上⾯执⾏的语句在从服务器上⾯再执⾏⼀遍. 存在的问题 : 时间上可能不完全同步造成偏差, 执⾏语句的⽤户也可能是不同⼀个⽤户. 基于⾏的复制: 把主服务器上⾯改编后的内容直接复制过去, ⽽不关⼼到底改变该内容是由哪条语句引发的. 存在的问题 : ⽐如⼀个⼯资表中有⼀万个⽤户, 我们把每个⽤户的⼯资+1000, 那么基于⾏的复制则要复制⼀万⾏的内容, 由此造成的开销⽐较⼤, ⽽基于语句的复制仅仅⼀条语句就可以了. 混合类型的复制 : MySQL 默认使⽤基于语句的复制, 当基于语句的复制会引发问题的时候就会使⽤基于⾏的复制, MySQL会⾃动进⾏选择. 在MySQL主从复制架构中, 读操作可以在所有的服务器上⾯进⾏, ⽽写操作只能在主服务器上⾯进⾏. 主从复制架构虽然给读操作提供了扩展,可如果写操作也⽐较多的话(多台从服务器还要从主服务器上⾯同步数据),