`
booby325
  • 浏览: 386452 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql常用命令总结

    博客分类:
  • DB
 
阅读更多

 

作为一名合格的Linux运维mysql数据库是必须掌握的技能,原来自己也断断续续的学习过mysql,只是在比较大的互联网公司都有专业的DBA,需要运维做的事情很少,所以掌握的东西还是不多,下面是在运维里比较常见的一些操作命令,原来工作里多多少少都用到过,不过每次可能也就用到几个命令,所以一直没有做个总结,隔一段时间就忘的差不多了,等到要用的时候又只能去百度谷歌了,很浪费时间,今天有点时间,归纳一下做个备忘吧~~

    以下的命令都经过测试,暂还没有写完,后续如果接触到其他有用的命令也会更新到这。

 

1、启停mysql

系统默认mysql启停:

[root@localhost ~]# /etc/init.d/mysqld start

[root@localhost ~]# /etc/init.d/mysqld stop

 

编译安装mysql启停:

[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --user=mysql &

[root@localhost ~]# /usr/local/mysql/bin/mysqladmin shutdown

 

如果编译安装后将源码包下的开机启动文件拷贝到了/etc/init.d下,也可以使用以上的启动方式。

[root@localhost mysql-5.5.23]cp support-files/mysql.server /etc/init.d/mysqld

 

mysqld启动脚本还有其他的功能参数:

Usage: /etc/init.d/mysqld {start|stop|status|condrestart|restart}

 

注:以下所有的操作默认是系统本机mysql

2、密码设置

设置初始密码:

[root@localhost ~]# mysqladmin -uroot password '111111'

 

清除密码:

[root@localhost ~]# mysqladmin -uroot password '' #密码为空

 

重置密码:

[root@localhost ~]# mysqladmin -uroot -p111111 password '222222'

 

登陆到mysql后修改密码:

[root@localhost ~]# mysql -uroot -p222222   #登陆

mysql> update mysql.user set password=password('333333') where user='root';

mysql> flush privileges;   #刷新权限

 

忘记密码后重置:

1)停止mysql

[root@localhost ~]# /etc/init.d/mysqld stop

kill进程

[root@localhost ~]# kill -9 `ps -ef|grep mysql|grep -v grep|awk '{print $2}'`

2)使用--skip-grant参数启动mysql

[root@localhost ~]# mysqld_safe --skip-grant &

3)登陆mysql修改密码

[root@localhost ~]# mysql

mysql> update mysql.user set password=password('111111') where user='root';

mysql> flush privileges;

4)重启mysql

[root@localhost ~]# /etc/init.d/mysqld restart

 

3、连接mysql

本地连接:

[root@localhost ~]# mysql -u root -p111111

 

远程连接:

[root@localhost ~]# mysql -h192.168.128.10 -uroot -p111111      #-h参数后跟IP

本机也可以加-h参数:

[root@localhost ~]# mysql -h127.0.0.1 -uroot -p111111

 

4、用户管理

查看用户权限:

mysql> show grants for root@localhost;

 

授权:

mysql权限分全局级别、数据库级别、表级别、列级别,根据需要指定相应级别。

赋予root超级用户权利权限:

mysql> grant all privileges on *.* to root@'%' identified by '111111';

 

创建test全局权限并有授予别人的权限:

mysql> grant all privileges on *.* to test@'%' identified by '222222' with grant option;

 

创建test用户并赋予cacti库所有权限:

mysql> grant all privileges on cacti.* to test@'%' identified by '222222';

 

创建test用户并赋予cacti库某些权限:

mysql> grant select,delete,update,create,drop on cacti.* to test@'%' identified by '222222';

 

创建test用户并赋予cactihost表权限:

mysql> grant all privileges on cacti.host to test@'%' identified by '222222';

 

撤销用户权限:

mysql> revoke all on *.* from test;

 

REVOKE语句只是取消用户的权限,没有彻底删除用户,如果需要,可以用delete语句删除用户。

mysql> delete from mysql.user where user='test';

mysql> flush privileges;

 

多条件匹配删除:

mysql> delete from mysql.user where user='test' and host='localhost';

 

5、备份恢复

mysqldump备份库:

[root@localhost ~]# mysqldump -u root -p111111 mysql >backup.sql

建议备份时加上参数:--lock-tables、--lock-all-tables、--single-transaction

--lock-all-tables, -x:

在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。

--lock-tables:

它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 选项。

--single-transaction:

该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。

本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。

要想导出大表的话,应结合使用 --quick 选项。

 

备份多个库:

[root@localhost ~]# mysqldump -u root -p111111 mysql test >backup.sql

 

备份所有库:

[root@localhost ~]# mysqldump -u root -p111111 --all-databases >all.sql

 

备份单库结构:

[root@localhost ~]# mysqldump -u root -p111111 -d mysql >backup.sql

 

压缩备份库:

[root@localhost ~]# mysqldump -u root -p111111 mysql | gzip >backup.sql.gz

 

备份表:

[root@localhost ~]# mysqldump -u root -p111111 mysql user >backup.sql

 

备份表结构:

[root@localhost ~]# mysqldump -u root -p111111 -d mysql user >user.sql

 

还原数据库:

[root@localhost ~]# mysql -u root -p111111 <backup.sql

 

还原压缩的数据库:

[root@localhost ~]# gunzip <backup.sql.gz |mysql -uroot -p111111 mysql

 

将本机mysql库拷贝至其他服务器的newdata库中:

[root@localhost ~]# mysqldump -uroot -p111111 mysql|mysql -h192.168.128.10 -uroot -p222222 -C newdata

 

mysqldump创建数据库的命令:

[root@Master ~]# mysqladmin create newdata

 

分享到:
评论

相关推荐

    Mysql常用命令总结

    ### MySQL常用命令总结 #### 一、连接MySQL 在MySQL中,通过命令行连接到数据库是一种常见且实用的方法。连接MySQL的基本格式为: ```sql mysql -h 主机地址 -u 用户名 -p 用户密码 ``` - **连接到本机上的MySQL...

    MySql常用命令总结.txt

    mysql MySql常用命令总结

    MySQL常用命令总结.txt

    MySQL常用命令总结 MySQL常用命令总结

    MySQL 常用命令总结

    ### MySQL常用命令精要解析 #### 一、MySQL基础命令概览 MySQL是全球最流行的开源关系型数据库管理系统之一,其高效稳定、功能全面而深受广大开发者喜爱。掌握MySQL的基本命令是进行数据库管理与开发的基础。 ###...

    MySql常用命令总结

    在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqld start”命令,注意启动者应具有管理员权限。 刚安装好的MySql...

    mysql常用命令大全 mysql常用命令总结.rar

    以下是一些MySQL常用命令的详细说明: 1. **创建数据库**: - `CREATE DATABASE`: 用于创建新的数据库。例如,`CREATE DATABASE mydb;` 创建名为`mydb`的数据库。 2. **选择数据库**: - `USE`: 用于切换到指定...

    mySQL的一些常用命令

    以下是关于MySQL常用命令的一些详细解释: 1. **连接MySQL**: - 使用`mysql -u&lt;username&gt; -p`命令可以连接到本地MySQL服务器,其中`&lt;username&gt;`是你的用户名。如果你的密码为空,直接按回车即可。例如,`mysql -u...

    mysql常用命令总结适用于mysql8.0

    对于MySQL 8.0,了解并熟练掌握常用命令对于数据库管理至关重要。以下是一些关键的MySQL命令及其详细解释: 1. **登录数据库**: 使用`mysql -u root -p`命令登录MySQL服务器,其中`root`是用户名,系统会提示输入...

    MySql常用命令总结+详细介绍用法

    这篇文档将深入探讨MySQL的常用命令,旨在为初学者提供一份全面的参考指南。 1. **连接与断开MySQL服务器** - `mysql -u username -p`: 连接到MySQL服务器,username是你在MySQL中的用户名,系统会提示输入密码。 ...

    MySql常用命令总结.pdf

    在数据库管理与操作中,MySql是一个广泛...熟悉和掌握这些常用命令,可以有效提升管理数据库的效率和准确性。同时,在实际操作中,还需要注意命令的权限要求和数据的完整性校验,防止因误操作导致数据丢失或系统故障。

Global site tag (gtag.js) - Google Analytics