zoukankan      html  css  js  c++  java
  • MySQL基础命令操作

    1.mysql数据库启动、关闭、登录

    1.1单实例数据库启动、关闭、登录

    1)

    mysql启动

    /etc/init.d/mysqld start

    mysqld_safe --user=mysql &                           #两者启动实质是一样的&使用编译及二进制安装的mysql,启动脚本由mysql-xx/support-files/mysql.server复制而来

    确认mysql端口

    ss -lnt|grep 3306

    查看mysql进程

    ps -ef|grep mysql|grep -v grep

    2)关闭数据库

    /etc/init.d/mysqld stop

    mysqladmin -uroot -poldboy shutdown             #比较温和的关闭方法

    也可以强制关闭数据库

    killall mysqld

    pkill mysqld

    killall -9 mysqld

    3)登录

    mysql

    mysql -uroot

    mysql -uroot -p                                                 #可以修改Mysql登录后的提示符:prompt \u@wk \r:\m:\s->      (临时生效,若想永久生效,放在my.cnf的【mysql】下)

    退出mysql数据库

    quit或\q

    Ctrl+C或Ctrl+D

    1.2多实例数据库启动、关闭、登录                 #以3306实例为例

    1)启动

    /data/3306/mysql start

    mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &

    2)关闭

    /data/3306/mysql stop

    mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown    

    3)登录

    mysql -uroot -p -S /data/3306/mysql.sock

    mysql -u root -p -h localhost -P 3306                #理论上可以通过不指定sock路径的方式登录

    2.帮助命令--help

    如:help grants

    可以在mysql中查看系统文件:如 system ls /tmp

    查看某数据库用户的权限:show grants for 'root'@'localhost';

    3.为管理员root用户设置/修改密码

    mysqladmin -u root password 'oldboy123'                                  #单实例

    mysqladmin -u root -p 'oldboy123' -S /data/3306/mysql.sock     #多实例

    mysqladmin -uroot -poldboy123 password '123'                         #在单实例已有密码的基础上修改密码,推荐使用!

    update mysql.user set password=password(456) where user='root' and host='localhost';              #登录mysql后执行,完成后如需要flush privileges

    set password=password('oldboy123');                                        #登录mysql后执行

    >>>mysql密码丢失找回方法(单实例)

    1)停止mysql:/etc/init.d/mysqld stop

    2)忽略授权表:mysqld_safe --skip-grant-tables --user=mysql &

    3)update mysql.user set password=password(456) where user='root' and host='localhost';

      flush privileges;

    4)重启:mysqladmin -uroot -p456 shutdown

      /etc/init.d/mysqld start

    >>>mysql密码丢失找回方法(多实例)

    1)关闭mysql:killall mysqld

    2)忽略授权表

    mysqld_safe  --defaults_file=/data/3306/my.cnf   --skip-grant-tables &

    mysql -u root -p -S /data/3306/mysql.sock                                    #登录时空密码

    3)update mysql.user set password=password(“oldboy123”) where user='root'; 

          flush privileges;

    4)重启:mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown

         mysqld_safe --defaults-file=/data/3306/my.cnf 

    4.创建、显示、删除&连接数据库

    4.1)创建数据库

    create database oldboy;

    show create database oldboy\G                                                     #默认的字符集为Latin1,若my.cnf中制定了字符集则创建的数据库为该配置文件中的字符集模式,无需再指定~

    create database oldboy_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;     #可以指定使用特定的字符集创建数据库

    4.2)企业中创建数据库选择方法

    1)根据开发的程序确定字符集(建议UTF8)

    2)编译时在my.cnf中指定字符集,建库时默认创建即可

    3)编译的时候指定了与程序不同的字符集,则需要在创建数据库时指定所需的字符集

    4.3)显示数据库

    show databases like '%old%';

    use oldboy;       

    select database();                                                     #显示当前数据库

    4.4)删除数据库

    drop database oldboy_gbk;

    4.5)连接数据库

    use oldboy;

    select version();                                                        #查看数据库版本

    select user();                                                            #查看数据库用户

    select now();                                                            #查看当前时间

    show tables;                                                            #进入某库查看所有表

    5.删除系统多余账号

    select user.host from mysql.user;

    drop user "user"@"主机”;                                     #若删除不了,则用delete的方式删 delete from mysql.user where user=' ' and host=' ';  flush privileges;

    6.创建mysql用户及赋权

    对用户的授权采用最小化原则(如,只给insert,delete,update,select,create,drop权限,等部署好后回收create,drop权限,主从库授权可能不同)

    help grant

    CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';    #默认为USAGE权限
    GRANT ALL ON db1.* TO 'jeffrey'@'localhost';                            #可以写为GRANT all privileges ON db1.* TO 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
    GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
    GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;

     查看ALL PRIVILEGES包括哪些  

    1)通过踢除一个权限从而看到其他所有权限

    #筛选语句mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show grants for jeffrey@localhost;"|grep -i grant|tail -1|tr ',' '\n' >all.txt

    2)也可在库中通过查询user表查询权限

    use mysql

    show tables;

    desc user\G; 

    。。。

    2018年10月28日

    祝好!

  • 相关阅读:
    linux命令备忘
    java搭建finagle(2)
    记一次Time-Wait导致的问题
    读loadBalance技术的一些笔记
    Immutable.js尝试(node.js勿入)
    python flask 部署
    一个奇怪的html上url参数问题
    xxx-servlet.xml vs applicationContext.xml
    大数据环境安装部署步骤
    数据迁移
  • 原文地址:https://www.cnblogs.com/wangke2017/p/9505411.html
Copyright © 2011-2022 走看看