mysql

作者: 北疆07 | 来源:发表于2019-06-14 14:10 被阅读0次

    mariadb数据库

    1.提前安装MySQL,重启MySQL的mariadb服务
    2.查看进程号ss -lntup |grep mysql
    3.查看进程 ps -ef |grep mysql
    4.然后执行mysql命令进入
    

    数据库命令

    1.1 安装mysql软件包
    yum install –y mariadb-server
    1.2 查看所有数据库
    show databases;
    1.3 查看mysql数据库
    show tables from mysql;
    1.4 显示出mysql数据库中user标的user和host俩个字段
    select user,host  from mysql.user;
    1.5 显示当前登录用户
    select user();
    1.6 进入某个数据库
    use mysql
    1.7 把列数据逐行显示
    select * from mysql.user \G
    1.8 换行显示第一个数据
    select * from mysql.user limit 1 \G
    1.9 添加数据库xxxx
    create database xxxx; 
    1.10 添加用户
    grant all on  xxx.* to 'xxx'@'172.16.1.%' identified by '123456'
    1.11 删除数据库
    drop database wordpresd;
    1.12 删除用户
    drop user 'oldboy'@'localhost';
    1.13 修改了用户信息要生效
    flush privileges;
    1.14 登录数据库
    -u 指定用户名
    -p 指定密码
    -h 指定连接
    1.15 进入某个数据库
    use mysql;
    1.16 查看表属性
    desc 某张表
    1.17 进入数据库,查看所有表
    use   库  ,show  tables;
    1.18  修改用户信息
    alter user wang@'localhost' identified by '123';
    1.19 查看用户有什么权限
    grant select,insert,update,delete on wang.* to dev@'10.0.0.%' identified by '123';
    
    show grants for dev@'10.0.0.%';
    1.20 权限回收
    revoke delete on wang.* from dev@'10.0.0.%';
    1.21 用户管理员密码忘了
    关闭 mysql
    mysql_safe --skip-grant-tables --skip-networking &
    1.22 修改密码
    flush privileges;
    alter user root@'localhost' identified by '123';
    1.23 退出
    quit
    1.24 查看数据库连接情况
    show processlist;
    show full processlist;
    1.25 关闭mysql
    mysqladmin  -uroot -p 密码 shutdown
    1.26 --defailts-file  
    指定 配置文件
    /etc/my.cnf
    只能mysqld_safe
    1.27
    
    
    
    ALL或ALL PRIVILEGES  代表指定权限等级的所有权限。
    ALTER   允许使用ALTER TABLE来改变表的结构,ALTER TABLE同时也需要CREATE和INSERT权限。重命名一个表需要对旧表具有ALTER和DROP权限,对新表具有CREATE和INSERT权限。
    ALTER ROUTINE   允许改变和删除存储过程和函数
    CREATE  允许创建新的数据库和表
    CREATE ROUTINE  允许创建存储过程和包
    CREATE TABLESPACE   允许创建、更改和删除表空间和日志文件组
    CREATE TEMPORARY TABLES 允许创建临时表
    CREATE USER 允许更改、创建、删除、重命名用户和收回所有权限
    CREATE VIEW     允许创建视图
    DELETE  允许从数据库的表中删除行
    DROP    允许删除数据库、表和视图
    EVENT   允许在事件调度里面创建、更改、删除和查看事件
    EXECUETE    允许执行存储过程和包
    FILE        允许在服务器的主机上通过LOAD DATA INFILE、SELECT ... INTO OUTFILE和LOAD_FILE()函数读写文件
    GRANT OPTION    允许向其他用户授予或移除权限
    INDEX   允许创建和删除索引
    INSERT  允许向数据库的表中插入行
    LOCK TABLE  允许执行LOCK TABLES语句来锁定表
    PROCESS 允许显示在服务器上执行的线程信息,即被会话所执行的语句信息。这个权限允许你执行SHOW PROCESSLIST和mysqladmin processlist命令来查看线程,同时这个权限也允许你执行SHOW ENGINE命令
    PROXY   允许用户冒充成为另外一个用户
    REFERENCES  允许创建外键
    RELOAD  允许使用FLUSH语句
    REPLICATION CLIENT  允许执行SHOW MASTER STATUS,SHOW SLAVE STATUS和SHOW BINARY LOGS命令
    REPLICATION SLAVE   允许SLAVE服务器连接到当前服务器来作为他们的主服务器
    SELECT  允许从数据库中查询表
    SHOW DATABASES  允许账户执行SHOW DATABASE语句来查看数据库。没有这个权限的账户只能看到他们具有权限的数据库。
    SHOW VIEW   允许执行SHOW CREATE VIEW语句
    SHUTDOWN    允许执行SHUTDOWN语句和mysqladmin shutdown已经mysql_shutdown() C API函数
    SUPER   允许用户执行CHANGE MASTER TO,KILL或mysqladmin kill命令来杀掉其他用户的线程,允许执行PURGE BINARY LOGS命令,通过SET GLOBAL来设置系统参数,执行mysqladmin debug命令,开启和关闭日志,即使read_only参数开启也可以执行update语句,打开和关闭从服务器上面的复制,允许在连接数达到max_connections的情况下连接到服务器。
    TRIGGER 允许操作触发器
    UPDATE  允许更新数据库中的表
    USAGE   代表没有任何权限,只能登陆
    
    #登录本地数据库
    Mysql -uroot -p
    #登录远程数据库
    mysql -uroot -p -h172.16.1.7
    1.15 备份数据库
    mysqldump -uroot -p -A >/root/all.sql
    ##-A == --all-databases
    1.16 恢复数据库
    mysql -uroot -p  </root.all.sql
    
    PS:历史版本mariadb不删除空用户名的用户信息,可能会无法识别%(列如:172.16.1.%)
    

    创建用户说明

    grant all      on wordpress.*       to 'wordpress'@'172.16.1.%' identified by '123456';
    grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';
    
    >grant   创建用户并给权限
    >all     所有权限
    >on      指定的是
    >wordpress.*    wordpress数据库的.所有表
    >
    >'wordpress'@'localhost'     ‘用户名'@'ip.登录' (%==*)
    >identified by '123456';      密码是 '123456';
    
    

    mysql -e

    #!/bin/bash
     
    HOSTNAME="192.168.111.84"                                           #数据库信息
    PORT="3306"
    USERNAME="root"
    PASSWORD=""
     
    DBNAME="test_db_test"                                                       #数据库名称
    TABLENAME="test_table_test"                                            #数据库中表的名称
     
      
     
    #创建数据库
    create_db_sql="create database IF NOT EXISTS ${DBNAME}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} -e"${create_db_sql}"
     
      
     
    #创建表
    create_table_sql="create table IF NOT EXISTS ${TABLENAME} (  name varchar(20), id int(11) default 0 )"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${create_table_sql}"
     
      
     
    #插入数据
    insert_sql="insert into ${TABLENAME} values('billchen',2)"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${insert_sql}"
     
      
     
    #查询
    select_sql="select * from ${TABLENAME}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${select_sql}"
     
      
     
    #更新数据
    update_sql="update ${TABLENAME} set id=3"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${update_sql}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${select_sql}"
     
      
     
    #删除数据
    delete_sql="delete from ${TABLENAME}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${delete_sql}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${select_sql}"
    

    mysql模块

    [mysql_db模块](http://docs.ansible.com/ansible/latest/mysql_db_module.html)用于建立、删除、导入和导出数据库
    
    ####建立数据库
    
    `state="present"`
    
    
    ---
    - name: mysql
      hosts: s.hi.com
      tasks:
      - name: create a database
        mysql_db:
          login_host: "127.0.0.1"
          login_user: "root"
          login_password: "mysql@123"
          login_port: "3306"
          name: "mezz"
          encoding: "utf8"
          state: "present"
    
    
    
    #### 删除数据库
    
    `state="absent"`
    
    
    ---
    - name: mysql
      hosts: s.hi.com
      tasks:
      - name: delete a database
        mysql_db:
          login_host: "127.0.0.1"
          login_user: "root"
          login_password: "mysql@123"
          login_port: "3306"
          name: "mezz"
          state: "absent"
    
    
    
    #### 导出数据库
    
    `state="dump"`
    
    ---
    - name: mysql
      hosts: s.hi.com
      tasks:
      - name: dump a database
        mysql_db:
          login_host: "127.0.0.1"
          login_user: "root"
          login_password: "mysql@123"
          login_port: "3306"
          name: "mezz"
          target: "/tmp/mezz.gz"
          state: "dump"
    
    
    
    #### 导入数据库
    
    `state="import"`
    
    ---
    - name: mysql
      hosts: s.hi.com
      tasks:
      - name: import a database
        mysql_db:
          login_host: "127.0.0.1"
          login_user: "root"
          login_password: "mysql@123"
          login_port: "3306"
          name: "mezz"
          target: "/tmp/mezz.gz"
          state: "import"
    ## 指定登录信息的方式
    
    ### 免密码登录方式
    
    在用户下建立`.my.cnf`,实现免密码登录
    
    
    [client]
    user=root
    password=mysql@123
    
    
    ### 在yml中使用如下选项指定信息
    
    `login_host login_user login_password login_port`
    创建mysql用户,当state='present'(默认),可用于指定或者更新数据库权限
    当state='absent',删除用户
    
    
    ---
    - name: create a user
      hosts: s.hi.com
      tasks:
      - name: create a user
        mysql_user:
          login_host: "127.0.0.1"
          login_user: "root"
          login_password: "mysql@123"
          login_port: "3305"
          name: "mezz"
          password: "mysql@123"
          host: "127.0.0.1"
          priv: "*.*:all"
          state: "present"
    

    mysql命令参数

    1.1 -u
    指定用户
    1.2 -p
    指定密码
    1.3 -h
    指定ip
    1.4 -P
    指定端口号
    1.5 -S
    指定socket  文件   默认文件放在/tmp/mysql.sock
    1.6 -e
    免交互式使用命令
    1.7 -V
    查看版本信息
    1.8 <
    导入sql文件
    

    mysqldomp

    命令参数

    -A   所有数据库
    >>追加到什么文件
    
    
    image.png

    相关文章

      网友评论

          本文标题:mysql

          本文链接:https://www.haomeiwen.com/subject/lqdbfctx.html