分类 MySQL 下的文章

Table XXX is marked as crashed and should be repaired

今天在更新网站时突然分类下的数据全没了,而查看网站分类和留言都正常。登陆phpmyadmin点击数据库的ff_vod表时发现了错误提示:

[ERROR] #145: Table 'ff_vod' is marked as crashed and should be repaired

解决:
方法一:

  1. 登陆phpmyadmin
  2. 在左则选中相应的数据库
  3. 在右则勾选错误信息中的那个'ff_vod'表
  4. 下拉菜单选择”修复表”
    1.png

方法二:

# cd /usr/local/mysql/bin/
myisamchk -c -r /var/lib/mysql/2dan_sql/ff_vod.MYI 

然后myisamchk 工具会帮助你恢复数据表的索引。

Mysql查看和修改最大连接数

查看mysql连接数:

mysql> show variables like 'max_connections'; 

修改最大连接数:

方法一:

mysql> set GLOBAL max_connections=1000;

这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。

方法二:
编辑 /etc/my.cnf 文件:

max_connections=1000

然后重启MySQL即可。

Mysql缓存配置

从 MySQL4开始,出现了QueryCache查询缓存,如果使用了QueryCache,当接收到一个和之前同样的查询,服务器将会从缓存中检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间,非常有用。

有时候,虽然你开启了Mysql查询缓存,但是如果你设置的查询缓存大小为0,这和没有开启缓存没什么区别。所以必须正确的设置才能真正打开查询缓存这个功能。

下面我用 mysql6.0 为例演示最常用的查询缓存设置

一: query_cache_type 使用查询缓存的方式

一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON

mysql> select @@query_cache_type;
+——————–+
| @@query_cache_type |
+——————–+
| ON |
+——————–+

这样 当我们执行 select id,name from tableName; 这样就会用到查询缓存。

- 阅读剩余部分 -

MySQL数据库多服务器实时同步

严格说来,MySQL的数据库同步不能叫“同步”,因为它是单向的,只能从主服务器(master)到从服务器(slave),官方文档称之为“replication(复制)”。

通过同步,可以自动备份数据库到另一台机器;可以负载均衡,把写操作放在主服务器,读操作分散在从服务器;还可以在主服务器故障时,临时进行切换,故障排除后再切回来……当然,本文涉及到的,只是如何设置同步。

1 系统环境
1.1 主服务器
Centos6,MySQL 5.1.57。 MySQL使用MyISAM存储引擎,关闭InnoDB存储引擎。
若用到InnoDB的数据库,其同步设置会有差异,本文不涉及。

mysql -u root -p

登入数据库,然后执行

SHOW TABLE STATUS FROM database;

查看database数据库使用何种存储引擎。

- 阅读剩余部分 -

MySQL常用操作语句

1、登陆和进入指定数据库:

mysql -u root -p
mysql -h localhost -u root -p database_name

2、列出所有数据库:

show databases;

3、列出所有用户:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

4、修改指定用户的密码:

SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD('cleartext password');

- 阅读剩余部分 -