LINUX数据库(mariadb的基础操作)、MySQL数据库

数据库:

        数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作

一、安装数据库

[root@shareserver ~]# yum install -y mariadb-server    # redhat7的数据库安装包是这个

在这里插入图片描述
在这里插入图片描述

[root@base3 ~]# systemctl start mariadb.service
[root@base3 ~]# netstat -antlp | grep mysql   # 查看端口,可以查看到,说明端口暴露在外
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      30676/mysqld
root@base3 ~]# mysql -uroot   # 直接就可以登录,没有密码

MariaDB  [ (none) ] > SHOW DATABASES;   #  查看所有数据库

!!!数据库命令格式一般是大写,小写也可以(不提倡),命令完成后必须加分号
在这里插入图片描述
直接登录,没有密码。这样是不安全的,所以我们现在来设置密码

二、数据库的安全初始化

[root@shareserver ~]# mysql_secure_installation  # 安全初始化
Enter current password for root (enter for none):   # 输入密码,因为没有密码,所以直接按回车即可 

Set root password? [Y/n] y   # 是否要设定root用户的密码
New password:     # 输入新密码
Re-enter new password:    # 再次输入新密码
Password updated successfully!    #设置成功
New password: Re-enter new password: Remove anonymous users? [Y/n] y  # 是否要删除匿名用户

Disallow root login remotely? [Y/n] y # 是否要删除root用户的远程登录功能

Remove test database and access to it? [Y/n]  # 是否要删除test数据库

Reload privilege tables now? [Y/n] y  # 是否重载表格

[root@shareserver ~]# vim /etc/my.cnf    # 隐藏端口
  skip-networking=1   # 开启跳过网络接口功能即关闭mysql的网络接口
[root@shareserver ~]# systemctl restart mariadb  # 重启服务
[root@shareserver ~]# netstat -antlup | grep mysql   # 此时就查看不到端口了

在这里插入图片描述

三、数据库的增删改查

[root@shareserver ~]# mysql -uroot -p   # 用密码登录数据库
Enter password: 
MariaDB [(none)]> SHOW DATABASES;       # 查看数据库

在这里插入图片描述

MariaDB [(none)]> USE mysql;          # 进入mysql这个数据库
MariaDB [mysql]> SHOW TABLES;   # 显示mysql数据库中所有的表格

在这里插入图片描述

MariaDB [mysql]> SELECT Host,User,Password  FROM user;	 # 查看表中的内容,只显示 Host,User,Password这三列数据

在这里插入图片描述

MariaDB [mysql]> CREATE DATABASE tom;  # 创建数据库
MariaDB [mysql]> SHOW DATABASES;   # 查看创建成功

在这里插入图片描述

MariaDB [mysql]> USE tom; # 进入创建的数据库
MariaDB [tom]> CREATE TABLE classlist( # 给新建的数据库建立表
-> username varchar(10) not null, #(10) 10个字符
-> passwd varchar(10) not null
-> );
MariaDB [tom]> SHOW TABLES;
在这里插入图片描述
在这里插入图片描述

MariaDB [tom]> DESC classlist;   # 查看表结构

在这里插入图片描述

MariaDB [tom]> INSERT INTO classlist VALUES ('file','111');  # 往表里添加内容,file为username列,111weipasswd列
MariaDB [tom]> INSERT INTO classlist VALUES ('file2','222');
MariaDB [tom]> SELECT * FROM classlist;	  # 查看表中所有内容

在这里插入图片描述

MariaDB [tom]> ALTER TABLE classlist RENAME redhat;  # 更改表名称	
MariaDB [tom]> SHOW TABLES;   # 查看表

在这里插入图片描述

MariaDB [tom]> ALTER TABLE redhat RENAME classlist;  # 把表名称改回来
MariaDB [tom]> ALTER TABLE classlist ADD size varchar(2);   # 给表中添加size这个属性,默认添加的时候添加到最后一项
MariaDB [tom]> SELECT * FROM classlist;

在这里插入图片描述
给size添加内容:

MariaDB [tom]>UPDATE classlist SET size="ma" WHERE  username='file2';
MariaDB [tom]>UPDATE classlist SET size="mi" WHERE  username='file';
MariaDB [tom]> SELECT * FROM classlist;	

在这里插入图片描述

MariaDB [tom]> ALTER TABLE classlist ADD sex varchar(10) AFTER username;   # 指定插入的位置,插到username后面
MariaDB [tom]> SELECT * FROM classlist;   # 查看classlist这个表格

在这里插入图片描述

