首頁 > 資料庫 > mysql教程 > mysql修行练级之mysql新手入门常用命令

mysql修行练级之mysql新手入门常用命令

WBOY
發布: 2016-06-07 16:47:58
原創
1069 人瀏覽過

mysql修行练级之mysql新手入门常用命令创建时间:2014.08.24修改时间:2014.09.26从一个运维工程师和DBA新手的角度出发,学习,实践从而掌握mysql相关操作。1.登

mysql修行练级之mysql新手入门常用命令

创建时间:2014.08.24

修改时间:2014.09.26 

从一个运维工程师和DBA新手的角度出发,学习,实践从而掌握mysql相关操作。

1.登录MySQL服务器

当面对一个正在运行的mysql服务,我们需要做的第一件事情就是登录mysql服务。

MySQL客户端能够以两种不同的方式连接到mysqld服务器:

  • 非标准端口登录

    非3306服务端口登录,例如:

    mysql -u qunyingliu -p 51cto20140824 -P 3307 mysql -h 10.1.8.24 -u qunyingliu -p 51cto20140824 -P 3307
  • B.通过socket链接mysql服务

        mysql -S mysql.sock文件地址

    例如,

        mysql -S /tmp/mysql/mysql.sock

    当然如前所述,以下两种登录方式,默认也是通过unix连接mysql服务的:

    mysql mysql -P 3307 -u qunyingliu -p51cto20140824 mysql -h localhost -P 3307 -u qunyingliu -p51cto20140824

    如果通过socket方式连接mysql,当mysql.sock文件不是默认的名称或存放路径时,我们将会收到类似如下错误信息:

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

    2.Mysql常用交互命令


  • 取消授权:
    revoke all privileges(权限) on *(数据库).*(表) from 帐号@主机;
    如,

      mysql>revove all privileges on *.* from qunyingliu@"%";

    删除用户:
    delete from user where user="帐号" and host="%";
    如,

    delete from user where user="qunyingliu" and host="%";

    数据库/数据表/数据列权限: 

    Alter: 修改已存在的数据表(例如增加/删除列)和索引。

    Create: 建立新的数据库或数据表。

    Delete: 删除表的记录。

    Drop: 删除数据表或数据库。

    INDEX: 建立或删除索引。

    Insert: 增加表的记录。

    Select: 显示/搜索表的记录。

    Update: 修改表中已存在的记录。


    全局管理MySQL用户权限:

    file: 在MySQL服务器上读写文件。

    PROCESS: 显示或杀死属于其它用户的服务线程。

    RELOAD: 重载访问控制表,刷新日志等。

    SHUTDOWN: 关闭MySQL服务。


    特别的权限:

    ALL: 允许做任何事(和root一样)。

    USAGE: 只允许登录--其它什么也不允许做。

  • 查看 MySQL 用户权限 

  • 查看当前用户(自己)权限: show grants;  查看其他 MySQL 用户权限: show grants for qunyingliu@10.2.122.1;
  • mysql服务相关操作

    查看mysql版本与当前时间:
    select version(),current_date;
    修改密码:
    update user set password=password("liuqunying") where user='qunyingliu'; flush privileges(刷新权限)

  • 3.Mysql数据备份与恢复
  • 备份数据库:

  •     mysqldump -h host -u root -p 数据库名  --default-character-set=utf8[|gbk|latin1] >dbname_backup.sql
  • 备份数据表:

  •     mysqldump -h host -u root -p 数据库名 表名 >dbname_tablename_backup.sql

    只导出插入数据的sql命令:

        mysqldump -h host -u root -p  -t 数据库名 [表名] >insert_data.sql

    只导出创建表的sql命令:

        mysqldump -h host -u root -p  -d 数据库名 [表名] >create_table.sql

    只导出表内的数据:

        mysqldump -h host -u root -p  -T 导出数据目录 数据库 表名
  • 恢复数据库:恢复的方法有多种,,推荐source命令, 可以查看数据导入的进度
    mysql+source命令:

  •     qunyingliu_host#   mysql -h host -u root -p      mysql> use dbname;source dbname_backup.sql;

    mysqldump命令:

        qunyingliu_host# mysqldump -u username -p dbname mysql命令:    qunyingliu_host# mysql -u username -p -D dbname 

    重置root帐号登录密码

      qunyingliu_host# /etc/init.d/mysql stop   qunyingliu_host# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &   qunyingliu_host# mysql -u root mysql    mysql> update user set password=password('qunyingliu@51cto') where user='root';    mysql> flush privileges;    mysql> quit   qunyingliu_host# /etc/init.d/mysqld restart    qunyingliu_host# mysql -uroot -p

    使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
    想删除表,当然用drop
    想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
    如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据/

    实际应用: 
    delete from table; //删除所有数据 
    truncate table; //将auto_increatement调制从0开始,实际就是从1开始


    ##########################

    参考引用:


    本文出自 “运维者说:从菜鸟到老鸟” 博客,请务必保留此出处

    相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板