Linux-mariadb 数据库

一、数据库的安装机初始化
Mariadb 数据库管理系统是Mysql的一个分支,主要由开源社区在维护。
数据库

1、数据库的安装
  • 检查有没有yum 源,没有的话要安装yum源
[root@server ~]# yum repolist 
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
repo id                                                          repo name                                                     status
bobo                                                             bobo                                                          5,152
repolist: 5,152
  • 查找数据库

[root@server html]# yum  search mysql
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
======================================================== N/S matched: mysql =========================================================
MySQL-python.x86_64 : An interface to MySQL
akonadi-mysql.x86_64 : Akonadi MySQL backend support
dovecot-mysql.x86_64 : MySQL back end for dovecot
libdbi-dbd-mysql.x86_64 : MySQL plugin for libdbi
mysql-connector-java.noarch : Official JDBC driver for MySQL
mysql-connector-odbc.x86_64 : ODBC driver for MySQL
pcp-pmda-mysql.x86_64 : Performance Co-Pilot (PCP) metrics for MySQL
perl-DBD-MySQL.x86_64 : A MySQL interface for Perl
php-mysql.x86_64 : A module for PHP applications that use MySQL databases
qt-mysql.i686 : MySQL driver for Qt's SQL classes
qt-mysql.x86_64 : MySQL driver for Qt's SQL classes
qt3-MySQL.i686 : MySQL drivers for Qt 3's SQL classes
qt3-MySQL.x86_64 : MySQL drivers for Qt 3's SQL classes
qt5-qtbase-mysql.i686 : MySQL driver for Qt5's SQL classes
qt5-qtbase-mysql.x86_64 : MySQL driver for Qt5's SQL classes
rsyslog-mysql.x86_64 : MySQL support for rsyslog
mariadb.x86_64 : A community developed branch of MySQL
mariadb-devel.i686 : Files for development of MariaDB/MySQL applications
mariadb-devel.x86_64 : Files for development of MariaDB/MySQL applications
mariadb-libs.i686 : The shared libraries required for MariaDB/MySQL clients
mariadb-libs.x86_64 : The shared libraries required for MariaDB/MySQL clients


  • 安装数据库
yum install mariadb-server.x86_64  -y
  • 开启mysql数据库
[root@server html]# systemctl start mariadb.service 
[root@server html]# systemctl enable  mariadb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

安全初始化

设置数据库密码
mysql_secure_installati

Enter current password for root (enter for none):       #原来没有密码 不用输入
Set root password? [Y/n]      #是否设置超级用户密码  默认设置
New password:         #输入密码
Re-enter new password:     # 重复密码
Password updated successfully!
Reloading privilege tables..
 ... Success!
 Remove anonymous users? [Y/n]     #禁止匿名用户登录 默认禁止
 ... Success!
Disallow root login remotely? [Y/n]       #禁止超级用户远程登录 默认禁止
... Success!
Remove test database and access to it? [Y/n]      #默认删除测试数据库
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success
Reload privilege tables now? [Y/n]     #立即重新加载权限列表
 ... Success!“
超级用户输入密码登录数据库

在这里插入图片描述

拒绝外部通过网络访问数据库
查看对外开放接口
[root@server ~]# netstat -antlupe | grep mysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      27         123519     15477/mysqld 
修改配置文件跳过所有关于网络的设置
[root@server ~]# vim /etc/my.cnf
[root@server ~]# systemctl restart mariadb.service 
[root@server ~]# netstat -antlupe | grep mysql             端口关闭

在这里插入图片描述

二 数据库的管理

1.数据库的查询

在这里插入图片描述

SHOW DATABASES ##查询库信息
  • 需要注意的是,结尾都是要有 “;” 符号的
    在这里插入图片描述
USE DATABASENAME ##进入某一库在这里插入图片描述
SHOW TABLES; ##查询库中的所有表在这里插入图片描述
SELECT * FROM TABLES ##查看某一表的所有信息

在这里插入图片描述

SELECT Host FROM user WHERE User=‘root’; ## 按条件查询表中信息

在这里插入图片描述

2 数据库的建立

CREATE DATABASE westos;   ## 新建一个库名称为westos
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| ultrax             |
| westos             |
+--------------------+
5 rows in set (0.00 sec)