MariaDB [tom]> DROP TABLE classlist;    # 删除classlist这个表
MariaDB [tom]> SHOW TABLES;
Empty set (0.00 sec)
MariaDB [tom]> DROP DATABASE tom;   # 删除 userdate这个数据库
MariaDB [(none)]> SHOW DATABASES;   # 没有userdate这个库了

在这里插入图片描述

四、数据库的用户授权

MariaDB [(none)]> CREATE DATABASE userdate;  # 创建数据库
MariaDB [(none)]> USE userdate;              # 进入数据库
MariaDB [userdate]> CREATE TABLE classlist(  # 建立表格
-> username varchar(10) not null,    
-> passwd  varchar(10) not null,    
-> sex varchar(10) not null
-> );
MariaDB [userdate]>  CREATE USER ting@localhost identified by 'file';  #新建用户ting,密码为file
      
MariaDB [userdate]> SELECT User,Host FROM mysql.user;    # 查看用户

在这里插入图片描述

MariaDB [userdate]> SHOW GRANTs FOR ting@localhost;    # 查看ting这个本地用户的权限,可以看到权限为空

在这里插入图片描述

MariaDB [userdate]> GRANT SELECT on userdate.* TO ting@localhost;  # 把select这个权限给ting@localhost这个用户
MariaDB [userdate]> SHOW GRANTs FOR ting@localhost;

在这里插入图片描述
重新打开一个shell用创建的ting这个用户登录数据库

[root@base3 ~]# mysql -uting -p 
Enter password: 
MariaDB [(none)]> SELECT * FROM userdate.classlist;  # 可以查看
Empty set (0.00 sec)
MariaDB [(none)]>USE userdate
MariaDB [userdate]> CREATE TABLE tom( 
-> username varchar(10) not null,
-> passwd  varchar(10) not null, 
-> sex varchar(10) not null
-> );

ERROR 1142 (42000): CREATE command denied to user 'ting'@'localhost' for table 'student'

在这里插入图片描述

回到超级用户登录窗口

MariaDB [userdate]> GRANT CREATE on userdate.* TO ting@localhost;  #把create这个权限给ting@localhost这个用户	

在这里插入图片描述
在ting@localhost用户登录窗口

MariaDB [userdate]> CREATE TABLE familylist( 
-> username varchar(10) not null,	
-> passwd  varchar(10) not null, 
-> sex varchar(10) not null
-> );                     # 在userdate库中创建表格

MariaDB [userdate]> DESC familylist;   # 查看表格

在这里插入图片描述
回到超级用户登录窗口

MariaDB [userdate]> REVOKE SELECT,CREATE on userdate.* from ting@localhost;  # 撤销所有权限
MariaDB [userdate]> FLUSH PRIVILEGES;  # 如果更改没生效,就刷新一下

五.备份数据库

[root@shareserver ~]# mysqldump -uroot -p1234 --all-databases > /mnt/alldata  # 备份所有数据库到/mnt/alldata中
      ##   -uroot=root用户   -p1234=root用户的密码
[root@shareserver ~]# mysqldump -uroot -p1234 --all-databases --no-data > /mnt/nodata   # 备份所有数据库到/mnt/nodata中,但是不包含数据
[root@shareserver ~]# mysqldump -uroot -p1234 userdate > /mnt/userdata.sql  # 备份userdate这个数据库到 /mnt/userdata.sql中

如果某个数据库不小心被我们弄丢了,但是我们有备份,那么怎么恢复呢?

[root@shareserver ~]# mysql -uroot -p1234 -e "DROP DATABASE userdate;"   # 模拟数据库丢失

方法1:

[root@shareserver ~]# mysql -uroot -p1234 userdate  < /mnt/userdata.sql  # 直接恢复,会报错,因为userdate这个库已经被我删除了,所以名字不能被识别
ERROR 1049 (42000): Unknown database 'userdate'
[root@shareserver ~]# mysql -u1234 -p  # 登陆数据库
Enter password: 
MariaDB [(none)]> CREATE DATABASE userdate;  # 创建一个和之前同名的数据库
MariaDB [(none)]> QUIT
[root@shareserver ~]# mysql -u1234 -pting userdate  < /mnt/userdata.sql   # 成功恢复 

方法2:

[root@shareserver ~]# vim /mnt/userdata.sql  
21 CREATE DATABASE userdate;   # 创建数据库 
22 USE userdate;    # 进入数据库	
[root@shareserver ~]# mysql -uroot -p1234  < /mnt/userdata.sql  # 成功恢复	

六、超级用户的密码忘记了怎么办

知道自己密码的时候修改密码:

 [root@shareserver ~]# mysqladmin -uroot -p1234 password file   # 这个命令可以直接更改数据库超级用户密码  
       -uroot=root用户   -p1234=root用户的密码    修改密码为file

