linux用数据库

2018-11-02 20:05:21 weixin_43060102 阅读数 7882
  • 连接数据库 mysql -h localhost -u 用戶名 -p密碼
  • 使用数据库use desk_show;
  • 显示数据表show tables;
  • 显示表结构describe desk6_0;

mysql其他命令:

  • 显示数据库 show databases;

  • 创建数据库create database name;

  • 选择数据库use databasename;

  • 执行命令source /root/20151010.sql

  • 直接删除数据库,不提醒drop database name

  • 显示表show tables;

  • 显示具体的表结构describe tablename;

  • select 中加上distinct去除重复字段mysqladmin drop databasename
    删除数据库前,有提示。

  • 显示当前mysql版本和当前日期

select version(),current_date; 

root密码管理

  • 设置root用户的密码 mysqladmin -uroot password 'password'
  • 修改root用户的密码 mysqladmin -uroot -p password 'password'
     
    数据库,表管理
  • 进入mysql mysql -h hostname -uroot -p
  • 创建数据库 mysql> create database location
  • 导入数据结构 mysql -uroot -p location <./location.sql
  • 查看数据库 mysql> show databases;
  • 进入某个库 mysql> use location;
  • 查看表信息 mysql> show tables;
  • 查看表结构 mysql> desc Contact;
  • 改表名 mysql> rename table Contact to Contact_new
  • 删除库 mysql> drop database location
  • 删除表 mysql> drop table Contact
     
    授权部分
  • 建立用户并授权
  mysql> grant all on location.* to gk1020@'10.1.11.71' identified by 'gk1020'
  • 取消授权 mysql> revoke all on location.* from gk1020@'10.1.11.71'
  • 刷新权限 mysql> flush privileges
     
    操作语句
  • 查询
   mysql> select * from Contact
   mysql> select count(*) from Contact
  • 修改
mysql> update Contact set RegTime=‘2008-01-01 00:00:00’ where id=1
mysql> update Contact set RegTime=‘2008-01-01 00:00:00’,CID=1 where id=1
  • 插入
mysql> insert into Contact values('',''…)
mysql> insert into Contact(ID,CID,Contact) values('',''…)
  • 删除
mysql> delete from Contact where id=1

  • 备份数据库
location     mysqldump -uroot -p -l location >./location.sql
  • 备份某个表
mysqldump -uroot -p -l --database location --table Contact >./contact.sql
  • 导出数据库location的数据结构
 mysqldump -d -uroot -p location >./location.sql
  • 恢复数据库:
mysql -uroot -p location < location.sql
  • 备份数据文件和sql文件分离:
mysqldump -uroot -p location contact -T backup/
  • 导出数据:
select * from contact into outfile 'contact.txt';
  • 恢复sql文件:
cat contact.sql | mysql -uroot -p location
  • 导入数据(要跟绝对路径)
mysqlimport -uroot -p zhang  /usr/local/mysql/var/backup/contact.txt

  • 复制表 复制表Contact为Contact_bak
mysql> create table Contact_bak as select * from Contact
  • 复制表Contact的结构
 mysql> create table Contact_bak as select * from Contact where 1=2
  • 查看正在执行的任务
 mysql> show processlist
  • kill正在执行的任务
 mysqladmin -uroot -p kill process_id
  • 查看表状态:
mysql> check table Contact  or mysqlcheck -uroot -p -c location Contact 
  • 修复表:
  mysql> repair table Contact  or mysqlcheck -uroot -p -r location Contact
  • 优化表:
  mysql> optimize table Contact  or mysqlcheck -uroot -p -o location Contact 
2017-09-01 11:17:07 f917386389 阅读数 11916

一、导出数据库用mysqldump命令

1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

#/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql

敲回车后会提示输入密码

!此处有坑,如果提示 mysqldump未找到命令,是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,自然会找不到命令,并报错。知道了问题的所在,就直接去处理,先用一条find命令查找mysqldump的所载路径。

 find  / -name mysql -print // 找到文件名称为mysql的文件

