mysql数据库

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

こ雲淡風輕ζ 提交于 2020-01-16 00:57:05
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes) 这个错误是由密码错误引起,解决的办法自然就是重置密码。 MySQL的默认用户名和密码的什么? 答: 用户名为root, 密码为空。 user=“root”;passwor=“”; 接下来就是用sql来修改root的密码 进入到终端当中,敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中 mysql> update user set password="你的新密码" where user="root"; mysql> flush privileges; mysql> quit root账户就已经重置成新的密码了。 来源: CSDN 作者: tony2278 链接: https://blog.csdn.net/tony2278/article/details/103989274

MySQL 8.0发布,你熟悉又陌生的Hash Join?

大城市里の小女人 提交于 2020-01-16 00:55:45
昨天下午在查资料的时候,无意间点到了MySQL的官网。发现MySQL发布了一个新版本。 Mysql这个数据库有没有人不熟悉?不用的?没有吧。 2019年末,MySQL发布的8.0.18 GA版本,带来了一些新特性和增强功能。其中最引人注目的莫过于多表连接查询 支持Hash Join 。 还是老样子,建议英文好的同学直接看这里: https://dev.mysql.com/doc/refman/8.0/en/hash-joins.html 关于MySQL Hash Join的特性介绍: 1、对于大数据量的表关联,HJ(Hash Join)速度将明显比NL(Nested Loop)快很多 2、在内存中处理 3、必要情况下,会使用磁盘空间 4、用于内连接,可扩展到外连接、半连接和反连接 5、替换查询计划中的Block Nested Loop 6、可以通过HINT强制SQL走HJ或者NL 有的同学可能已经懵逼了。什么是Hash Join?什么是NL?HINT又是什么鬼? 第一部分先做一个简单的科普 首先,在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。多表之间的连接有三种方式:Nested Loops,Hash Join 和 Sort Merge Join。 肯定有人说,阿里巴巴规范上都说了,并发情况下不能用多表查询。你有多大并发

DataBase - MySQL安全模式

人盡茶涼 提交于 2020-01-16 00:52:16
MySQL中sql_safe_updates安全模式 概念与场景 常见场景 安全模式Sql语句 MySQL中sql_safe_updates安全模式 概念与场景 不论新手还是老手在使用mysql中一般都会有批量操作数据的需求,假设在安全模式关闭的情况下,我们update和delete没有加入where条件,那么我们就会失手将全部数据修改或删除(这个后果不亚于删库跑路了~),故为了防止这种情况,在使用数据库时通常都会加入安全模式 常见场景 在update操作中 当where条件中列(column)没有索引可用且无limit限制时会拒绝更新 where条件为常量且无limit限制时会拒绝更新 在delete操作中 where条件为常量 where条件为空 where条件中 列(column)没有索引可用且无limit限制时拒绝删除 安全模式Sql语句 查看当前安全模式状态 show variables like 'sql_safe_updates' ; MySQL输出效果 Value : ON 开启 Value :OFF 关闭 设置安全模式状态 打开安全模式状态 set sql_safe_updates = 1 ; 关闭安全模式状态 set sql_safe_updates = 0 ; 来源: CSDN 作者: Modu_MrLiu 链接: https://blog.csdn.net

mysql 配置内存

天大地大妈咪最大 提交于 2020-01-16 00:38:55
配置mysql 正确使用的内存量对于高性能是至关重要的,需要进行定制需求来定制内存的使用。 mysql内存消耗可以分为两类:可控制内存和不可控制内存。 无法控制 mysql 服务器运行 、 查询解析 、 以及内部管理所消耗的内存, 但是为特定目的而使用的内存有很多参数可以进行控制,比如关联使用join buffer、排序使用sort buffer等。 可控制 用好mysql可控制的内存则需要对 配置的含义 非常清楚 下面的步骤是来配置内存的 1、确定可以使用的内存上限 2、确定每个连接mysql 需要多少内存,例如排序缓冲和临时表 3、确认操作系统需要多少内存才够用。包括同一台机器上其他程序所使用的内存,比如定时任务等…… 4、把剩下的内存交给mysql 缓存,例如innodb的缓冲池,这样做很有意义 每个mysql 连接需要的内存 mysql保持一个连接(线程)只需要少量的内存,它还要求一个基本的内存来执行任何给定的查询。需要在高峰期大量的查询时预留好足够的内存,否则查询的执行可能会因为缺乏内存而执行效率不佳 或者执行失败。 知道mysql 在高峰期消耗多少内存是非常有用的,但是一些习惯的用法可能会导致意外的消耗了大量的内存,这对内存的使用量的预测变得比较困难,例如绑定变量和innodb数据字典。 当预测内存峰值消耗时,没必要假设一个最坏的情况,例如配置mysql

MySql安装

