0

MySQL维护的常用命令大全

已有 50 阅读此文人 - - 建站 -

最近对出现经常迁移网站,做系统的维护,主要是针对MySQL的操作,在此将近期的常用的操作命令整理一下,以便备忘。

(1)迁移数据库(下面列出相关的操作命令)

登录数据库:

mysql -uroot -p密码

导出数据:

mysqldump -h localhost -u root -p密码 数据库 –ignore-table=忽略的表 >wj.sql

还原数据:

use 数据库;

source wj.sql;

(2)bin-log日志清理

自动清理方法1:(修改配置文件和在mysql内设置参数可无需重启服务)

vim my.cnf
expire_logs_days = 7 // 表示日志保留7天,超过7天则设置为过期的

# mysql -u root -p > show binary logs; > show variables like ‘%log%’; > set global expire_logs_days = 7;

手动清理方法2:(推荐)

如果没有主从复制,可以通过下面的命令重置数据库日志,清除之前的日志文件:

reset master;

但是如果存在复制关系,应当通过 PURGE 的名来清理 bin-log 日志,语法如下:

# mysql -u root -p
> purge master logs to ‘mysql-bin.010’; //清除mysql-bin.010日志
> purge master logs before ‘2016-02-28 13:00:00’; //清除2016-02-28 13:00:00前的日志
> purge master logs before date_sub(now(), interval 3 day); //清除3天前的bin日志

注意,不要轻易手动去删除binlog,会导致binlog.index和真实存在的binlog不匹配,而导致expire_logs_day失效

(3)忘记root密码后的强制修改root密码

# /etc/init.d/mysqld stop //停止mysql服务的运行
# mysqld_safe –user=mysql –skip-grant-tables –skip-networking & //跳过受权表访问
# mysql -u root mysql //登录mysql

在mysql5.7以下的版本如下:

mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’ and host=’127.0.0.1′ or host=’localhost’;//把空的用户密码都修改成非空的密码就行了。

在mysql5.7版本如下:

update mysql.user set authentication_string=password(‘newpassword’) where user=’root’ and host=’127.0.0.1′ or host=’localhost’;

mysql> FLUSH PRIVILEGES;
mysql> quit # /etc/init.d/mysqld restart //离开并重启mysql
# mysql -uroot -p

Enter password: <输入新设的密码newpassword>

(4)允许数据库远程连接

1、新建用户远程连接mysql数据库

grant all on *.* to admin@’%’ identified by ‘123456’ with grant option;
flush privileges;

注意admin账户不一定要存在。

2、支持root用户允许远程连接mysql数据库

grant all privileges on *.* to ‘root’@’%’ identified by ‘123456’ with grant option;
flush privileges;

期待你一针见血的评论,Come on!