然后再用ln命令链接到/usr/bin下面。

ln -fs /usr/local/mysql/bin/mysqldump /usr/bin  

2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql

#/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

注:/usr/local/mysql/bin/ —> mysql的data目录

二、导入数据库

1、首先建空数据库

mysql>create database abc;

2、导入数据库
方法一:
(1)选择数据库

mysql>use abc;

(2)设置数据库编码

mysql>set names utf8;

(3)导入数据(注意sql文件的路径)

mysql>source /home/abc/abc.sql;

方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql

#mysql -uabc_f -p abc < abc.sql

建议使用第二种方法导入。

2018-05-30 23:40:12 zhikanjiani 阅读数 7103

前言:linux下对数据库的操作类似于Windows下cmd框对数据库的操作

1.mysql的登录
切换用户mysqladmin -->输入mysql 自动进入
mysql -uroot -p 两次回车直接进入
mysql -uroot -p123456 注意-p后没有空格

2.数据库常规使用
列出所有数据库:show databases;
mysql部署完后默认安装的4个数据库
切换到mysql数据库:use mysql; 列出所有表:show tables;

3.生产过程中改密码
查看user表中的user、host、password信息。
select user,host,password from user;
这里写图片描述

更新user表中的密码并对它进行加密
update user set password=password(‘123456’) where user = ‘root’
这里写图片描述
更新密码,密码明文是123456的加密密码

对mysql创建用户、修改权限后都要flush privileges:刷新权限

4.configure.bash_profile
export MYSQL_BASE=/usr/local/mysql
export PATH=MYSQLBASE/bin:{MYSQL_BASE}/bin:PATH
这里写图片描述

PS1=uname -n":"‘USER":"USER'":"'PWD’":>"; export PS1
这里写图片描述

4.数据库操作
我是用的是Navicat远程连接Linux下的MySQL数据库
注意的点
1.Linux下的防火墙需要关闭
2.主机名在linux使用ifconfig命令查看,是lo的ip
3.用户名和密码在mysql数据库下的user表中进行操作,更改完后flush privileges进行权限刷新。
这里写图片描述

4.1创建表
创建表之前要了解设置字段的类型:详细教程http://www.runoob.com/mysql/mysql-data-types.html
我们既可以使用图形化创建表也可以使用命令行创建表
4.1.1这里写图片描述
4.1.2
这里写图片描述

4.2插入数据
insert into ruozedata(name,age,address) values(‘john’,23,‘suzhou’);
这里写图片描述

4.3删除数据
delete from ruozedata where name = ‘johnisgod’;
这里写图片描述

总的增删改查语句:
这里写图片描述

4.4 添加约束
ruozedata表下的name字段不能重复
ALTER TABLE mysql.ruozedata ADD CONSTRAINT ruozedata_un UNIQUE KEY (name) ;

2019-08-02 22:40:33 jiaomubai 阅读数 1792

Linux下访问数据库

         声明:本文只简单描述Linux系统下访问mysql数据库的步骤,关于连接上数据库之后的简单的对于数据库的增删改查等操作只是稍微提及,关于增删改查的语句书写,本文不再讲述。

         一般来说,访问数据库有如下几个步骤:

         1.初始化mysql环境

         2.连接数据库

         3.执行sql语句

         4.获取查询结果

         5.显示结果

         6.关闭数据库

         7.释放mysql环境

         针对以上7个步骤,接下来重点描述以下者7个步骤中所需要做的工作和所使用到的函数。

1.初始化mysql环境

         作为连接数据库前的准备工作,这个步骤要做的事情其实还是很多的。首先需要创建MYSQL变量,用来存储与连接有关的数据信息。其结构体的结构非常复杂,不需要过多的理解。在实际使用时有着其固定的使用方法,只需记住就行。