MariaDB [westos]> USE westos;
Database changed

CREATE TABLE linux ( #在库中创建一个新的表
-> username varchar(10) not null, #表中包含的字段以及字段的要求
-> password varchar(50) not null
-> );

MariaDB [westos]> DESC linux;               查看表的结构
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(10) | NO   |     | NULL    |       |
| password | varchar(50) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)

MariaDB [westos]> INSERT INTO linux VALUES('lc','123');             给表中插入数据
Query OK, 1 row affected (0.01 sec)

MariaDB [westos]> INSERT INTO linux VALUES('tom','123');
Query OK, 1 row affected (0.01 sec)

MariaDB [westos]> SELECT * FROM linux;        查看linux表的全部信息
+----------+----------+
| username | password |
+----------+----------+
| lc       | 123      |
| tom      | 123      |
+----------+----------+
2 rows in set (0.00 sec)
3.数据库的更改
ALTER TABLE linux RENAME redhat; ##更改数据表格的名字
MariaDB [westos]> SHOW TABLES;          展示原本的表格名称
+------------------+
| Tables_in_westos |
+------------------+
| linux            |
+------------------+
1 row in set (0.00 sec)

MariaDB [westos]> ALTER TABLE linux RENAME redhat;           更改数据表格名称
Query OK, 0 rows affected (0.01 sec)

MariaDB [westos]> SHOW TABLES;          展示数据表格新的名称
+------------------+
| Tables_in_westos |
+------------------+
| redhat           |
+------------------+
1 row in set (0.00 sec)
ALTER TABLE redhat ADD class varchar(20) not null;##给表中添加一个字段,默认在最后添加
MariaDB [westos]> ALTER TABLE redhat ADD class varchar(20) not null;          添加一个新的字段;
Query OK, 2 rows affected (0.02 sec)               
Records: 2  Duplicates: 0  Warnings: 0

MariaDB [westos]> SELECT * FROM redhat;          查看建立成功的字段
+----------+----------+-------+
| username | password | class |
+----------+----------+-------+
| lc       | 123      |       |
| tom      | 123      |       |
+----------+----------+-------+
2 rows in set (0.00 sec)

MariaDB [westos]> SELECT * FROM redhat;
+----------+----------+
| username | password |
+----------+----------+
| lc       | 123      |
| tom      | 123      |
+----------+----------+
2 rows in set (0.00 sec)
ALTER TABLE redhat DROP class; ##移除表格中某一字段
MariaDB [westos]> ALTER TABLE redhat DROP class;               需要注意的是数据库里边的删除是 drop
Query OK, 2 rows affected (0.01 sec)               
Records: 2  Duplicates: 0  Warnings: 0

MariaDB [westos]> SELECT * FROM redhat;           查看已经移除成功
+----------+----------+
| username | password |
+----------+----------+
| lc       | 123      |
| tom      | 123      |
+----------+----------+
2 rows in set (0.00 sec)
ALTER TABLE redhat ADD class varchar(20) not null AFTER ##在username后面添加一字段
MariaDB [westos]> SELECT * FROM redhat;      
+----------+----------+
| username | password |
+----------+----------+
| lc       | 123      |
| tom      | 123      |
+----------+----------+
2 rows in set (0.00 sec)

MariaDB [westos]> ALTER TABLE redhat ADD class varchar(20)not null AFTER username;           在username后边加入字段
Query OK, 2 rows affected (0.02 sec)               
Records: 2  Duplicates: 0  Warnings: 0

MariaDB [westos]> SELECT * FROM redhat;
+----------+-------+----------+
| username | class | password |
+----------+-------+----------+
| lc       |       | 123      |
| tom      |       | 123      |
+----------+-------+----------+
2 rows in set (0.00 sec)

UPDATE redhat set password=‘456’ ##更改某一字段
MariaDB [westos]> UPDATE redhat set password='456'
    -> ;
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 0

MariaDB [westos]> SELECT * FROM redhat;        更改密码为456
+----------+-------+----------+
| username | class | password |
+----------+-------+----------+
| lc       |       | 456      |
| tom      |       | 456      |
+----------+-------+----------+
2 rows in set (0.00 sec)

