mysql数据库

[MySQL]快速解决\"is marked as crashed and should be repaired\"故障

允我心安 提交于 2020-02-28 10:35:26
具体报错如下: Table '.\Tablename\posts' is marked as crashed and should be repaired 提示说论坛的帖子表posts被标记有问题,需要修复。我记得以前也出现过类似的问题,但是只要点击Phpmyadmin上的repair按纽就自动修复了,但是这次很绝,什么都没有.于是赶快上网查找原因。最终将问题解决。解决方法如下: 找到mysql的安装目录的bin/myisamchk工具,在命令行中输入: myisamchk -c -r ../data/tablename/posts.MYI 然后myisamchk 工具会帮助你恢复数据表的索引。好象也不用重新启动mysql,问题就解决了。 问题分析: 1、 错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。 还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致 MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。 2、问题解决办法。 当你试图修复一个被破坏的表的问题时,有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次-

[MySQL]快速解决\"is marked as crashed and should be repaired\"故障

霸气de小男生 提交于 2020-02-28 10:34:00
具体报错如下: Table '.\Tablename\posts' is marked as crashed and should be repaired 提示说论坛的帖子表posts被标记有问题,需要修复。我记得以前也出现过类似的问题,但是只要点击Phpmyadmin上的repair按纽就自动修复了,但是这次很绝,什么都没有.于是赶快上网查找原因。最终将问题解决。解决方法如下: 找到mysql的安装目录的bin/myisamchk工具,在命令行中输入: myisamchk -c -r ../data/tablename/posts.MYI 然后myisamchk 工具会帮助你恢复数据表的索引。好象也不用重新启动mysql,问题就解决了。 问题分析: 1、 错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。 还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致 MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。 2、问题解决办法。 当你试图修复一个被破坏的表的问题时,有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次-

Linux Centos 7 使用yum安装 mysql5.7 (实验成功)

爷,独闯天下 提交于 2020-02-28 06:05:30
第一部分:安装Mysql5.7 1.下载YUM库 shell > wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm 2.安装YUM库 shell > yum localinstall -y mysql57-community-release-el7-7.noarch.rpm 3.安装数据库 shell > yum install -y mysql-community-server 4.启动MySQL服务 shell > systemctl start mysqld.service 5.默认空密码 shell > mysql -uroot -p 6.重置root密码后重启mysql服务 shell > update mysql.user set authentication_string=password("yourpassword") where user="root" and Host="localhost"; shell > flush privileges; shell > quit; shell > systemctl restart mysqld; 如果手贱或者不知道啥原因出现如下问题: ERROR 1045 (28000): Access denied for user

mysql_技能10_索引优化准备

旧城冷巷雨未停 提交于 2020-02-28 04:55:21
show [session|global] status 提供服务器状态信息。 show [session|global] status 可以根据需要加上参数“session”或者“global”来显示 session级(当前连接)的计结果和 global 级(自数据库上次启动至今)的统计结果。如果不写,默认使用参数是“session”。 下面的命令显示了当前 session 中所有统计参数的值: show status like ‘Com_______’; show status like ‘Innodb_rows_%’; 定位: 慢查询日志 : 通过慢查询日志定位那些执行效率较低的 SQL 语句,用–log-slow-queries[=filename]选项启动时,mysqld 写一个包含所有执行时间超过 longquery_time 秒的 SQL 语句的日志文件。具体可以查看本书第 26 章中日志管理的相关部分。 show processlist : 慢查询日志在查询结束以后才纪录,所以在应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题,可以使用show processlist命令查看当前MySQL在进行的线程,包括线程的状态、是否锁表等,可以实时地查看 SQL 的执行情况,同时对一些锁表操作进行优化。 explain分析执行计划: type性能由好到差的连接类型为

mysql事务详解

ぃ、小莉子 提交于 2020-02-28 03:31:55
事务的四大特性 1.原子性(Atomicity) 要么全做,要么全不做的规则称之为原子性。比如说转账,要么成功要么失败. 2.一致性(Consistency) 如果数据库中的数据全部符合现实世界中的约束(all defined rules),我们说这些数据就是一致的,或者说符合一致性的。比如身份证号不能重复 更多的一致性需求需要靠写业务代码的程序员自己保证。比如说金额不能小于0 , 性别只能是男或女. 3.隔离性(Isolation) 对某些数据库操作来说,不仅要保证这些操作以原子性的方式执行完成,而且要保证其它的状态转换不会影响到本次状态转换,这个规则被称之为隔离性。 4.持久性(Durability) 转换的结果将永久的保留,这个规则被称为持久性. 也就意味味着该转换对应的数据库操作所修改的数据都应该在磁盘上保留下来 MySQL中事务的语法 只有InnoDB和NDB存储引擎支持事务.如果表不支持事务,那么将无法回滚. 不显式的开启事务,那么每一条sql都是一个独立的事务 开启一个事务 BEGIN; START TRANSACTION; START TRANSACTION语句后边跟随几个修饰符,就是它们几个: READ WRITE:标识当前事务是一个只读事务 READ WRITE:标识当前事务是一个读写事务 WITH CONSISTENT SNAPSHOT:启动一致性读 提交事务