typedef struct st_mysql 
{
    NET net;           
    gptr connector_fd; 
    char *host, *user,*passwd,*unix_socket,*server_version, *host_info,*info,*db;
    unsigned int port,client_flag,server_capabilities;
    unsigned int protocol_version;
    unsigned int field_count;
    unsigned int server_status;
    unsigned long thread_id;      
    my_ulonglong affected_rows;
    my_ulonglong insert_id;       
    my_ulonglong extra_info;              
    unsigned long packet_length;
    enum mysql_status status;
    MYSQL_FIELD *fields;
    MEM_ROOT field_alloc;
    my_bool free_me;       
    my_bool reconnect;    
    struct st_mysql_options options;
    char scramble_buff[9];
    struct charset_info_st *charset;
    unsigned int server_language;
}MYSQL;

         除此之外,此阶段还有两个函数也至关重要,mysql_init()函数和mysql_library_init()函数。

MYSQL *mysql_init(MYSQL *mysql);

功能:用来初始化一个连接句柄

若函数成功执行,则返回一个MYSQL类型的指针,失败则返回NULL。

int mysql_library_init(int argc,char **argv,char **groups);

功能:用来初始化mysql库

关于这两个函数的参数含义此处不做解释,因为本鸟也不知道,唯一知道的就是这么用就对了,实际使用时给三个参数赋值为0,NULL,NULL,具体使用方法会在最后的案例中提及。

还有一个与mysql_library_init()函数相对应的函数mysql_library_end(),用来关闭服务器端数据库。这两个函数必须放在一起使用,先初始化,最后再关闭数据库,如果只初始化不关闭,那么之前申请的一块内存将会一直存在,容易导致内存泄漏。

2.连接数据库

         连接数据库部分涉及到两个函数,分别是mysql_real_connect()函数和mysql_select_db()函数。

MYSQL* mysql_real_connect(MYSQL *mysql,const char* host,const char *user,const char * *passwd,const char *db,unsigned int port,const char*unix_socket,unsigned long clientflag);

功能:用来连接数据库

参数说明:

mysql:之前定义的MYSQL变量

host:MYSQL服务器的地址

user:登陆用户名

passwd:登陆密码

db:要连接的数据库

port:MYSQL服务器的TCP服务端口

unix_socket:unix连接方式,为NULL时表示不使用socket或管道机制

clientflag:mysql运行为ODBC数据库的标记,一般取0

返回值:成功,返回*mysql指针,失败,返回NULL

         此函数的参数较多,实际使用时不会给每个参数都赋值的,只需要记住最常被赋值的几个参数即可。

int mysql_select_db(MYSQL *mysql,const char *db);

功能:使得由db指定的数据库成为由mysql指定的连接上的默认数据库

返回值:成功,返回0;失败,返回一个非0值。

错误代码:

CR_COMMANDS_OUT_OF_SYNC:以不恰当的顺序执行了命令

CR_SERVER_GONE_ERROR:mysql服务器不可用

CR_SERVER_LOST:在查询过程中与服务器的连接丢失

CR_UNKNOWN_ERROR:出现未知错误

3.执行sql语句

         当数据库连接成功之后就可以对数据库中的数据进行增删改查等操作了,这些增删改查的语句本鸟不再书写,相信大家都会吧。但是,这些语句并不是独自出现的,而是把它存储在一个缓冲区里,作为函数参数使用,此函数为:

int mysql_query(MYSQL *mysql,const char *q);

功能:执行sql语句

参数:第一个参数为mysql结构体,第二个参数为操作命令。

         还有一个可用来执行sql语句的函数:

int mysql_real_query(MYSQL *mysql,const char *query,unsigned long length);

功能:进行数据库查询。执行由query指向的sql查询,正常情况下,字符串必须包含一条sql语句,而且不应该为语句添加终结分号。

参数说明:

mysql:MYSQL变量

query:查询语句

length:查询语句的长度

         以上两个函数都是用来进行数据库查询的函数。不同之处在于,对于包含二进制数据的查询,必须使用mysql_real_query()函数,这是因为  二进制数据可能会包含‘\0’字符,同时,mysql_real_query()函数执行速度快,这是因为此函数不会在查询字符串上调用strlen()函数。

         执行sql语句后,我们通过调用mysql_store_result()或mysql_use_result()函数返回的MYSQL_RES变量获取查询结果数据。