在这里插入图片描述
假如我们忘记了密码,找回密码:

[root@shareserver ~]# systemctl stop mariadb   # 关掉数据库
[root@shareserver ~]# mysqld_safe --skip-grant-tables &  # 输入这个命令之后,就会出现下面的界面,直接按回车即可

跳过授权表直接登陆数据库并打入后台
在这里插入图片描述

 [root@shareserver ~]# mysql   # 直接按回车不需要密码进入数据库

在这里插入图片描述

MariaDB [(none)]> UPDATE mysql.user SET Password='redhat' WHERE User='root';   # 修改超级用户的密码为redhat
MariaDB [(none)]> SELECT User,Password FROM mysql.user;  # 查看mysql的用户时,发现密码都是明文的,这样太不安全了

在这里插入图片描述

MariaDB [(none)]> UPDATE mysql.user SET Password=Password('redhat') WHERE User='root';    # 重新以这种方式更新密码,这样密码就是加密的了
             # Password=Password('redhat')  # 密码是以密文显示
MariaDB [(none)]> SELECT User,Password FROM mysql.user;  #查看结果

在这里插入图片描述
查看mysql的所有进程,并结束掉
在这里插入图片描述
打开数据库服务
[root@shareserver ~]# systemctl start mariadb # 开启服务
在这里插入图片描述
密码修改成功

[root@shareserver ~]# mysql -uroot -p 或者直接 mysql -uroot -predhat    ## redhat为密码

在这里插入图片描述

七、使用phpMyAdmin管理MySQL数据库

1、安装httpd服务
[root@shareserver ~]# yum install httpd -y   # 安装httpd服务

在这里插入图片描述
在这里插入图片描述

打开http服务

[root@shareserver ~]# systemctl start httpd    # 打开http服务

在这里插入图片描述
测试:
在这里插入图片描述

2、下载适合自己主机版本的phpMyAdmin并安装
[root@shareserver html]# ls                 # 从网上下载一个phpMyAdmin压缩包
phpMyAdmin-2.11.3-all-languages.tar.bz2
[root@shareserver html]# tar  -jxf phpMyAdmin-2.11.3-all-languages.tar.bz2 # 解压
[root@shareserver html]# ls   # 会解压出一个文件
phpMyAdmin-2.11.3-all-languages  phpMyAdmin-2.11.3-all-languages.tar.bz2
[root@shareserver html]# rm -fr phpMyAdmin-2.11.3-all-languages.tar.bz2 # 这个压缩包已经没有用了,可以删除
[root@shareserver html]# mv phpMyAdmin-2.11.3-all-languages/  mysqladmin # 给文件改一个简单的名字
[root@shareserver html]# ls
mysqladmin

在这里插入图片描述

打开浏览器,通过访问mysqladmin,发现,他把所有网页信息都暴露出来了,这不安全。

在这里插入图片描述

3、安装php
[root@shareserver html]# yum install -y php        # 安装php
[root@shareserver html]# systemctl restart httpd    # 重启http服务

在这里插入图片描述
在这里插入图片描述
再次在浏览器上访问
在这里插入图片描述

查看php支持的服务,并没有mysql

[root@shareserver html]# php -m  # 查看php支持的服务,并没有mysql

在这里插入图片描述

4、安装php-mysql

在这里插入图片描述
在这里插入图片描述
重启httpd服务

[root@shareserver html]# systemctl restart httpd

在这里插入图片描述

5、查看帮助继续排错

[root@shareserver html]# cd mysqladmin/
[root@shareserver mysqladmin]# less README  # 查看帮助  q退出

在这里插入图片描述

[root@shareserver mysqladmin]# less Documentation.txt

在这里插入图片描述
拷贝模版,配置文件

 [root@shareserver mysqladmin]# cp config.sample.inc.php config.inc.php
 [root@shareserver mysqladmin]# vim config.inc.php

在这里插入图片描述
重启服务

 [root@shareserver mysqladmin]# systemctl restart httpd
 root@shareserver mysqladmin]# systemctl restart mariadb
6、开始phpmyadmin数据库图形管理

有时候界面出不来是因为缓存的原因,清楚所有缓存。

在浏览器上登陆管理
在这里插入图片描述

7、操作:

以root用户身份输入密码登录数据库
在这里插入图片描述
在这里插入图片描述
创建数据库jiege
在这里插入图片描述
在数据库hui中建立表shujuku
在这里插入图片描述
在表中添加属性
在这里插入图片描述
插入相应的属性值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8、在shell验证:

登录数据库可以看到刚才建立的数据库jiege
在这里插入图片描述
进入数据库,可以看到刚才创建的表信息
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43275140/article/details/84606525