UPDATE redhat set password=‘456’ WHERE username=‘lc’ ##更改某一具体字段的某一内容
MariaDB [westos]> UPDATE redhat set password='456'  WHERE username='lc';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [westos]> SELECT * FROM redhat;           查看更改好的字段
+----------+-------+----------+
| username | class | password |
+----------+-------+----------+
| lc       |       | 456      |
| tom      |       | 123      |
+----------+-------+----------+
2 rows in set (0.00 sec)

4.数据库的删除
DELETE FROM redhat WHERE username=‘lc’; ##删除某一字段
MariaDB [westos]> SELECT * FROM redhat;
+----------+-------+----------+
| username | class | password |
+----------+-------+----------+
| lc       |       | 456      |
| tom      |       | 123      |
+----------+-------+----------+
2 rows in set (0.00 sec)

MariaDB [westos]> DELETE FROM redhat WHERE username='lc';   删除某一个特定的字段
Query OK, 1 row affected (0.01 sec)
MariaDB [westos]> SELECT * FROM redhat;
+----------+-------+----------+
| username | class | password |
+----------+-------+----------+
| tom      |       | 123      |
+----------+-------+----------+
1 row in set (0.00 sec)

DROP TABLE redhat; ##删除表格
MariaDB [westos]> SHOW TABLES;
+------------------+
| Tables_in_westos |
+------------------+
| redhat           |
+------------------+
1 row in set (0.00 sec)

MariaDB [westos]> DROP TABLE redhat;                  
Query OK, 0 rows affected (0.01 sec)
MariaDB [westos]> SHOW TABLES;
Empty set (0.00 sec)

DROP DATABASE westos; ##删除数据库
MariaDB [westos]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| ultrax             |
| westos             |
+--------------------+
5 rows in set (0.00 sec)

MariaDB [westos]> DROP DATABASE westos;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| ultrax             |
+--------------------+
4 rows in set (0.00 sec)

三.用户的授权与权力回收

1.用户的授权在这里插入图片描述
新建立的用户,虽然可以登陆该数据库,但是对数据库没有任何权限,看不到内容。

在这里插入图片描述

GRANT SELECT,INSERT ON lala. * TO TOTO@localhost; # 进行授权
SHOW GRANTS FOR lc@localhost; #显示授给的权利*

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

REVOKE INSERT ON lala.* FROM TOTO@localhost; #权力回收**
DROP USER TOTO@localhost; #删除用户

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

PLUSH PRIVILEGES; #刷新

4、数据库的备份

mysqldump -uroot -predhat lala > /opt/lala.sql #将库lala备份到/opt/lala.sql 文件
mysqldump -uroot -predhat lala --no-date # 对指定的库不备份数据只备份结构
mysqldump -uroot -predhat --all-database # 对所有的库进行备份
mysqldump -uroot -predhat --all-database --no-data # 对所有的库不备份数据只备份结构
然后删除数据库lala。

在这里插入图片描述

恢复方式1:
mysql -uroot -predhat -e “CREATE DATABASE lala;” #在数据库中先新建一个库
mysql -uroot -predhat lala < /opt/lala.sql #再将备份的数据放进新建的库中

在这里插入图片描述

恢复方式2:

vim /opt/lala.sql #直接打开备份的库文件

CREATE DATABASE lala;

USE lala;

在这里插入图片描述

mysql -uroot -predhat < /opt/lala.sql #由于已经在文件中指定出新建的库 直接将数据倒进即可

在这里插入图片描述

5、修改root用户密码

1)知道密码需要进行修改时:

在这里插入图片描述

2.超级用户忘记密码需要更改
systemctl stop mariadb.service #关闭数据库服务
mysqld_safe --skip-grant-tables & #跳过验证列表进行登录 并后台运行
mysql #使用该命令直接进入数据库
update mysql.user set Password=password(‘redhat’) where User=‘root’; 输入命令对超级用户密码进行设置
killall -9 mysql #结束进程 相当于关闭服务
ps aux | grep mysql #查看没有结束的进程
kill -9 22577 #一次关闭所有没有停止的进程
systemctl start mariadb.service #开启服务
mysql -uroot -p #使用新密码成功登陆

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/liuchuang11/article/details/89677840