MYSQL_RES *mysql_store_result(MYSQL *mysql);
MYSQL_RES *mysql_use_result(MYSQL *mysql);

这两个函数分别代表了获取查询结果的两种方式。

         第一种,调用mysql_store_result()函数将从mysql服务器查询的所有数据都存储到客户端,然后读取;

         第二种,调用mysql_use_result()初始化检索,以便于后面一行一行的读取结果集,而它本身并没有从服务器读取任何数据,这种方式较之第一种速度更快且所需内存更少,但它会绑定服务器,阻止其他线程更新任何表,而且必须重复执行mysql_fetch_row()读取数据,直至返回NULL,否则未读取的行会在下一次查询时作为结果的一部分返回,故经常我们使用mysql_store_result()。

4.获取查询结果

         我们把执行完sql语句的返回的结果称为结果集,其用一个MYSQL_RES结构体来存储。本部分的主要内容就是从返回的结果集里获取查询结果。

typedef struct st_mysql_res 
{
    my_ulonglong row_count;
    unsigned int field_count, current_field;
    MYSQL_FIELD *fields;
    MYSQL_DATA *data;
    MYSQL_ROWS *data_cursor;
    MEM_ROOT field_alloc;
    MYSQL_ROW row;           
    MYSQL_ROW current_row;   
    unsigned long *lengths; 
    MYSQL *handle;      
    my_bool eof;         
}MYSQL_RES;

         这样的结构体着实令本鸟头大。

         我们执行sql语句后的结果就存储在这样一个结构体中,但是我们要想从这个结构体中获取到,或者说提取出我们需要的信息,则就必须使用MYSQL_FIELDMYSQL_ROWS结构体来获取。这个结构体包含着结果集中的字段名、字段类型、字段大小等信息,可以通过重复调用mysql_fetch_fields()函数来获得所有字段的信息,即列信息或列数据。

typedef struct st_mysql_field 
{
    char *name;                  
    char *table;                 
    char *def;                    
    enum enum_field_types type;  
    unsigned int length;         
    unsigned int max_length;    
    unsigned int flags;         
    unsigned int decimals;  
} MYSQL_FIELD;
MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res);

功能:读取结果集字段

         与之对应的是MYSQL_ROWS结构体里的mysql_fetch_row()函数,此函数用来获得结果集中的行信息。

MYSQL_ROW *mysql_fetch_row(MYSQL_RES *res);

功能:读取结果集数据

返回值:该函数返回MYSQL_ROW型的变量,即字符串数组,假设其为row,则row[i]为第i个字段的值,当到结果集尾部时,此函数返回NULL。

         刚才说到mysql_fetch_row()函数是用来获取数据集中的数据信息,它只能一行一行的来获取,所以还得有个函数用来统计结果集中的行数。同样的,也得用一个函数来获取结果集中的字段的数量。

unsigned int mysql_num_fields(MYSQL_RES *res);

功能:获取结果集中字段的数量

unsigned int mysql_num_rows(MYSQL_RES *res);

功能:获取结果集中行数

         结果集使用完毕后,还需释放掉结果集,避免内存泄漏。

void mysql_free_result(MYSQL_RES *res);

5.关闭数据库

         不需要继续查询mysql数据库时,应及时关闭数据库连接。

void mysql_close(MYSQL *sock);

         sock为连接函数返回的变量。

6.释放mysql环境

         在初始化阶段中提到了一个与mysql_library_init()函数相对应的函数mysql_library_end(),此函数用来及时释放mysql环境,来终止使用mysql数据库。

案例:MysqlDemo.c

         本案例主要是通过远程访问数据库来对数据库里的数据信息进行增删改查等操作。在正式编码之前,我们首先需要直到关于本案例所要用到的数据库的基本信息。本案例所使用的数据库为StaffDB,该数据库里有3张表,分别为Department(部门)、Work(职务)、Staff(员工信息),每张表的结构和数据如下所示:

Department(部门):

Work(职务):

Staff(员工):

         这3张表的截图都是在Windows系统下所截取的,我们就是要通过案例来对这些数据加以操作。

MysqlDemo.c

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <mysql/mysql.h>

//查询
int Select_sql(MYSQL *p_sock)
{
    //声明缓冲区并初始化
    char buffer[1024]={0};
    memset(buffer,0x00,1024);
    snprintf(buffer,sizeof(buffer),"%s","select * from Department");
    //执行sql语句
    int ret = mysql_query(p_sock,buffer);
    if(ret != 0)
    {
        printf("查询错误:%s\n",mysql_error(p_sock));
        return -1;
    }
    
    //结果集
    MYSQL_RES *res;
    //数据行
    MYSQL_ROW row;
    //记录结果的行数
    int rows = 0;
    //记录结果的列数
    int columns = 0;
    //获取查询结果
    res = mysql(store_result(p_sock));
    if(res == NULL)
    {
        printf("获取结果集错误:%s\n",mysql_error(p_sock));
        return -1;
    }
    //获取查询结果的行数
    rows = mysql_num_rows(res);
    if(rows < 0)
    {
        printf("获取查询结果的行数错误:%s\n",mysql_error(p_sock));
        return -1;
    }
    if(rows == 0)
    {
        printf("该查询结果中无数据!\n");
        return 0;
    }

    //获取查询结果的列数
    columns = mysql_num_fields(res); 
    if(rows < 0)
    {
        printf("获取查询结果的列数错误:%s\n",mysql_error(p_sock));
        return -1;
    }

    //获取每一行数据
    while((row = mysql_fetch_row(res)) != NULL)
    {
        int i;
        for(i = 0;i < columns;i++)
        {
            printf("%s\t",rows[i]);
        }
        printf("\n");
    }

    //释放结果集所占用的空间
    mysql_free_result(res);
    return 0;}
}

//插入
int Insert_sql(MYSQL *p_sock)
{
    char buffer[1024] = {0};
    //sql语句
    memset(buffer,0x00,1024);
    snprintf(buffer,1023,"%s","insert into Department(Department_id,Department_name,Remark) value('D07','综合部','综合部')");
    //执行sql语句
    if(mysql_query(p_sock,buffer) != 0)
    {
        perror("mysql_query");
        return -1;
    }
    return 0;
}

//更新
int Update_sql(MYSQL *p_sock)
{
    char buffer[1024] = {0};
    //sql语句
    memset(buffer,0x00,1024);
    snprintf(buffer,1023,"%s","update Department set Remark = "综合管理" where Department_id = 'D07'");
    //执行sql语句
    if(mysql_query(p_sock,buffer) != 0)
    {
        perror("mysql_query");
        return -1;
    }
    return 0;
}

//删除
int Delete_sql(MYSQL *p_sock)
{
    char buffer[1024] = {0};
    //sql语句
    memset(buffer,0x00,1024);
    snprintf(buffer,1023,"%s","delete from Department where Department_id = 'D07'");
    //执行sql语句
    if(mysql_query(p_sock,buffer) != 0)
    {
        perror("mysql_query");
        return -1;
    }
    return 0;
}