彻底删除MySQL

家住魔仙堡 提交于 2020-02-28 01:26:57
安装mysql数据库。最后一步APPLY SECURITY SETTINGS总是失败。感觉很郁闷。上网找了教程,有前四步,一一做了,发现还是不对。最近突然发现在环境变量那边的路径还没有卸载干净。可能我找的教程是win7的,系统没有将MySQL的路径自动配置上去,需要人工配置。所以记录一下,安慰下我那么多次的卸载安装。 正确的安装完成界面应该是这样的。但是我以前安装过,没有卸干净。就容易造成第四步APPLY SECURITY SETTINGS失败。如果有人是第二步失败,那可能是安装路径有问题:比如有中文,有空格等原因。建议换个安装目录。 好了,现在来说说如何正确的卸载MySQL。 以win10的系统为例。 第一步:右击我的电脑 → 选择管理 → 选择服务和应用 → 双击服务 → 停止MySQL后台服务。 第二步:快捷键win + X 选择程序和功能F (或者找到“控制面板”→ "程序和功能"),卸载MySQL程序。 第三步:删除MySQL安装目录下的所有文件。crtl+A → crtl+d 第四步:打开我的电脑 → 查看 → 勾上隐藏的项目。接着进入C盘 → 打开ParogramData → 删除MySQL。 ( 删除c盘ProgramData隐藏目录中关于MySQL的目录。) 第五步:右击我的电脑 → 选择属性 → 选择高级系统设置 → 选择环境变量 → 双击系统环境变量中的

存储过程/函数列表Mysql命令行

喜欢而已 提交于 2020-02-28 00:59:26
如何在mysql命令行(如 show tables; 查看存储过程或存储函数的列表 show tables; 或 show databases; 命令。 #1楼 以名称方式查看程序 select name from mysql.proc 下面的代码用于列出所有过程,下面的代码给出与显示过程状态相同的结果 select * from mysql.proc #2楼 要只显示您的: SELECT db, type, specific_name, param_list, returns FROM mysql.proc WHERE definer LIKE CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%')); #3楼 选择: SELECT * FROM INFORMATION_SCHEMA.ROUTINES #4楼 show procedure status; 使用此命令,您可以查看数据库中的所有过程 #5楼 Praveenkumar_V的帖子的一个变体: SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE'; SELECT `name` FROM mysql.proc WHERE db = 'dbname'

猴子都能懂的数据库避坑指南

你离开我真会死。 提交于 2020-02-27 23:41:42
前言 工作的这些年发现一个比较奇怪的现象就是身边无论是工作十多年的老兵,还是初级刚入行的程序员,在高谈阔论技术和趋势的时候都是人工智能,大数据,区块链,各种框架,语言,算法,AI,BI,CI,DI…… 等等,倒是发现很少有人关注数据库,不知道是因为数据库感觉太低端还是太低调,总是不容易被人提起 技术就是这样,不太关注的地方就不会重视,越是不被重视的地方,掉进坑里的概率就会越大,所以就在这里给大家简单聊聊在使用数据库过程中有哪些防掉坑指南,也可以对刚入行的小朋友有一个提醒的作用,万丈高楼平地起,一定要先打好基础再去考虑上层的建筑,不要舍本逐末 本章主要分以下四个小节(预计读完 5 分钟左右): 数据库为什么重要 数据库有哪些使用技巧 数据库有哪些容易掉进去的坑? 深入学习数据库的建议 数据库为什么重要 很多人在开发过程中不太关注数据库,对于表结构的设计也没什么讲究大多属于“能用就行”,但是根据作者将近十年的开发经验来看的话,只要你是从事 Web 相关领域开发你就无法避免不和数据库打交道, 在Web开发中大多功能操作本质上都是对数据库进行操作 ,不管你用是 Pythod,Java,Ruby 等语言进行 Web 开发,你其实都是在面向数据库进行编程,很多 Web 框架作者为了避免程序员接触数据库的相关知识甚至还封装了一层 ORM (Object Relational Mapping

[Database] MAC MySQL中文乱码问题

限于喜欢 提交于 2020-02-27 22:49:47
1 确保数据库编码设置, 可修改my.cnf mysql> show variables like '%character%'; +--------------------------+-----------------------------------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | +--------------------------+-----------------------------------------------------------+ 2

服务器CentOS7上安装MySql

可紊 提交于 2020-02-27 19:05:45
1.确保服务器系统处于最新状态 [root@localhost ~]# yum -y update 如果显示以下内容说明已经更新完成 Replaced: grub2.x86_64 1:2.02-0.64.el7.centos grub2-tools.x86_64 1:2.02-0.64.el7.centos Complete! 2.重启服务器 [root@localhost ~]# reboot 3.首先检查是否已经安装,如果已经安装先删除以前版本,以免安装不成功 [root@localhost ~]# php -v 或 [root@localhost ~]# rpm -qa | grep mysql 或 [root@localhost ~]# yum list installed | grep mysql 如果显示以下内容说明没有安装服务 -bash: gerp: command not found 如果有,就删除 4.下载MySql安装包 [root@localhost ~]# rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 或 [root@localhost ~]# rpm -ivh http://dev.mysql.com/get/mysql-community