独自空忆成欢 提交于 2020-01-16 00:02:52
1.1045:Access denied for user root@localhost错误的解决——权限问题 编辑mysql配置文件my.ini(在mysql的安装目录下,我的在D:\Program Files\MySQL\MySQL Server 5.0\my.ini),在[mysqld]这个条目下加入 skip-grant-tables 保存退出后重启mysql 1.点击“开始”->“运行”(快捷键Win+R)。 2.停止:输入 net stop mysql 3.启动:输入 net start mysql 这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。 继续按下面的流程走: 1.进入mysql数据库: mysql> use mysql; Database changed 2.给root用户设置新密码: mysql> update user set password=password("新密码") where user="root"; 在mysql5.7以后的版本中更改为: Mysql>update mysql.user set authentication_string=password(

mysql5.7 安装步骤

∥☆過路亽.° 提交于 2020-01-15 22:55:36
MySQL 5.7以上版本的配置和以前有所不同,在这里与大家分享一下经验。 MySQL 5.7及以上版本压缩包 windows 7及更高版本 方法/步骤 解压缩 将下载到的文件解压缩到自己喜欢的位置,例如我自己的位置是E:\dev\mysql-5.7.13-winx64 添加环境变量 右键计算机->属性->高级系统设置->环境变量; 新加 MYSQL_HOME=E:\dev\mysql-5.7.13-winx64 修改 path 加上 %MYSQL_HOME%\bin; 初始化数据库 以管理员自身份打开CMD执行以下命令(注意必须以管理员身份打开,否则报错) mysqld --initialize --user=mysql --console 在控制台消息尾部会出现随机生成的初始密码,记下来 将MySQL添加到系统服务 以管理员自身份打开CMD执行以下命令(注意必须以管理员身份打开,否则会出现 install/remove xxx) mysqld --install MySQL net start mysql (个人经验:如果不想安装服务,直接mysqld --console启动即可,想删除服务可以用mysqld --remove) 安装成功,则显示“服务已启动成功” 启动MySQL并修改密码 在CMD控制台里执行命令 mysql -u root -p 回车执行后

mysql乐观锁总结和实践

百般思念 提交于 2020-01-15 22:26:15
转载于: https://www.iteye.com/blog/chenzhou123520-1863407 上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍: 乐观锁介绍: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们如何实现乐观锁呢,一般来说有以下2种方式: 1.使用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 “version” 字段来实现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加一。当我们提交更新的时候,判断数据库表对应记录的当前版本信息与第一次取出来的version值进行比对

golang注册数据库提示“注册db'default',网络'localhost:3306'的默认地址未知 必须有一个名为'default'的注册数据库别名`”

房东的猫 提交于 2020-01-15 20:52:27
register db ` default ` , default addr for network 'localhost:3306' unknown must have one register DataBase alias named ` default ` 代码: orm . RegisterDataBase ( "default" , "mysql" , "root:113655@localhost:3306/chatapp_golang?charset=utf8" ) 改为: orm . RegisterDataBase ( "default" , "mysql" , "root:113655@tcp(localhost:3306)/chatapp_golang?charset=utf8" ) 在上面的示例中添加了网络类型tcp。 来源: CSDN 作者: microcosm1994 链接: https://blog.csdn.net/qq_39081974/article/details/103993677

mysql配置文件my.ini

喜欢而已 提交于 2020-01-15 18:14:05
[mysqld] character-set-server=utf8 #绑定IPv4和3306端口 bind-address = 0.0.0.0 port = 3306 sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" default_storage_engine=innodb innodb_buffer_pool_size=1000M innodb_log_file_size=50M # 设置mysql的安装目录 basedir=F:\mysql # 设置mysql数据库的数据的存放目录 datadir=F:\mysql\data # 允许最大连接数 max_connections=20 # skip_grant_tables [mysql] default-character-set=utf8 [mysql.server] default-character-set=utf8 [mysql_safe] default-character-set=utf8 [client] port = 3306 plugin-dir=F:\mysql\lib\plugin 来源: CSDN 作者: 要好好学习的跳跳 链接: https://blog.csdn.net/Gripex90c/article/details/103989860

Java备份MySQL

ε祈祈猫儿з 提交于 2020-01-15 17:36:41
1 概述 使用java备份mysql数据库,主要是使用mysqldump与Runtime().getRuntime().exec(). 2 创建备份路径 如果没有备份的存储路径首先创建路径. Path path = Paths.get(xxxx); try { Files.createDirectories(path); } catch(IOException e) { //xxxx } 3 执行命令 如果是直接用shell执行的话: mysqldump -u user_name -p database_name > xxxx\database_name.sql 使用-u与-p分别指定用户与密码,最后重定向到文件. 但是,要注意再java中用exec()时,千万千万不能使用-p选项,-p是交互式输入密码的,使用了-p的话导出的文件是0KB的,需要使用 --password 代替. String command = "mysqldump -u user --password=xxxx > xxxx\\xxxx.sql" 要注意一下路径问题,另外,在windows下,需要使用cmd: String command = "cmd /c mysqldump -u user --password=xxxx > xxxx\\xxxx.sql" 这需要把 %MYSQL_HOME%/bin