int main()
{
    //按照文档中的步骤,首先进行对sql环境的初始化

    //1.初始化sql环境
    //定义MYSQL变量
    MYSQL mysql,*p_mysql,*p_sock;
    //初始化mysql句柄
    p_mysql = mysql_init(&mysql);
    if(p_mysql == NULL)
    {
        printf("初始化错误!\n");
        return -1;
    }
    //初始化MySQL库
    int ret = mysql_library_init(0,NULL,NULL);
    if(ret ==0)
    {
        printf("初始化数据库成功!\n");
    }
    else
    {
        printf("初始化数据库失败!\n");
        return -1;
    }
    if(p_mysql != NULL && ret == 0)
    {
        printf("初始化sql环境成功!\n");
    }

    //2.连接数据库
    p_sock = mysql_real_connect(p_mysql,"127.0.0.1","root","(NavyBlue123)",NULL,0,NULL,0);
    if(p_sock == NULL)
    {
        //输出错误原因
        printf("连接错误:%s\n",mysql_error(p_mysql));
        return -1;
    }
    //选择数据库
    int r = mysql_swlect_db(p_sock,"StaffDB");
    if(r != 0)
    {
        printf("选择数据库出错:%s\n",mysql_error(p_mysql));
        return -1;
    }
    //设置编码格式,注意,此处一定要设置编码格式,不然最后的查询结果中的中文会显示乱码
    mysql_query(&mysql,"SET NAMES utf8");
    if(p_sock != NULL && r == 0)
    {
        printf("数据库连接成功!\n");
    }

    //3.执行sql语句,此部分我们另写函数实现
    //查询部分我们选择查询3张表的整体信息
    Select_sql(p_sock);
    //插入部分我们选择给Staff表中插入一条新的员工信息
    Insert_sql(p_sock);
    //修改,即更新
    Update_sql(p_sock);
    //删除部分我们选择删除新插入到Staff表中的那条员工信息
    Delete_sql(p_sock);

    //4.获取查询结果,此部分会在执行sql语句的函数里一并处理

    //5.关闭数据库
    mysql_close(&mysql);

    //6.释放sql环境,终止使用MySQL库
    mysql_library_end();

    return 0;
}

         由于本鸟的Mysql在安装的时候丢失了重要的文件,所以此文件无法运行,还希望大家在闲余时间能够亲自跑一下代码,熟悉一下连接过程为好。

2018-05-30 16:02:10 qq_38622229 阅读数 1998

1.安装并初始化配置数据库:

   yum install mariadb-server -y  安装
   systemctl start mariadb        开启数据库服务
   mysql                          可以直接登陆
   netstat -antlpe | grep mysql
   vim /etc/my.cnf                编辑配置文件
     skip-networking=1            跳过网络接口开启服务

这里写图片描述

   systemctl restart mariadb      重启数据库服务
   netstat -antlpe | grep mysql   查看mysql端口是否开放

这里写图片描述

   mysql_secure_installation      设置密码(除输入密码外一路回车)
     set root password [Y/n]         设置root用户密码
     Remove anonymous users [Y/n]    不允许匿名用户登陆
     Disallow root login remotely [Y/n] 阻止允许root用户远程登陆
     Remove test database and access to it [Y/n] 删除出入数据库的接口
     Reload privilege tables now [Y/n]  刷新数据库
   mysql -uroot -p                登陆(需输入密码)

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
2.使用mysql数据库:

   mysql -uroot -p        登陆
   SHOW DATABASES;        查看数据库中的库
   USE mysql;             使用数据库中的mysql库
   SHOW TABLES;           查看表格

这里写图片描述

   DESC user;             查看表头

这里写图片描述
查询数据:

   SELECT 查询字段 FROM 表格名 WHERE 查询条件;   看条件查询
   SELECT User,Host,password FROM user WHERE Host='localhost';  查询user表中的Host='localhost'的User,Host,password字段。

这里写图片描述
3.数据库的建立

   CREATE DATABASE westos;        创建库
   SHOW DATABASES;                查看数据库中的库(验证库是否添加成功)

这里写图片描述
创建表格及表格中的字段:

   USE westos;                    使用westos库
   SHOW TABLES;                   显示库中表格
   CREATE TABLE linux(            给westos库中创建表格
   ->user varchar(6) not null,    表格中的字段及属性(not null代表不能为空)
   ->passwd varchar(8) not null);
   DESC linux;              查看表格的结构(表头,验证字段是否添加成功)

这里写图片描述
给字段添加值:

   INSERT INTO linux valuse ('lee','123'); 给表格中的字段添加值
   SELECT * FROM linux;     查询linux表格中的所有信息(验证值是否添加成功)

