Mysql 常用命令集


1.mysqlbinlog工具使用方法如下:

先使用 show binary logs 查看

在使用导出命令

mysqlbinlog -R -uroot -pxxxx -hxxx.xxx.xxx.xxx -d db_name  --base64-output=decode-rows  --start-datetime='2015-08-13 13:11:21'  --stop-datetime="2015-08-13 13:18:21" mysql-bin.000008 > mysql-bin.ran_trade_08_13.sql


2.mysqldump使用方法如下:

# 备份单个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
# 备份所有数据库
mysqldump -u用户名 -p --all-databases  > /tmp/bak.sql


3.修改root账户密码

mysqladmin -u root password "new password"


4.为特定用户赋予和收回权限

#赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT select,insert,update,delete ON *.* TO 'pig'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

#收回权限
REVOKE ALL PRIVILEGES ON *.* FROM pig;
FLUSH PRIVILEGES;

PS: 权限包括 select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file


5.Mysql服务器开启远程连接

 1)开启对应账号的远程访问权限

$ mysql -uroot -p
mysql > use mysql;
mysql > update user set host = '%' where user = 'root';
mysql > flush privileges;

如果在执行update的时候报错 "ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'", 解决办法

SELECT Host,User from user \G;

将重复的删除掉


 2)开启服务允许远程连接 编辑文件 /etc/mysql/my.conf

$ vim /etc/mysql/my.conf #找到bind-address注释掉这行
$ /etc/init.d/mysql restart #重启mysql服务


6.新建数据库用户

CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'localhost' IDENTIFIED BY '123456';


7.查看表的大小


SELECT TABLE_NAME,( (DATA_LENGTH+INDEX_LENGTH)/1024/1024 ) as tb_szie,TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA='db_name' order by tb_szie desc;


8. 修改数据库默认时间

    最近发现数据库有个字段的时间是晚8个小时的,发现数据库的时间不对

更改mysql的配置文件(mysql.cnf)
在my.cnf的 [mysqld]区域中加上
default-time_zone = '+8:00'     #此为北京时


9.重置root密码

 当忘记root账号密码时,不要急,在 /etc/mysql/my.cnf 的[mysqld]下面增加一段

skip-grant-tables

 然后 重启服务

sudo /etc/init.d/mysql restart

然后直接输入mysql 命令进去

mysqbinlog mysql mysqldump mysqladmin grant privileges 远程连接
编程浪子走四方:CodeRonin