这里写图片描述
4.数据库的增删改:

 ALTER TABLE linux RENAME messages; 修改表格的名字

这里写图片描述

  ALTER TABLE linux ADD age varchar(4);在表格中添加age字段(加在最后面)
  ALTER TABLE linux ADD age varchar(4) AFTER name; 在表格中的指定位置添加

这里写图片描述

  ALTER TABLE linux DROP age;  删除age字段

这里写图片描述

  UPDATE linux SET passwd='123' WHERE name='lee';  更改name='lee'的passwd字段为123

这里写图片描述

  DELETE FROM linux WHERE name='lee';  删除表格中的lee用户

这里写图片描述

 DROP TABLE linux;  删除表格

这里写图片描述

  DROP DATABASE westos;删除库

这里写图片描述
5.网页管理数据库:

  yum install php httpd -y
  yum install php-mysql.x86_64 -y
  systemctl strat httpd
  systemctl stop firewalld
  cd /var/www/html
    phpMyAdmin-2.11.3-all-languages.tar.bz2
  tar jxf phpMyAdmin-2.11.3-all-languages.tar.bz2
  mv phpMyAdmin-2.11.3-all-language mysqladmin
  cd mysqladmin
  cp config.sample.inc.php config.inc.php

这里写图片描述
浏览器验证:http://172.25.254.107/mysqladmin 登陆数据库
这里写图片描述
数据库网页管理的操作:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
6.创建数据库用户:

  CREATE USER lee@localhost identified by 'lee';  (localhoost 只能本机登陆,%s可以任何主机远程登陆)

这里写图片描述
这里写图片描述

  GRANT INSERT,UPDATE,SELECT,DELETE on westos.* to lee@localhost; 给用户授权
        创建属性值,更新,查询,删除         库名         用户

这里写图片描述
这里写图片描述
这里写图片描述

  SHOW GRANTS FOR lee@localhost; 查看用户权限
  REVOKE UPDATE,DELETE,SELECT,INSERT on westos.* from lee@localhost; 撤销用户权限

这里写图片描述

  DROP USER lee@localhost;  删除用户

7.更改数据库root密码(忘记密码):

  systemctl stop mariadb 关闭数据库
  mysqld_safe --skip-grant-tables & 跳过授权表(打入后台)
  mysql                             登陆(不需要密码)

这里写图片描述

  update mysql.user set Password('123') where User='root'  更改root密码
  fg ---> ctrl+z                   调回前台(查看进程名)
  killall -9 mysql_safe     结束mysql进程
  ps axu | grep mysql       过滤所有mysql进程
  kill -9 7098              结束剩余的mysql进程
  mysql -uroot -p           重新密码登陆(更改成功)

这里写图片描述

  mysqladmin -uroot -p123 password 'redhat'(没有忘记密码时修改密码)

8.数据库的备份及恢复:
备份:

   mysqldump -uroot -predhat --all-database 备份所有数据库
   mysqldump -uroot -predhat --all-database --no-data  只备份数据库的表框架
   mysqldump -uroot -predhat westos   备份westos库
   mysqldump -uroot -predhat westos > /mnt/westos.sql  备份westos库并保存到/mnt/westos.sql中
   mysql -uroot -prdhat -e "drop database westos;" 删除westos库
   mysql -uroot -predhat -e "show databases;"      查看数据库中的库

这里写图片描述
恢复:
第一种方法:

    1.vim /mnt/westos.sql   编写文件
       CREATE DATABASE westos;  加入数据库的创建并使用
       USE westos;

这里写图片描述

    mysql -uroot -predhat < /mnt/westos.sql 恢复westos库

这里写图片描述
第二种恢复方式:

    2.mysql -uroot -predhat -e "CREATE DATABASE westos;"用命令执行创建westos库
      mysql -uroot -predhat westos < /mnt/westos.sql 恢复westos数据库

这里写图片描述